나는 플래시를위한 풍선 싸움 게임을 만들려고 노력하고있다. 나는 화면 상단에 천장이있어서 플레이어가 그것을 명중하면 튀어 나와야한다. 문제는, 그 일을하는 법을 모른다. 여기에 코드가 있습니다.히트 테스트 바운스
나는 수를 뒤범벅했다. 문제가있는 upBumping 변수에서 캐릭터가 부딪치게되면 바운스를 되 돌리고 싶지만 한 번만 수행합니다. 후에는 천장을 통과합니다. 아마 내가 잘못된 방향으로 갈거야? 여기
//gravity and stuff
var gravity:Number = 0.3;
var fall:Number = 0.3;
var downBumping:Boolean = false;
var upBumping:Boolean = false;
//direction I guess
var leftKeyDown:Boolean = false;
var upKeyDown:Boolean = false;
var rightKeyDown:Boolean = false;
var spaceKeyDown:Boolean = false;
//character movement ya'll
var mainSpeed:Number = 6;
stage.addEventListener(Event.ENTER_FRAME, game);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
function game(e:Event): void{
//if certain keys are down then move dat fool
if(leftKeyDown){
Monkey.x -= mainSpeed;
}
if(rightKeyDown){
Monkey.x += mainSpeed;
}
if(upKeyDown){
fall = fall-0.9;
gravity = 0.3;
}
if(Floor.hitTestObject(Monkey)){
downBumping = true;
trace("downBumping");
}
if(Ceiling.hitTestObject(Monkey)){
upBumping = true;
trace("upBumping");
trace(Monkey.y);
}
if(upBumping){
Monkey.y += 20;
}
Monkey.y = Monkey.y+fall;
gravity = gravity*1.0;
fall = fall+gravity;
}
이것은 매우 광범위한 질문이며 이러한 종류의 질문은 일반적으로 매우 환영받지 못합니다. 자신 만의 물리 엔진을 만들고 싶다면 hitTestObject보다 더 깊게 파고들 필요가 있습니다. http://box2dflash.sourceforge.net/와 같이 AS3에서 사용할 수있는 물리 엔진을 사용할 수도 있습니다. – Pier
@ 피어 : 정중히 동의합니다. Bindlestick이하고 싶어하는 것을 보여주는 간단한 코드 스 니펫이 있으며, 간단한 게임의 경우 물리 엔진이 종종 불필요합니다. – apscience
주관적인 문제라고 생각합니다. 그래서 나는 그 질문을 하향 회선하지 않았다. ;) – Pier