질문과 답변

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 12391
RMXP 전직 npc를 만들고.. 1 z아베크롬비 2012.09.22 1309
RMXP 질문좀 하겠습니다 1 각시탈제작 2012.09.21 925
RMXP 도트 찍는 요령을 알려주세요. 1 각시탈제작 2012.09.19 1288
RMXP RPG XP에서 avi파일 재생할수 있는 방법좀여 ㅜ 2 ☆star 2012.09.17 2239
RMXP 배틀종류후 화면멈춤현상 2 캬아악 2012.09.14 1112
RMXP 조건분기: 액터가 (움직이는)특정이벤트를 향하고 있을 때에만? 5 하진 2012.09.14 823
RMXP 충돌크기가 1x1를 넘는 몬스터를 만들 수 있을까요. 1 모르모트 2012.09.12 987
RMXP 용병시스템 2 준프로겜 2012.09.11 1183
RMXP 이 병렬 이벤트에 문제가 있나요? 2 file 모르모트 2012.09.10 1084
RMXP XP 무기 숙련도를 만들고 싶은데.. 4 CJY 2012.09.10 1063
RMXP 하나만 더 물어볼게요... 파티원들이 졸졸 따라오는 스크립트 2 모르모트 2012.09.10 1137
RMXP 대쉬중에 그래픽 바뀌는 스크립트 있나요? 4 모르모트 2012.09.10 1094
RMXP rpg xp 대화창이랑 폰트 어떻게 바꾸나요? 1 매콤한빨간모자 2012.09.08 3998
RMXP 습작님 픽쳐회전 원상태 스크립트 질문 7 조석진 2012.09.08 900
RMXP 그림이 밑에서부터 올라오게하려면 어떻게하죠 ? ( 크레딧 ) 2 원준이슈퍼똥꼬97 2012.09.04 1065
RMXP 그림의 표시를 처음 해봤더니 도저히 모르겠네요 3 네네네duyd 2012.09.03 1112
RMXP 습작님의 Scene_Item_Select 관련질문 (픽쳐, 커스텀윈도우, 스위치, 정렬) 2 file 하진 2012.09.03 1103
RMXP 메세지 앞에 일러스트 표시하는 방법을 알려주세요! 5 제로스 2012.09.02 1152
RMXP rpg xp 오류가 났어요 2 file shutown1234 2012.09.01 1339
RMXP 아이템선택창에 지정한 아이템만 표시되도록 하기 7 하진 2012.08.31 956
Board Pagination Prev 1 ... 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ... 90 Next
/ 90