【发布时间】:2014-11-23 16:09:23
【问题描述】:
标题基本是什么意思
关于当前游戏的一些背景知识:玩家总是从左向右移动,如果屏幕被点击,他会跳跃,如果被拖动,他会向前冲刺。我添加了一个图块(平台对象),现在我试图让我的玩家在碰到它时停止移动。
播放器从屏幕左下角开始,平台在右上角。发生的情况是当玩家到达屏幕中间时停止,而不是实际的平台。任何人都可以看看我的代码,看看他们是否能找出原因吗?将不胜感激。
public class Platform extends GameObject {
private Rectangle playerRect;
private Rectangle platformRect;
private Player player;
private boolean isOverlapping;
public Platform(Sprite spr) {
super(spr);
player = Player.getInstance(null); // Initialises the Player class (a Singleton)
// Set position of sprite
setxPos(getWidth() - 400);
setyPos(getHeight() / 2 - 100);
spr.setX(getxPos());
spr.setY(getyPos());
}
public void update() {
// Rectangle of Player
playerRect = new Rectangle(player.getxPos(), player.getyPos(), player
.getSprite().getWidth() + player.getxPos(), player.getSprite()
.getHeight() + player.getyPos());
// Rectangle of Platform
platformRect = new Rectangle(getxPos(), getyPos(), getSprite().getWidth()
+ getxPos(), getSprite().getHeight() + getxPos());
// Make Player stop moving if the two rectangles collide
isOverlapping = playerRect.overlaps(platformRect);
if (isOverlapping) {
player.setxSpeed(0);
}
}
}
在此停留了一段时间,在此先感谢您的任何意见
【问题讨论】:
标签: java android libgdx sprite collision