当前位置: 首页 > 知识库问答 >
问题:

如何移动玩家由1瓦片libgdx

白星海
2023-03-14

我在libgdx中使用tiled。我正在做一个自上而下的rpg,类似于《最终幻想1》、《2》等等。

我使用setX(getX()速度)。x*delta);和setY(getY()速度)。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:如何实现基于平滑瓷砖/网格的游戏角色移动?

但是我似乎可以在我的游戏中实现它。

共有1个答案

张宣
2023-03-14

我正在编程一个2048游戏,我所做的移动玩家是有两个x变量和两个y变量,一个用于屏幕上像素的坐标,另一个用于网格。当执行移动时,我更改网格变量并让我的gameloop检查网格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来查找播放器的磁贴坐标。

 类似资料:
  • 我正在做一个RPG游戏,但是,我现在有一个错误。玩家的角色可以在所有四个基本方向上移动,但如果你向右、向上或向下移动,玩家就会被卡住。 此外,这个错误似乎有一定的逻辑性: 如果向下移动,角色将卡在向下移动的循环中 除非按下向上箭头,否则玩家将开始一个新的向上无限循环 除非按下向右箭头,否则玩家将开始一个新的向右无限循环 所以权利似乎优先于上,而上优先于下。 奇怪的是,向左移动工作得很完美,即使当角

  • 我是一个业余程序员,在Pyplay非常新。这是我用Pyplay编写的程序,类似于我的世界。在过去的一个小时里,我一直在尝试设置一个代码,让我的玩家在按下X键时移动到随机瓦片。我已经耗尽了大部分如果不是所有的网站和搜索引擎寻找。我已经设法完成了一半的任务;当按下X键时,化身会移动到随机磁贴,但它会移出窗口/显示器。拜托,你能看看我的代码,看看我能做些什么来改进它吗?

  • 刚开始使用pygame,当你按住箭头键时,试图让一个简单的点在屏幕上移动。目前,它只在你按键时移动,但你必须重复按键。 此外,我很感激你对我目前的代码有任何建议,可以改进或改变,使之更有效。

  • 这是我目前正在开发的一个游戏,我在工作和移动时遇到了碰撞,但当我在墙的两侧(从墙列表中)碰撞时,它会停止移动我的玩家,但如果我一直按住键,玩家将完全移动 这是移动和碰撞的代码: 提醒:一切正常,但我的玩家在与物体碰撞并停止几秒钟后,将继续穿过墙壁。

  • 我在这里要做的是,让角色移动到一个位置,同时避开他前进道路上的障碍。我试着用这样的东西: 我的主要问题是这个角色从一半开始走路:

  • 我正在编程我的第一个实际2D游戏(吃豆人)。我认为比赛看起来不错,但我有一个大问题--碰撞。对象仍然存在,我被困住了,所以我决定寻求有丰富经验的真正程序员的帮助。(我当然做了一些研究,但我不想做复制粘贴之类的事情,因为我没搞懂)。就像我说的,游戏差不多完成了,我所需要做的就是让帕克曼继续前进。像例子一样,我画大的白色矩形作为平台。我希望有人能帮助我。在这个项目中,我学到了很多东西,碰撞是我理解的东