0

プラットフォーム x プレーヤーの前の距離を無限に生成しようとしていますが、どこから始めればよいかほとんどわかりません。また、互いの上に「積み重ねる」ことはできません。現在、私が持っているものは以下のとおりです。エラーはありませんが、かなりのメモリを消費し、ゲームがフラッシュcs3をクラッシュさせるまで遅れます

function enterFrameHandler(e:Event):void{
    //gravitate the player
    _vy += 1.5;
    //move the player
    Player.x += _vx;
    Player.y += _vy;

    //process collisions
    processCollisions();
    //Process other collisions
    processOtherCollisions();
    //scroll the stage
    scrollStage();
    //Process Key Presses
    KeyHandler();
    //Process Lives once
    LifeHandler();
    //Generate Objects
    generateObjects();
}
//Function for generating objects
var ObjectArray:Array = [];
var ChildrenColliding:Boolean = false;
function generateObjects():void{
    if(_vx > 0){
        var Square:MovieClip;
        Square = new mcSquare();
        Square.x = Math.random() * 500 + Math.abs(_boundaries.x);
        Square.y = Math.random() * stage.stageHeight/2.5 + (stage.stageHeight/2.5);
        ObjectArray.push(Square);
        _boundaries.addChild(Square);
    }
    for(var i in ObjectArray){
        for(var a in ObjectArray){
            if(ObjectArray[a].hitTestObject(ObjectArray[i]) && a != i){
                ChildrenColliding = true;
            }
        }
        while(ChildrenColliding){
        ObjectArray[i].x = Math.random() * 500 + Math.abs(_boundaries.x);
        ObjectArray[i].y = Math.random() * stage.stageHeight/2.5 + (stage.stageHeight/2.5);
        }
    }

}
4

2 に答える 2

0

ここに示すコードは問題ありません。ObjectArrayas の設定[]は完全に安全で、null であってはなりません。話にはまだ続きがあるはずです。

このクラスの残りのコードを投稿できますか? を設定する他のコードはありますObjectArrayか?ObjectArrayそれをnullに設定している他の場所にコード行が必要です。

于 2012-05-22T18:27:50.493 に答える
0

それだけではない理由:

ObjectArray.push(Square);
于 2012-05-22T20:21:37.233 に答える