2014-03-28 8 views
1

그래서 나는 새로운 createjs 함께 일하고있어, 그들은 플립 및 addflipframes 제거했습니다. 외관상으로는 scaleX = -1이 더 빨라졌지만 지금은 캐릭터를 좌우로 움직이고 싶을 때 이상한 지연이 생깁니다. 나는 단지 내 운동 함수를 잘못 코딩했거나 그냥 mousetrap.js가 create.js와 친숙하지 않기를 바랄뿐입니다.쥐덫이있는 Createjs가 왜 느려지는지 궁금합니다. (jsfiddle 제공)

http://jsfiddle.net/w5uZF/8/ 이것은 테스트 게임이있는 jsFiddle입니다. 나는 새로운 시스템을 사용하는 방법을 배우는 중이다.

는 이러한 움직임

function moveRight(){ 
    var speed = 20; 
    sayaka.x += speed; 
    sayaka.scaleX= 1; 
} 

function moveLeft(){ 
    var speed = 20; 
    sayaka.x -= speed; 
    sayaka.scaleX= -1; 
} 

내가 내가 내가 8 개 프레임이 내 스프라이트를 만들어 어떻게 너희들을 보였다 경우가 좋은 것 같아요 내 함수입니다 내 쥐덫 바인딩

Mousetrap.bind('a', function(){moveLeft();}, 'keydown'); 
Mousetrap.bind('d', function(){moveRight();}, 'keydown'); 

입니다 그것에.

var dataSayaka = { 
    images: ["http://i.imgur.com/rxDkp2Q.png"], 
    frames: {width:133, height:139, regX: 50, regY:50}, 
    animations: {runRight:[0,1,2,3,4,5,6,7, "runRight"]} 
}; 

var spriteSheetSayaka = new createjs.SpriteSheet(dataSayaka); 
var animationSayaka = new createjs.Sprite(spriteSheetSayaka, "runRight"); 
sayaka = new createjs.Sprite(spriteSheetSayaka, animationSayaka); 

나는 운동 성능을 향상시키는 방법을 알고 싶어하므로 어떤 제안이나 비평을해도 괜찮습니다.

나는 네이티브 자바 스크립트 키 이벤트를 사용하여 내 캐릭터를 이동 시키려고했지만 효과는 동일했습니다. 좌우로 움직일 때 캐릭터가 어떻게 뒤쳐 지는지는 이상합니다.

답변

2

scaleX=-1/1과 x- 이동 사이의 지연을 언급하는 경우 : 이것은 CreateJS (또는 다른 JS 프레임 워크)와 관련이 없습니다. 이는 브라우저에서 keydown 이벤트를 전달하는 방법입니다.

예를 들어 텍스트 입력에서 키를 누르면 처음에 누른 문자가 즉시 표시되지만 몇 밀리 초의 지연 후에 만 ​​추가 문자가 나타납니다. 이것은 단지 한 문자 만 입력하려고했을 때 시스템이 실수로 여러 번 문자를 입력하는 것을 방지하기위한 것입니다.


는 해결 방법 : 특정 키를 keydown 및 해제 keyup에 플래그 때마다는이 문제를 해결하려면, 단지 플래그를 설정합니다. 예를 들어 당신이 전역 개체 pressedKeys를 사용할 수 있으며 a를 누를 때마다 당신이 다음 pressedKeys.a = true;onkeyUp -> pressedKeys.a = false;을 설정하여 handleTick 당신이 a 또는 dtrue로 설정되어 있는지 확인 등 경우에 따라 방법을 moveRight/moveLeft를 호출합니다.

+0

내가 quintus와 함께 일할 때, 나는 그것을해야만했음을 기억하지만, 왜 이해가 안된다. – jemiloii