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

精灵不跟随身体/固定装置

华峰
2023-03-14

当相机/屏幕移动时,我试图让精灵停留在静止物体(实际上是它的固定装置)的顶部。我需要做什么来实现这一点?

Background:我有一个播放器(它是动态的,多边形形状,设置为一个盒子),当播放器在屏幕上向上移动时,相机会跟随它。

每X米,我在玩家前面几米处生成一个(静态)矩形。这个矩形是我试图在上面画一个精灵的身体,问题是当我画它的时候,精灵在屏幕上保持静态,不会停留在身体/固定装置的顶部。

我的游戏屏幕像这样跟随我的玩家:

box2dCamera.position.y = player.getPosition().y + box2dCamera.viewportHeight / 2 - (player.bodyHeight);
box2dCamera.update();

Im使用libgdx utils lib在矩形的顶部绘制精灵,如下所示:

Box2DSprite box2DSprite = new Box2DSprite(KidsGame.res.getTexture("badlogic"));
fixture.setUserData(box2DSprite);

sb.begin();
Box2DSprite.draw(sb, world);
sb.end();

谢谢任何帮助

共有1个答案

公冶高义
2023-03-14

SpriteBatch使用Matrix4进行渲染
Matrix4应设置为摄像机s组合矩阵
作为摄像头。组合的被更改,当相机移动时,您还应该在渲染(增量)中调用SpriteBatch#setProjectionMatrix(camera.combined)来更新SpriteBatchsprojectionMatrix

 类似资料:
  • 我是Box2d的新手,遇到了问题,无法解决。当用户触摸我的左右按钮时,我想左右移动我的播放器。我创建了一个固定装置,我可以移动身体和固定装置,但不能移动玩家精灵。如何将玩家精灵连接到我的身体上?我该如何控制身体,因为我无法阻止它。我想找到一种控制box2d播放器的正确方法。我不能使用setLinerVelocity等。 这是我的密码 播放屏幕 显示方法 渲染方法 相机更新方法 createPlay

  • 父类:BK.Node 精灵类 成员变量 变量 类型 名称 备注 size Object 大小 anchor Object 锚点 cornerRadius number 圆角 单位为像素 例子: var babaTex =new BK.Texture('GameRes://texture/test.png'); var sp =new BK.Sprite(200,200,babaTex,0,1,1

  • 我正在制作一个吃豆人风格的游戏,在pygame中使用蟒蛇。目前,我正在创造吃豆人必须在迷宫周围避免的幽灵/怪物。我已经创建了这些,并试图添加随机运动碰撞检测,以便它们在迷宫中移动,而不仅仅是整个屏幕。这些怪物的代码是波纹管。我的问题是,似乎有点跳来跳去,几乎一动不动,我怎么能像吃豆人幽灵一样顺利地穿过迷宫?任何帮助都非常感谢。

  • 我正在用PyGame制作一个小游戏,相机聚焦在一个代表角色的精灵上,当按下箭头键时,地图会围绕它移动。问题是地图不动。我以前多次遇到过这个问题,我想我已经把它缩小到可能的范围,但是我不知道如何真正解决这个问题。 这是代码: 基于我过去的PyGame程序,我总是在移动被绘制到屏幕上的精灵集时遇到问题,比如我在这里所做的。即使是平庸简单的例子也会失败。我想知道的是这是为什么,我怎样才能简明扼要地画出大

  • 我就开门见山了。所以我在做这个游戏,你应该用你的咒语杀死其他物体。我创造了子弹和它们的身体。我们都很好。它正在工作。但我想让它看起来特别和“神奇”,所以我决定使用粒子。我制作了粒子,把它们放在子弹体后面,用下面的代码: 但当我发射多发子弹时,问题是粒子刚刚从我发射的所有第一发子弹中消失,并且只出现在最后一发子弹上。有人能给我介绍一下这个吗? -----------------编辑---------

  • Pixi 精灵 现在你就有了一个画布,可以开始往上面放图像了。所有你想在画布上显示的东西必须被加进一个被称作 舞台的Pixi对象中。你能够像这样使用舞台对象: app.stage 这个舞台是一个Pixi 容器对象。你能把它理解成一种将放进去的东西分组并存储的空箱子。 舞台对象是在你的场景中所有可见对象的根容器。所有你放进去的东西都会被渲染到canvas中。现在舞台是空的,但是很快我们就会放进去一点