질문과 답변

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 12392
RMXP 아이템 사용어떻게 하나요? 1 가나치킨 2011.04.12 1430
기본툴 사용법 RMXP 아이템 사용 시 검은화면이 나왔다가 다시 돌아가는 이벤트 4 닉넴넴 2019.08.02 143
RMXP 아이템 반짝거리는 거 ... 1 체셔캣 2010.11.13 1168
RMXP 아이템 먹을떼 3 유토피아퉁 2011.01.05 430
RMXP 아이거모르면망하는데. 2 King_ 2010.09.30 791
RMXP 아오오니처럼 하는 3 이지눙 2011.08.23 2313
RMXP 아오오니처럼 몬스터가 랜덤으로 나오게 하는 방법좀 알려주세요 ㅠㅠ 3 고수의길 2014.03.20 887
RMXP 아오오니처럼 3 ear0012 2011.08.25 1906
RMXP 아오오니의 이벤트 1 RPG만들기? 2011.09.07 2121
RMXP 아오오니에 보면.... 1 가나다라마바사아자 2011.01.04 728
RMXP 아오오니만들기 증발 7 rpgㅜㅜ 2010.10.18 3018
RMXP 아오오니따라오게하는것좀 7 게임조아 2011.03.09 1783
RMXP 아오오니같은 게임만들때.... 3 이지눙 2011.10.17 2801
RMXP 아오오니 패러디 버전 게이오니를 만드려고 하는데... 2 아방님 2013.10.03 1354
RMXP 아오오니 튀어나오는법 1 김빅밤 2010.09.24 1717
RMXP 아오오니 캐릭터 칩같은거 3 포레버아이둔 2013.06.29 1253
RMXP 아오오니 처럼 장롱속에 들어가서 숨는건 어떻게해요? 해피투더 2011.06.30 2479
RMXP 아오오니 처럼 이벤트 AI 상승 .. 놀다가 2011.11.13 1946
RMXP 아오오니 증발&장소이동 3 RPG거북 2011.01.19 1037
RMXP 아오오니 맵칩 넣으는 법 2 오니다운중''' 2011.01.06 1937
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