多个按钮无法引发不同的事物

时间:2016-07-04 11:38:34

标签: actionscript-3 flash flashdevelop

为了澄清,该按钮是 NOT 用户界面元素。这是一个游戏中的对象。

这是问题的图片:它显示了我的主要问题;我按下了圈出的按钮,但它激活了右边的按钮。

我正在制作一个游戏,你必须完成不同难度的10个“室”。

我目前已经完成了第一级,但在完成后我发现了一个我似乎无法修复的烦人的错误。

如果我在地图上有两个按钮,似乎无论我按哪个按钮,它总会做出最后一个放在地图上的按钮。

此外,如果激活了一个按钮,则无法激活另一个按钮。

我正在使用flashpunk引擎/库/无论什么和AS3。

按钮类:

package Sprites
{
    import net.flashpunk.Entity;
    import net.flashpunk.graphics.Tilemap;
    import net.flashpunk.masks.Grid;
    import net.flashpunk.*;

    /**
     * ...
     * @author Brad
     */
    public class Button extends Entity
    {

        public var _tiles:Tilemap
        private var _grid:Grid

        private var xa:Number
        private var ya:Number

        private var conTiles:Array

        public function Button(xN:Number, yN:Number, tiles:Array)
        {
            xa = xN
            ya = yN
            conTiles = []
            _tiles = new Tilemap(Assets.Switch, 640, 480, 32, 32)
            graphic = _tiles;
            layer = 1
            conTiles = tiles
            _tiles.setTile(xN, yN, 0)
            _grid = new Grid(640, 480, 32, 32, 0, 0)
            mask = _grid
            _grid.setTile(xN, yN, true)
            name = "Button"
            type = "button"
        }

        public function Activate():void
        {
            var Activated:Boolean = false
            if (!Activated)
            {
                for (var i:Number = 0; i < conTiles.length; i++)
                {
                    trace("Hi!")
                    FP.world["map"]["_tiles"].setTile(conTiles[i].x, conTiles[i].y, 3)
                    FP.world["map"]["_grid"].setTile(conTiles[i].x, conTiles[i].y, false)
                }
                _tiles.setTile(xa, ya, 1)
                Activated = true
            }
            else
                trace("Activated already!")
        }

    }

}

我如何将按钮放入世界:

    public class World1 extends World
    {
        public var startPos:Object = {"x": 45, "y": 135}
        public var player:Player = new Player(startPos["x"], startPos["y"])
        public var button:Button = new Button(5, 6, [new Point(10, 10), new Point(10, 11)])
        public var button2:Button = new Button(7, 6, [new Point(10, 10), new Point(10, 11)])
        public var map:Map1 = new Map1()
        public var finish:Finish = new Finish(14,2,"map1")
        public function World1()
        {
            add(map)
            add(finish)
            add(button)
            add(button2)
            add(player)
            player.layer = 0

            for (var i2:Number = 0; i2 < 9; i2++)
                add(new Wall3D(i2+1, 1))
            for (var i3:Number = 0; i3 < 11; i3++)
                add(new Wall3D(i3, 13))         
            trace("Hi!")
        }
    }

0 个答案:

没有答案