我是 AS3 的新手,我一直在尝试制作横向卷轴射击游戏。我取得了一些进展,但我在子弹本身上碰壁了。我一直在使用的代码是:
var circle:Sprite = new Sprite();
function shoot() {
circle.graphics.beginFill(0xFF794B);
circle.graphics.drawCircle(0, 00, 7.5);
circle.graphics.endFill();
addChild(circle);
circle.x = ship_mc.x;
circle.y = ship_mc.y + 43;
}
问题是它一次只允许在屏幕上显示一颗子弹。我如何更改此设置以便创建项目符号以便我可以拥有无限数量的项目符号?
最佳答案
在方法内创建对象
function shoot() {
var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xFF794B);
circle.graphics.drawCircle(0, 00, 7.5);
circle.graphics.endFill();
addChild(circle);
circle.x = ship_mc.x;
circle.y = ship_mc.y + 43;
}
否则,您将只有一个 circle
变量。这次,每次调用该方法时都会创建一个新圆。
但是,您可能希望以某种方式存储所有圈子,以便以后删除它们。
var allCircles: Vector.<Sprite> = new Vector.<Sprite>();
function shoot() {
var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xFF794B);
circle.graphics.drawCircle(0, 00, 7.5);
circle.graphics.endFill();
addChild(circle);
circle.x = ship_mc.x;
circle.y = ship_mc.y + 43;
allCircles.push(circle);
}
然后,稍后,您可以遍历所有圈子:
for each (var circle: Sprite in allCircles) {
// do something with this circle
}
清除所有圈子:
for each (var circle: Sprite in allCircles) {
removeChild(circle);
}
allCircles.clear();
关于actionscript-3 - 在 actionscript 3 中动态创建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14656496/