我在Java和Slick2D方面有几年的经验,我正试图将一个游戏移植到libgdx,因为它是一个更好的库。然而,我有一个简单的问题在屏幕上移动精灵。这个应用编程接口一定有一些我不理解的范例。我将我的代码提炼成以下内容。它识别输入,并在我的整个实体和网络系统中运行它,无论是在服务器上还是从服务器上,但是精灵保持在同一个位置。任何帮助都会很棒。
我的create()方法:
public void create() {
//Check to see if we are using external server or localhost
ClientNetworkManager.setLocalhostAsHost(Constant.useLocalhost, this);
//Begin application setup
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
camera = new OrthographicCamera(1280,900);
batch = new SpriteBatch();
//Load assets into memory
texture = new Texture(Gdx.files.internal("Sprites/Ash.png"));
//texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
sprite = new Sprite(texture);
sprite.setSize(256,256);
sprite.setPosition(44, 666);
//Begin external network setup
setPlayerPointer(null);
this.connection = new ClientConnectionThread(this);
getClientConnectionThread().setCurrentPing(0);
}
My render() method:
public void render() {
//Render logic
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
if (connection.isActive() && !Constant.performEssentialTasksOnly) {
InputManager.handlePlayerInput(this);
batch.setProjectionMatrix(camera.combined);
camera.update();
batch.begin();
batch.draw(sprite,playerPointer.getCurrentX(),playerPointer.getCurrentY());
System.out.println(playerPointer.getCurrentX());
batch.end();
}
}
getCurrentX/Y方法的值都报告正确,所以这不是问题所在。我觉得这一定是显而易见的。
你可以打电话
sprite.setX(xpos);
改变实际位置。
如果要使用tiledmap,请不要忘记输入正确的SpriteBatch
,它应该由renderer.getSpriteBatch()
方法返回。
你没有使用精灵位置来渲染它,你实际上是在使用它,就像它是一个常规的纹理区域一样。
batch.draw(sprite,playerPointer.getCurrentX(),playerPointer.getCurrentY());
System.out.println(playerPointer.getCurrentX());
你在哪里换这个球员?
多这样做:
sprite.setPosition(playerPointer.getCurrentX(),playerPointer.getCurrentY())
sprite.draw(batch);
但问题是playerPointer没有正确的值(它们没有改变)。
移动精灵 现在你知道了如何展示精灵,但是让它们移动呢?很简单:使用Pixi的ticker。这被称为 游戏循环 。任何在游戏循环里的代码都会1秒更新60次。你可以用下面的代码让 cat 精灵以每帧1像素的速率移动。 function setup() { //Start the game loop by adding the `gameLoop` function to //Pixi's `t
我这里有一些代码,它需要一个精灵表,并通过吸收我的图像的长度和宽度,并通过行和列将其划分为单独的精灵。这适用于我的测试精灵表,但不是我真正要在游戏中使用的。 我的动画课在这里: 我的动画课在这里: 当我使用随身听时。png,代码完美无瑕。但当我去使用任何其他精灵床单时,比如WalkingWoman。jpg(我不担心这个不透明),当列和行被相应地调整时,对齐是关闭的。有什么建议吗? an.png 步
我有一个用WASD控制的相机,但是我一直在左右移动它。我一直在网上寻找,它说要找到一个垂直于另一个向量的向量,你改变x和y的圆,并将其中一个乘以-1。我在下面的代码中尝试过这个: 我一直在向前移动,工作得很好,实际上是在转动相机,但由于某些原因,这不起作用,老实说,我不确定它到底是做什么的,因为当我按下或(他们称之为该功能)时,相机会发疯,开始非常快速地转动,有时会向前移动,或者像100万英里以外
我的任务是使用LibGdx游戏引擎在java中创建自己的碰撞物理引擎。这是自上而下的,所以忽略重力。我一直在琢磨如何对物体施加力。我通过求速度随时间的变化来求加速度。下面是如何找到x分量的加速度: 是x速度,和是一个,用于在不同时间存储速度的x分量(我使用的是均值定理)。基本上,我已经找到了x分量的加速度。现在如果我施加一个力,我做加速度*质量。这就是我完全困惑的地方。 F=ma.是的,所以我能够
我正在用PyGame制作一个小游戏,相机聚焦在一个代表角色的精灵上,当按下箭头键时,地图会围绕它移动。问题是地图不动。我以前多次遇到过这个问题,我想我已经把它缩小到可能的范围,但是我不知道如何真正解决这个问题。 这是代码: 基于我过去的PyGame程序,我总是在移动被绘制到屏幕上的精灵集时遇到问题,比如我在这里所做的。即使是平庸简单的例子也会失败。我想知道的是这是为什么,我怎样才能简明扼要地画出大
我是的新手。我正在努力用触碰让身体移动,一旦触碰被释放,它就必须停止移动!!使用KeyUp和KeyDown可以很好地工作,但我不知道如何使用touch实现。 这是我的密码。我是作为一门独立的课写的。下面是课程: 这是我的密码。我试着触地得分。我试图通过设定一定的速度来移动身体,但没有发生预期的结果。我不能用触摸来移动这个物体(多边形)。请帮忙。提前谢谢