我正在创建一个点击和点冒险游戏。我有一个角色走在该地区,但我不确定如何约束他的脚可以冒险的地方。在附图中,我的脚是黄色的,但我不能让他走到地板上的蓝色多边形区域之外。
有关如何使这项工作的任何想法?请记住,我正在创建一个补间,以便在用户单击屏幕时跟随该角色。如果他碰到多边形之外的区域,它将使玩家(粉红色矩形)停止。
我尝试过街机物理,但这只适用于基于方形的精灵。我想我必须使用p2物理?我可以在形状上使用p2物理,还是像多边形区域那样使用简单的线?
答案 0 :(得分:2)
您不需要使用任何Phasers物理引擎来处理此问题,您可以使用Polygon几何对象来执行此操作,并检查点击是否在多边形内。
以下是一个在线示例:http://phaser.io/examples/v2/geometry/polygon-contains
但代码很简单。首先创建一个多边形(注意重叠点和多风的方式,详见文档):
poly = new Phaser.Polygon([ new Phaser.Point(200, 100), new Phaser.Point(350, 100), new Phaser.Point(375, 200), new Phaser.Point(150, 200) ]);
然后检查他们是否已点击其中:
if (poly.contains(game.input.x, game.input.y))
{
// allow walk
}