配列に基づいてレベルを作成するようにスクリプトを作成しようとしています。ブロックは問題なく配置されていますが、ジャンプして落下すると、プレイヤーが衝突して停止するようにする必要があります。
いくつかの方法を試してみましたが、よくわからないので、助けを求めるためにここにいます。
変数リスト:
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);
}
}
}