【问题标题】:AS3 - Simple Object Pool example?AS3 - 简单对象池示例?
【发布时间】: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);

    }

【问题讨论】:

标签: actionscript-3 object actionscript pool


【解决方案1】:

这是一篇关于“补间和对象池”的有趣文章:

http://blog.joa-ebert.com/2008/05/07/tweening-and-object-pools/

【讨论】:

    【解决方案2】:

    我做了这个可以帮助你开始:

    http://www.plugin.io/2012/11/general-purpose-as3-object-pool/

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 2012-01-11
      • 2015-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多