질문과 답변

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 12456
이벤트 작성 RMVX 이벤트 중 캐릭터 등장시키고 싶은데 어떻게 해요? 2021.08.20 67
RMVX 이벤트 중간 우선순위 변경, 난수설정방법 질문이요. 2 다굴다굴 2011.03.08 776
RMVX 이벤트 중단좀 도와주세요 8 조맨나 2013.04.17 1180
RMVXA 이벤트 중에서 파티원이 습격을 받는 이벤트 2 소드 2016.01.01 122
RMVXA 이벤트 질문입니다 1 코요미 2013.05.10 601
RMVXA 이벤트 질문있습니다. 2 천지설화 2018.01.20 90
RMVXA 이벤트 처리 도중.... 3 file 자유기사 2012.03.14 2114
RMVXA 이벤트 처리 속도에 차이가 있을까요? 4 file 에뎀이 2015.06.12 166
RMVXA 이벤트 처리시 플레이어가 움직이지 않도록 못하나요? 7 알만툴 2012.12.25 942
RMVX 이벤트 출현 조건에 대해 2 IZEN 2011.11.20 1667
RMVXA 이벤트 커맨드 스크립트 질문이요.. 3 비바체 2014.01.10 769
RMXP 이벤트 타이틀 만드는 방법 2 file /여우비/ 2013.06.24 903
RMVXA 이벤트 텍스트 스크립트 3 file 쿠쿠밥솥 2013.02.05 662
RMVXA 이벤트 판정을 좀 더 유연하게 만들고 싶습니다. 1 탄막병기 2014.07.27 579
RMVXA 이벤트 페이지 반복 14 file 안내문 2013.02.18 711
이벤트 작성 RMXP 이벤트 편집 명령어좀 알려주세요 file 페돗p 2020.02.19 55
RMVXA 이벤트 하는데 오류가 뜨네요,,, 2 file vGONv 2017.02.04 86
RMVXA 이벤트 후 그대로 멈춰버리네요..[수정 : 다른 부분 이벤도 추가] 3 file 읭...내이름이뭐지 2013.04.30 706
RMVX 이벤트 후 없어지는 물건 1 히나린 2017.03.04 101
RMVXA 이벤트 후에 그래픽 표시 2 알리아 2016.05.17 143
Board Pagination Prev 1 ... 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 ... 516 Next
/ 516