使用上、下、左、右键控制小球方向,使用ENTER_FRAME事件控制小球移动。
w = xx._width/2;
h = xx._height/2;
onEnterFrame = function () {
if (Key.isDown(37)) {
xx._x = xx._x-speed;
} else if (Key.isDown(39)) {
xx._x = xx._x+speed;
} else if (Key.isDown(38)) {
xx._y = xx._y-speed;
} else if (Key.isDown(40)) {
xx._y = xx._y+speed;
}
xmax = xx._x+w;
ymax = xx._y+h;
xmin = xx._x-w;
ymin = xx._y-h;
if (bg.hitTest(xx._x, ymin, true)) {
xx._y += speed;
}
if (bg.hitTest(xx._x, ymax, true)) {
xx._y -= speed;
}
if (bg.hitTest(xmin, xx._y, true)) {
xx._x += speed;
}
if (bg.hitTest(xmax, xx._y, true)) {
xx._x -= speed;
}
};
speed = 2;
但是这个代码加大speed的值是会产生问题的,是因为-= speed和+= speed造成的。
所以正确的做法应该是
private function Kdown(evt) {
if (evt.keyCode==37) {
key[0]=-speed;
} else if (evt.keyCode==38) {
key[1]=-speed;
} else if (evt.keyCode==39) {
key[2]=speed;
} else if (evt.keyCode==40) {
key[3]=speed;
}
}
使用数组key记录按键状态,然后使用enterframe控制移动。
private function enterframe(evt) {
if (ship.x<0) {
key[0]=0;
} else if (ship.x>550) {
key[2]=0;
} else if (ship.y<0) {
key[1]=0;
} else if (ship.y>400) {
key[3]=0;
}
ship.x+=(key[0]+key[2]);
ship.y+=(key[1]+key[3]);
}
这也是as3的标准做法,上面我是检测的影片舞台,可以换成检测碰撞。
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔