我在libgdx中使用了平铺。我正在做一个自上而下的RPG,类似于最终的幻想1,2等等。
我用 setX(getX()+ velocity.x * delta);和setY(getY()+ velocity.y * delta); 在地图上移动玩家。 如何让玩家逐块移动。我将如何检查是什么瓷砖 玩家?有人能帮我吗。三江源。
我发现了这个:
void update()(
// Getting the target tile
if ( rightArrowPressed ) {
targetX = (int)(currentX + 1); // Casting to an int to keep
// the target to next tile
}else if ( leftArrowPressed ){
targetX = (int)(currentX - 1);
}
// Updating the moving entity
if ( currentX < targetX ){
currentX += 0.1f;
}else if ( currentX > targetX ){
currentX -= 0.1f;
}
}
来自:libGDX: How to implement a smooth tile / grid based game character movement?
但我似乎可以在我的游戏中看到它实现它。
答案 0 :(得分:0)
我正在编写一个2048游戏,我用来移动玩家的方法是有两个x变量和两个y变量,一个用于坐标作为屏幕上的像素,另一个用于网格。当执行移动时,我更改网格变量并让我的游戏循环检查网格x和y变量乘以网格大小是否等于屏幕x和y变量。如果它不匹配,我然后移动播放器。
int x, y;//Grid
int xx, yy;//Screen
int GridSize = 3;
public void tick(){
if(x * GridSize > xx){
xx ++;
}
if(x * GridSize < xx){
xx --;
}
if(y * GridSize > yy){
yy ++;
}
if(y * GridSize < yy){
yy --;
}
}
要查看玩家所处的图块,您只需要执行getX和getY即可找到玩家的图块坐标。