【发布时间】:2011-12-24 05:14:55
【问题描述】:
在此先感谢您提供的出色帮助。
我已经阅读了很多关于对象池的好处的文章。在网上找了一些“教程”,都超出了我的水平。谁能给我看一个非常简单的对象池示例。
我的游戏所做的是当用户按住鼠标时创建 Ball 对象,当用户抬起鼠标时停止。
我需要将这些 Ball 对象存储在一个数组(或 Vector)中,并用其他对象对它们进行命中测试,当命中另一个对象时将它们从舞台上移除。我想创建一个池,比如说 20 个,创建一次,然后回收它们。
我该怎么做?如果您能以一种愚蠢的方式解释这一点,我将不胜感激。
再次感谢。
---------球类代码---------
动作脚本代码:
import flash.events.TimerEvent;
import flash.geom.Point;
public class Ball extends Particle {
public function Ball ($position:Point, $vector:Point, $gravity:int, $friction:Number) {
super($position, $vector, $gravity, $friction);
//Set initial position
x = position.x;
y = position.y;
updateTimer.addEventListener(TimerEvent.TIMER, setPosition, false, 0, true);
}
public function setPosition (e:TimerEvent):void {
x = position.x;
y = position.y;
}
}
------------文档类代码---------------
动作脚本代码:
function throwBall(e:TimerEvent):void {
var tBall:Ball=new Ball(new Point(mouseX,mouseY),new Point(Math.random()+Math.random()*5+Math.random()*8),gravity,friction);
tBall.gotoAndStop(BallColor);
addChild(tBall);
ballArray.push(tBall);
}
【问题讨论】:
-
AdamHarte,@pkyeck 答案中的博文要好得多。 . .其中一位 cmets 解释说使用工厂,从长远来看更易于管理。此外,pixwlthismobile 帖子中的每条评论似乎都是垃圾邮件!
标签: actionscript-3 object actionscript pool