【发布时间】:2014-01-15 17:53:50
【问题描述】:
我正在 Eclipse 上开发一个 android 游戏,其中一个精灵在多个平台上跳跃以达到顶峰,但我遇到了困难。这是我的情况:我有一个移动的角色精灵(在这种情况下我将其命名为 Sprite1),当我的应用程序启动时,我正在随机位置创建另外 3 个精灵(平台)。应用程序启动时,平台已成功创建。但是没有检测到它们与 Sprite1 之间的碰撞。我尝试了很多解决方案,现在我被困了几天。任何帮助或建议将不胜感激。
我尝试在创建平台时制作矩形,然后使用矩形来检测碰撞,但它们仍然没有碰撞。我使用 Java 语言。 :)
我用它来创建精灵并检测碰撞:
创建平台精灵(这是我随机生成平台的方式,如果这里有错误,我确定我只是复制错误,因为创建或平台精灵正常工作。):
public void addRandomPlatform(){
Random rand = new Random();
randPlat = CCSprite.sprite("platform2.png");
randPlat.setPosition(actualX, actualY);
actualY -= (int)(randPlat.getContentSize().height*4);
addChild(randPlat,2);
}
然后我只是在我的应用启动时调用此方法。
检测碰撞:
playerRect = CGRect.make(player.getPosition().x - (player.getContentSize().width / 4.0f),//- (player.getContentSize().width / 2.0f),
player.getPosition().y - (player.getContentSize().height / 2.0f),
player.getContentSize().width/3.0f,
player.getContentSize().height/8.0f);
if(CGRect.intersects(playerRect, randPlat))
{
*my codes for stopping the jump*
}
我希望这很清楚。提前致谢!
【问题讨论】:
-
请添加一些代码。你如何创建精灵,碰撞检测是如何工作的?你用 Box2D 吗?
-
哦,等等,让我编辑我的帖子并包含一些代码。我不使用 Box2D。感谢您的回复!
标签: java android eclipse cocos2d-android