질문과 답변

Extra Form
    if @rotate_speed != 0
      @rotate_speed2 = @rotate_speed
      @angle += @rotate_speed / 2.0
      while @angle < 0
        @angle += 360
      end
      @angle %= 360
    elsif @rotate_speed == 0 && @angle != 0
      @angle += @rotate_speed2 / 2.0
      while @angle < 0
        @angle += 360
      end
      @angle %= 360      
    end

혹시 이 스크립트 기억하시나요?

오늘 드디어 쓰게되었는데요, 픽쳐회전이 20정도일 경우 일부 각도를 표시하지 않고 빠르게 도나봐요.  그래서 이전 회전상태에 따라 타이밍이 맞지 않으면 원상태에서 멈추지 않고 계속해서 회전을 하게 되어요.

고쳐주실 수 있나요?  감사합니다 :)

그리고 지난번에 질문올린 이벤트접촉발생 이벤트 조건분기 쓰는방법도 알려주시면 감사하겠습니다 :)

Who's 조석진

profile


Image=======
싸움쟁이 Ssaumjangy
작가: 조석진 Author: Seokjin Cho
developing kids game

official website: http://www.seokjin.xo.st
game develop site: http://www.seokjin49.xo.st
facebook develop status site: http://www.facebook.com/seokjingame
Comment '7'
  • profile
    습작 2012.09.08 15:33

    0.

     

      우선 픽쳐 관련된 답변입니다.


      그런 문제를 간과하고 있었군요. def initialize(number) 함수 마지막 줄에 @rotate_speed2 = 0 를 추가해주시고, 위의 내용은 아래와 같이 수정해주세요. 


        if @rotate_speed != 0

          @rotate_speed2 = @rotate_speed

          @angle += @rotate_speed / 2.0

          while @angle < 0

            @angle += 360

          end

          @angle %= 360

        elsif @rotate_speed2 > 0 && @angle != 0

          @angle += @rotate_speed2 / 2.0

          while @angle < 0

            @angle += 360

          end

          @angle = [@angle, 360].min

          @angle %= 360

        elsif @rotate_speed2 < 0 && @angle != 0

          @angle += @rotate_speed2 / 2.0

          while @angle < 0

            @angle += 360

          end

          @angle = [@angle, 0].max

          @angle %= 360

        end


      덧> 아래쪽과 같이 수정하셔도 동일합니다.

        if @rotate_speed != 0

          @rotate_speed2 = @rotate_speed

          @angle += @rotate_speed / 2.0

          while @angle < 0

            @angle += 360

          end

          @angle %= 360

        elsif @angle != 0

          @angle += @rotate_speed2 / 2.0

          while @angle < 0

            @angle += 360

          end

          @rotate_speed2 > 0 ? @angle = [@angle, 360].min : @angle = [@angle, 0].max

          @angle %= 360

        end



    1.


      조건분기 스크립트 구문에 아래처럼 적어주면 해당 x,y좌표의 이벤트 id가 n과 같은지 판정할 수 있습니다.


      $game_map.check_event(x, y) == n


      위의 조건을 만족할 경우 그보다 하위 조건분기로 아래와 같이 방향 판정까지 해준다면, 해당 이벤트가 그냥 옆을 지나가던 중인지, 아니면 다가온 것인지도 판별가능하겠지요.


      $game_map.events[$game_map.check_event(x, y)].direction == n


      만일 플레이어가 있거나 다른 이벤트가 있는 경우라면 판정에 있어서 보다 우선순위를 나눠야 할 거라고 생각합니다. 아니면, 기존의 적어드린 스크립트에서 이벤트 작동시 작동시켜주는 이벤트 id를 변수에 대입시켜주는 구문을 삽입해두는 것도 하나의 방법이라고 생각합니다.


      그럼 좋은 게임 제작 활동 하세요.^^



  • profile
    조석진 2012.09.09 02:25 Files첨부 (1)

    감사합니다 습작님 :)


    그런데 잘 안돼요.. );


    def initialize 넘버에 로테이트 스피드 2 넣고

    고쳐주신 스크립트를 다시 넣었는데  멈추질 않아요.. );

    그리고 조건분기에 이벤트같은위치 그걸 넣었는데 이런메시지가 떠요.

    캡처.JPG


    그리고 == n 에서 n이 뭐예요?


    감사합니다 ㅎㅎ

  • profile
    습작 2012.09.09 11:19

    1.

     

      n은 number의 약자라는 것은 아실테고, 비교할 id번호 정도로 생각하시면 되리라 생각합니다. x와 y는 당연히 좌표를 의미하므로 해당 부분에도 숫자를 넣어주셔야 합니다.


      $game_map.check_event(100, 50) == 1


      예를 들자면 좌표 100, 50에 이벤트id 1이 있는지를 판별하는것은 위와 같습니다. 위의 에러 메세지는 아마도 x, y에 좌표를 대입하지 않아 생긴 것이 아닌가 싶네요


      그리고 멈추지 않는 픽쳐는 관련된 프로젝트를 보내주시면 살펴보도록 하겠습니다.^^



  • profile
    습작 2012.09.09 13:35

    2.


      (다시 수정했습니다.)역방향 회전시 회전 방향은 음수지만 각도가 아래 코드에 의해서 양수로 변환되는 것을 간과한 것이 크네요.


      while @angle < 0

          @angle += 360

      end


      아래의 코드로 수정하시면 됩니다.^^

      

          if @rotate_speed != 0

            @rotate_speed2 = @rotate_speed

            @angle += @rotate_speed / 2.0

            while @angle < 0

              @angle += 360

            end

            @angle %= 360

          elsif @angle != 0

            while @angle < 0

              @angle += 360

            end

            @angle += @rotate_speed2 / 2.0

            @rotate_speed2 > 0 ? @angle = [@angle, 360].min : [@angle, 0].max

            @angle %= 360

          end



  • profile
    조석진 2012.09.10 03:49
    분명 복사해서 붙여넣기 하였는데 계속 돌아요.. 회전속도를 0으로 하기전의 속도가 +일땐 어느속도든지 제대로 원상태로 돌아와 멈추는데 -속도일때는 정확히 타이밍이 맞지 않으면 멈추지를 않아요.. 아무래도 회전방향을 바꾸어야할것같아요. 감사합니다 습작님 :)
  • profile
    습작 2012.09.10 12:17

    3.


      막판에 급하게 다시 수정해서 올렸는데 제대로 테스트 해보지 않고 올렸더니 이런 문제가 생겼군요.

      @angle = @rotate_speed2 > 0 ? [@angle, 360].min : [@angle, 0].max 로 적어야 하는데,

      @rotate_speed2 > 0 ? @angle = [@angle, 360].min : [@angle, 0].max 로 적어버렸네요. 

      다시 아래 코드를 사용하신다면 아마 정상적으로 정지하리라 생각됩니다. 그럼 수고하세요.


          if @rotate_speed != 0

            @rotate_speed2 = @rotate_speed

            @angle += @rotate_speed / 2.0

            while @angle < 0

              @angle += 360

            end

            @angle %= 360

          elsif @angle != 0

            while @angle < 0

              @angle += 360

            end

            @angle += @rotate_speed2 / 2.0

            @angle = @rotate_speed2 > 0 ? [@angle, 360].min : [@angle, 0].max

            @angle %= 360

          end


  • profile
    조석진 2012.09.10 23:25
    와 ㅎㅎㅎㅎ 와 ㅎㅎㅎㅎㅎㅎㅎㅎㅎ 진짜된다 ㅎㅎㅎㅎㅎㅎ 진짜된다 ㅎㅎㅎㅎㅎㅎㅎㅎㅎ
    감사합니다 습작님 ㅎㅎㅎ 덕분에 다시 제작에 들어갈 수 있게 되었어요 ㅎㅎ

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12475
RMXP 충돌크기가 1x1를 넘는 몬스터를 만들 수 있을까요. 1 모르모트 2012.09.12 987
RMXP 용병시스템 2 준프로겜 2012.09.11 1183
RMVX RPG만들기VX 광원 이벤트로 할수있다는데 어떻게하나여 ? 1 오토거미 2012.09.10 1729
사이트 이용 게임스토어에서 다운받는법 4 조용한삶 2012.09.10 1215
RMXP 이 병렬 이벤트에 문제가 있나요? 2 file 모르모트 2012.09.10 1086
RMXP XP 무기 숙련도를 만들고 싶은데.. 4 CJY 2012.09.10 1063
RMXP 하나만 더 물어볼게요... 파티원들이 졸졸 따라오는 스크립트 2 모르모트 2012.09.10 1137
RMXP 대쉬중에 그래픽 바뀌는 스크립트 있나요? 4 모르모트 2012.09.10 1094
RMVXA SideView100으로 마법쓰면 스크립트 에러 나네요.. 11 file DMT3-이카 2012.09.10 1466
RMVX 문을 만드려는데 크기가 1*1밖에 안되나요? 2 하네 2012.09.09 904
RMVX 전체화면 스크립트. 도대체 어디있나요! 3 카온 2012.09.09 1366
RMVXA 동영상 재생 시 크기 1 avvxace 2012.09.09 1411
RMVXA Scene_MenuBase에서 커먼 이벤트를 불러오도록 하려면 어떻게 해야 할까요? 탐험가 2012.09.09 862
RMXP rpg xp 대화창이랑 폰트 어떻게 바꾸나요? 1 매콤한빨간모자 2012.09.08 4002
기타 VX 페이스칩 만드는 사이트 막혔나요? 2 file 카서블 2012.09.08 1316
RMVXA 이벤트 두개를 한꺼번에 없애는 법 4 슈퍼울트라그레이트딜리셔스 2012.09.08 1095
RMXP 습작님 픽쳐회전 원상태 스크립트 질문 7 조석진 2012.09.08 900
RMVX 장비에 변수 증감 효과를 넣는법 +α 2 카르츠 2012.09.07 1021
RMVX VX 스크립트중 반사 스크립트 관련으로 질문입니다. 2 file Wolf君 2012.09.06 1033
RMVX 선택지의 모양 변형 4 file 카르츠 2012.09.05 1145
Board Pagination Prev 1 ... 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 ... 517 Next
/ 517