为了澄清,该按钮是 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!")
}
}