对于学校我在AS3中为手机创建基本游戏,基本上你需要知道的是我需要一个矩形,舞台的宽度(380)(高度无关紧要)产生顶部然后几秒钟的另一个产生,这个过程无限重复,直到另有说法。我还没有做太多,所以我没有太多的代码可以展示,但是如果有人能告诉我它将如何受到高度赞赏。
我的运动下来,而不是产卵
var rectangle:Shape = new Shape;
var RecTimer:Timer = new Timer(10,10000);
RecTimer.addEventListener(TimerEvent.TIMER, fRecMovement);
RecTimer.start()
function fRecMovement (e:TimerEvent):void {
rectangle.graphics.beginFill(0xFF0000); // choosing the colour for the fill, here it is red
rectangle.graphics.drawRect(0, 0, 480,45.49); // (x spacing, y spacing, width, height)
rectangle.graphics.endFill();
addChild(rectangle); // adds the rectangle to the stage
rectangle.y +=1
}
答案 0 :(得分:0)
每次要使用new关键字添加内容时,都需要创建一个新形状。但是您还需要跟踪您创建的每个矩形,以便移动它。在下面的代码中,矩形数组是所有矩形的列表。然后,您可以浏览列表并移动每个矩形。
var RecTimer:Timer = new Timer(10,10000);
RecTimer.addEventListener(TimerEvent.TIMER, onTimer);
RecTimer.start();
var rectangles:Array = []; // a list of all the rectangles we've made so far
function spawnRectangle():void {
var rectangle:Shape = new Shape();
rectangle.graphics.beginFill(0xFF0000); // choosing the colour for the fill, here it is red
rectangle.graphics.drawRect(0, nextRectangleY, 480, 45.49); // (x spacing, y spacing, width, height)
rectangle.graphics.endFill();
addChild(rectangle); // adds the rectangle to the stage
rectangles.push(rectangle); // adds the rectangle to our list of rectangles
}
function moveAllRectangles():void {
for each (var rectangle:* in rectangles) {
rectangle.y += 1;
}
}
function onTimer(e:TimerEvent) {
spawnRectangle();
moveAllRectangles();
}
每次定时器运行时都会创建一个新的矩形,但是你可能想要慢一点。也许你可以用一个单独的计时器来做到这一点。
另外,如果你继续让这段代码运行,它会慢慢减速并使用大量内存,因为它会继续创建新的矩形而永远不会停止!看看你是否可以想办法限制它。