?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

안녕하세요, 질문이곧 내용입니다만 좀 부연설명을 해드리면..

 

 

어떤 키를 눌렀을때 캐릭터가 어떤 모션을 취하는것을 만들고싶습니다.

 

그 모션은 일반 캐릭터 타일셋에는 없는 모양이구요, 그래서 단순하게 아래와 같이 구현을 해보았습니다.

 

Sprite_Character.prototype.updateCharacterFrame = function() {    
    var pw = this.patternWidth();
    var ph = this.patternHeight();
    var sx = (this.characterBlockX() + this.characterPatternX()) * pw;
    var sy = (this.characterBlockY() + this.characterPatternY()) * ph;
    this.updateHalfBodySprites();    

    if (this._weaponSprite.isPlaying()) {
        this.bitmap = ImageManager.loadCharacter(this._characterName + "Attacking");
        this.setFrame(1, sy, pw, ph);
    }

    else{
        this.bitmap = ImageManager.loadCharacter(this._characterName);
        if (this._bushDepth > 0) {
            var d = this._bushDepth;
            this._upperBody.setFrame(sx, sy, pw, ph - d);
            this._lowerBody.setFrame(sx, sy + ph - d, pw, d);
            this.setFrame(sx, sy, 0, ph);
        } else {
            this.setFrame(sx, sy, pw, ph);
        }
    }
};

 

검게칠한 부분 외에는 기존 함수의 기능과 같구요,

 

단순하게, 어떤 상황일때( 공격버튼을 누르면 웨폰이미지가 실행되는동안 ) 캐릭터가 다른 모션을 취하기위해

 

다른 캐릭터칩을 불러  타일의 특정부분 위치를 모션동안 setFrame을 통해 재생하게 합니다. 

 

 

 

동작이 되긴하는데, 막상 자신이 없는게  화면상에 보이는 캐릭터에게 특수한 움직임을 

 

부여할때 위와같은 방식으로 구현하는것이 맞는지 궁금합니다.

(클래스의 구조적인 측면보다 실제 프로그래밍 로직 측면에서 저런식으로 작동하게 하는것이 맞는지 궁금합니다.)

 

작은조언이라도 감사히 받겠습니다.


 

?
  • profile
    lklslel 2016.07.13 06:37
    꽤나 많이 탐구하신 듯하니 자바스크립트 파일은 살펴보지

    않고 순수하게 로직적인 부분에 대해서 질문함과 동시에

    원하시는 흐름에 연관된 스트립트 전체를 일부나마 이해를

    하고 계신지 점검해볼 필요가 있다고 저는 저는 생각합니다.


    첨부하신 부분은 단순하게 이미지 파일이 로딩된 상태에서

    화면에 그릴 때 필요한 시작 좌표와 폭, 높이 값에 따라

    준비시키는 부분만 있습니다. 이미지 로딩을 해당 함수에서

    하게 된다면 이미지 로딩을 지속적으로 반복을 하게 됩니다.

    따로 공격시 모션을 담당하는 스프라이트를 저장/관리하실

    수 있는 변수를 추가하시고, 캐릭터의 등장 시점 이전에

    로딩해서 hoguduk님께서 추가하신 if, 비트맵의 설정부분을

    Sprite_Character.prototype.updateCharacterFrame가

    아닌 this._weaponSprite.isPlaying()의 판정을 볼 수 있는

    상위 함수로 옮기는 것이 타당하다고 보입니다.


    말씀하신 로직적인 문제점은 없지만 매번 공격시마다

    생겨나는 이미지 로딩에 의한 작은 렉은 되도록이면

    발생빈도를 줄이는 게 좋습니다.


    저는 개인적으로 '로직이 문제점이 아니라 플레이하는

    유저를 위한 편의성에 관련된 문제'라고 생각합니다.


    정리를 해서 말씀드리자면, 일반적인 모션/공격 모션 이미지를 각각

    따로 관리하도록 2개의 변수를 준비해서 이미지 로딩을 먼저 하시고

    나서 '공격을 하는가?' '공격하지 않는가?' 에 따라서 this.bitmap에

    미리 로딩된 이미지를 저장하고 있는 변수를 대입해주시면 되겠습니다.


    //프레임초기화부분 or /*프레임초기화부분*/ 해서 작동하지 하지

    않도록 추가하신 프레임초기화 부분을 주석처리 해주신 다음에

    테스트 해보시고 표현에 문제가 있다면 프레임 초기화 부분을 적용하기

    위해 주석처리된 부분을 원래대로 바꿔서 실행시켜 보시기 바랍니다.
  • ?
    huguduk 2016.07.13 20:49
    약간 가라로 흐름을 따라가면서 짜서 그런점도 있는데 한번 로딩해서 계속쓸수있는걸 반복한것은 좀 바보짓이였네요 ㅋㅋ;

    그런데 두번째 말해주신것은 좀 궁금합니다.
    ' this._weaponSprite.isPlaying()의 판정을 볼 수 있는상위 함수로 옮기는 것이 타당하다고 보입니다.'
    저는 if로 브랜치하는것을 실제 적용이 되는 밑단 함수에서 수행하는것이 낫다고 판단을했는데
    (어짜피 해당케이스에서는 상위에서하건 하위에서하건 this._weaponSprite.isPlaying() 의체크를 반드시 하게되있지만)
    위와같이 말해주신건 실제 공격을하는 모션의 로직은 일반적인 모션을 보여줄수있는 로직과 명백히 분할되기때문에 상위함수에서 나누라고 말해주신건가요?

    답변감사합니다.
  • profile
    lklslel 2016.07.14 10:16
    해당 함수가 오려서 쓸 이미지의 좌표와 크기를 지정해

    프레임을 만드는 것 외에는 기능적으로 다른 기능이

    없기 때문에 스크립트 상의 가독성을 위해 다른 내용은

    넣지 않는 것이 낫지 않을까 하는 제 개인적인 생각일

    뿐입니다. 해당 함수에서 그렇게 처리하셔도 상관은 없습니다.
  • ?
    huguduk 2016.07.14 20:37
    그렇군요 ㅎ 감사합니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
8827 쯔꾸르 mv 게임을 apk 파일로 변환했는데... 1 박하맛 2023.01.14 1330
8826 쯔꾸르 젖소이야기 결혼 방법좀 알려주세요... 2 백지씨 2021.12.20 2626
8825 apk포팅 승인 어케 하나요? game메이커xp 2021.11.29 1257
8824 Yanfly님의 Action Sequence Pack 질문드립니다 Neuromancer 2021.07.15 1541
8823 싸게 MV 를 먼저? 아니면 돈을 더 들어서라도 MZ? 2 Xatra 2021.07.06 1751
8822 RMMV - 스탯창과 대화창 변견 관련 질문입니다. (초보입니다 도움좀 주세요 ㅜㅜ) 2 scribble 2021.01.22 1552
8821 아오오니를 하는 사람인데요 질문 두가지가 있어요 1 오니개무서워 2021.01.16 1634
8820 재밌는게임 land_tnt 2020.12.07 1455
8819 c언어 질문 세종기항19 2020.11.10 1684
8818 코딩 질문 1 세종기항19 2020.11.08 1539
8817 혹시나 물어보는데 드래곤규 2020.11.07 1402
8816 오픈보 게임 더블드래곤 리로디드 얼티네이트에 대해 궁금 이부닝 2020.09.09 1224
8815 상태이상 확률 결정 스트레이보우 2020.09.02 1006
8814 다음 인디사이드 제작대회는 언제쯤 열릴까요? WOONAALAA 2020.05.23 963
8813 xp로 제작된 어플 실행자체가 안된다는 분이 있습니다.(제생각엔 apk로 변환하는 과정에서 버전자체가 낮은 것 같습니다) 1 라엔 2020.05.04 1415
8812 apk 포팅하는데 게임 이름이 필요합니다 뜨는데 1 kashu 2020.05.03 1349
8811 쯔꾸르VX Ace렉먹음 도와주세요... 랖랖 2020.03.22 1779
8810 안녕하세요 1 청월령 2020.02.14 834
8809 포팅 중 '게임 이름이 필요합니다' 오류 2 아이비스 2020.02.11 817
8808 RPGMV 거리 추적 1 정욱 2020.01.19 930
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 442 Next
/ 442


[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)