【问题标题】:Cocos2d + Tiled + Teleportation (Tile Properties)?Cocos2d + Tiled + Teleportation(平铺属性)?
【发布时间】:2012-08-26 14:05:51
【问题描述】:

因此,使用Tiled,我可以直接在图块上设置图块属性,然后再将其放置在地图上,如下所示:

这就是我完成碰撞检查的方式,将碰撞属性设置为“true”,然后在移动精灵时检查平铺属性。

但是,我想添加一个“传送”图块。当玩家在特定的瓷砖上行走时,它会将他们带到一个单独的位置。

我遇到的问题是,当您在磁贴上设置属性时,您只能设置一次,而不是在磁贴实例上设置。这意味着每个图块都有相同的传送位置。

我是否忽略了什么?一般来说,在 Cocos2d 中是否有更好的方法来执行此操作?

【问题讨论】:

    标签: cocos2d-iphone sprite


    【解决方案1】:

    您可以为此使用对象层。将“对象”(在 Tiled 中只是一个矩形或点)添加到传送器图块,并使用对象的属性将两个位置连接在一起。

    当您加载地图时,您可以遍历所有对象以找到连接对象。然后,您知道可以存储在传送阵列中的传送器端点的两个图块位置。每次你的玩家移动到一个新的格子时,检查传送阵列以查看玩家是否在其中一个传送场上,如果是,将他移动到另一个传送格。

    当然,您也可以检查与对象(矩形)的交集,但由于您可能会意外创建跨越多个图块的对象(矩形),因此在游戏开始前检查这些对象似乎更可靠。

    【讨论】:

      【解决方案2】:

      嗯,这可能是最好的方法,但这是我所做的。您可以创建一个元层并为每个传送垫设置单独的图块。因此,当您检查玩家是否在 teleportingpad1 上时,您将玩家位置设置为 receiverPad1(可能是另一个瓷砖、瓷砖中的对象,或者只是您在检查碰撞时设置的一个点)。你会再做一个,例如teleportingpad2、teleportingpad3 等用于更多垫。

      【讨论】:

        猜你喜欢
        • 2013-05-31
        • 1970-01-01
        • 1970-01-01
        • 2012-06-05
        • 2012-06-19
        • 2011-12-03
        • 1970-01-01
        • 2016-02-16
        • 1970-01-01
        相关资源
        最近更新 更多