我正在尝试创建我的脚本,以便它根据数组生成级别。 这些街区的位置很好,但我必须明白,如果你跳下来就会让玩家在碰撞时停下来。
我已经尝试了一些方法来实现它,但我无法理解,所以我来这里寻求帮助。
变量列表:
var player1:MovieClip;
var up:Boolean = false;
var left:Boolean = false;
var right:Boolean = false;
var isWalking:Boolean = false;
var isJumping:Boolean = false;
var isOnFloor:Boolean = false;
var lastPressed = "";
var jumpSpeedLimit:int = 15;
var jumpSpeed:Number = jumpSpeedLimit;
var currentLevel:Number;
var newBlock:MovieClip;
var level1:Array
var blockHolder:Sprite = new Sprite;
跳转脚本:
public function playerJumpRight():void {
if (!isJumping) {
isOnFloor = false;
isJumping = true;
var xVel:Number = 2;
var yVel:Number = -jumpSpeedLimit; //velocity = snelheid
var yAcc:Number = 1;
addEventListener(Event.ENTER_FRAME, onLoop);
function onLoop(e:Event):void {
if (isJumping) {
player1.y += yVel;
yVel += yAcc;
if (player1.hitTestObject(newBlock)) {
isOnFloor = true;
}
}
}
}
}
CreateLevel脚本:
function createLevel() {
addChild(blockHolder);
level1 = new Array(
0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1
);
for (var i:int = 1; i < level1.length; i++) {
if (level1[i] == 1) {
newBlock = new MovieClip();
newBlock.graphics.beginFill(0xFF0000, 1);
newBlock.graphics.drawRect(0, 0, 25, 25);
newBlock.y = 400;
newBlock.x = (i*newBlock.width+i)
blockHolder.addChild(newBlock);
}
}
}
答案 0 :(得分:0)
从我所看到的情况来看,您只是针对最后创建的块进行检查。您将需要遍历所有块以查看它们是否与播放器重叠。此外,为了创建游戏,尝试一些已经存在的游戏引擎,如Flashpunk或Flixel,它们更容易使用它们。