Я разрабатываю простую флеш-игру, в которой мой игрок выталкивает бочки с лодки, чтобы выиграть игру. Я кодировал для движения и определял большинство объектов, но когда я добавляю свойства столкновения, я теряю способность перемещать плеер с помощью клавиатуры. Вот код:Как нажимать объект в Actionscript3
package
{
import flash.display.MovieClip;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.events.Event;
public class Main_Character extends MovieClip
{
var vx:int;
var vy:int;
public function Main_Character()
{
init();
}
function init():void{
vx = 0;
vy = 0;
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
function onKeyDown(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.LEFT)
{
vx = -5;
}
else if (event.keyCode == Keyboard.RIGHT)
{
vx = 5;
}
else if (event.keyCode == Keyboard.UP)
{
vy = -5;
}
else if (event.keyCode == Keyboard.DOWN)
{
vy = 5;
}
}
function onKeyUp(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.LEFT ||
event.keyCode == Keyboard.RIGHT)
{
vx = 0;
}
if (event.keyCode == Keyboard.DOWN ||
event.keyCode == Keyboard.UP)
{
vy = 0;
}
}
function onEnterFrame(event:Event):void
{
player1.x += vx;
player1.y += vy;
if (player1.x > 530)
{
player1.x = 530;
}
else if (player1.x < 0)
{
player1.x = 0;
}
else if (player1.y < 0)
{
player1.y = 0;
}
else if (player1.y > 515)
{
player1.y = 515;
}
else if (player1.hitTestObject(water1))
{
player1.x -= vx;
player1.y -= vy;
}
Collision.block(barrel1, player1);
}
}
}
Вам необходимо опубликовать код вашего класса 'Collision' или, по крайней мере, функции' block'. –
Вот моя ошибка: C: \ Users \ Carl \ Desktop \ proejct \ Main_Character.as, Строка 83 \t 1061: Позвоните в возможно неопределенный блок метода через ссылку со статическим типом класса. Как это исправлено? Как создать класс столкновений? Я думаю, что это может быть проблемой. –