무비 클립이 벽에 부딪 힐 때 (다른 무비 클립) 멈추고 싶습니다. 아래의 예는 작동하지만 충돌이 발생하면 무비 클립이 모든 동작을 왼쪽으로 '차단'합니다. 내 질문은 이것이 좋은 방법일까요? 왜 제대로 작동하지 않는 것입니까?AS3 캐릭터가 벽을 통해 움직이는 것을 막으십시오.
이 코드에는 문제가있을 수 있지만 잘 배우고 있습니다. 이제는 leftArrow 키를 사용한 예제입니다. 충돌 키/운동
var leftArrow:Boolean;
var speed:int = 10;
var hitting:Boolean;
var ismoving:Boolean;
이벤트 리스너 및 검출 :
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
stage.addEventListener(Event.ENTER_FRAME, walking);
stage.addEventListener(Event.ENTER_FRAME, detectHit);
는 충돌 검출 기능이 이동하거나하지 않다면
변수는 벽을 때리고 경우 키를 체크하고 :
function detectHit(e:Event) :void
{
if(char.hitTestObject(bounds))
{
hitting = true;
}
}
왼쪽 화살표 키 기능 :
function keyPressed(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.LEFT)
{
leftArrow = true;
}
}
function keyReleased(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.LEFT)
{
leftArrow = false;
}
}
그리고 그것은 작동하지 않는 이유는 아마 여기에,하지만 난 왜하지 이해하지 않는다 : hitting
이 false 인 경우
function walking(event:Event):void {
if (rightArrow) {
char.x += speed;
}
if (leftArrow && ! hitting) {
char.x -= speed;
}
else
{
ismoving = false
}
아니면 그냥 'hitting = char.hitTestObject (bounds)' – LiraNuna
예, 좋을 것입니다. – taskinoor
@ taskinoor 설명과 시간을내어 주셔서 감사합니다. – Opoe