我正在Libgdx中制作一个游戏,在这个游戏中,我想从上行单词向下行单词扔一个球,然后将背景向上行单词移动,并根据它更新相机。我的代码如下...
public WorldRenderer(SpriteBatch spriteBatch, World world){
this.world = world;
this.camera = new OrthographicCamera(FRUSTUM_WIDTH, FRUSTUM_HEIGHT);
this.camera.position.set(FRUSTUM_WIDTH/2, FRUSTUM_HEIGHT/2, 0);
this.spriteBatch = spriteBatch;
positionBGY1 = 0;
positionBGY2 = 0;
}
public void render(World world, float deltaTime){
if(world.ball.position.y > - camera.position.y){
camera.position.y = world.ball.position.y;
}
if(camera.position.y<0)
camera.position.y=world.ball.position.y;
camera.update();
spriteBatch.setProjectionMatrix(camera.combined);
renderBackground();
renderObjects(world, deltaTime);
}
private void calculateBGPosition(){
positionBGY2 = positionBGY1 + (int)FRUSTUM_HEIGHT;
if(camera.position.y >= positionBGY2){
positionBGY1 = positionBGY2;
}
}
private void renderBackground() {
spriteBatch.disableBlending();
spriteBatch.begin();
spriteBatch.draw(Assets.gamebackgroundRegion, camera.position.x - FRUSTUM_WIDTH / 2, positionBGY1 - FRUSTUM_HEIGHT / 2, FRUSTUM_WIDTH, 1.5f * FRUSTUM_HEIGHT);
spriteBatch.draw(Assets.gamebackgroundRegion2, camera.position.x - FRUSTUM_WIDTH / 2, positionBGY2 - FRUSTUM_HEIGHT / 2, FRUSTUM_WIDTH, 1.5f * FRUSTUM_HEIGHT);
calculateBGPosition();
spriteBatch.end();
}
我的代码问题是背景屏幕没有移动,相机没有随着球的移动而更新,球从屏幕上掉下来。
实现这一点的最佳方法是使用ParrallaxLayer和Parrallaxbackground类
它优化了后台操作,所以你不必担心性能
首先,你需要做的是改变一个bg变量,所以在render some中,我们要做这样的事情:
float speed = 1;
positionBGY1+=deltaTime*speed;
positionBGY2+=deltaTime*speed;
至于摄像机随着球移动,我会这样做:
camera.position.y = Math.min(ball.y,0);
反过来,我会省略所有这些:
if(world.ball.position.y > - camera.position.y){
camera.position.y = world.ball.position.y;
}
if(camera.position.y<0)
camera.position.y=world.ball.position.y;
我有一个用WASD控制的相机,但是我一直在左右移动它。我一直在网上寻找,它说要找到一个垂直于另一个向量的向量,你改变x和y的圆,并将其中一个乘以-1。我在下面的代码中尝试过这个: 我一直在向前移动,工作得很好,实际上是在转动相机,但由于某些原因,这不起作用,老实说,我不确定它到底是做什么的,因为当我按下或(他们称之为该功能)时,相机会发疯,开始非常快速地转动,有时会向前移动,或者像100万英里以外
我在Java和Slick2D方面有几年的经验,我正试图将一个游戏移植到libgdx,因为它是一个更好的库。然而,我有一个简单的问题在屏幕上移动精灵。这个应用编程接口一定有一些我不理解的范例。我将我的代码提炼成以下内容。它识别输入,并在我的整个实体和网络系统中运行它,无论是在服务器上还是从服务器上,但是精灵保持在同一个位置。任何帮助都会很棒。 我的create()方法: getCurrentX/Y方
很抱歉最近问了这么多问题。我刚刚开始进入pyplay。关于我之前的问题,我认为我没有把它用在我想做的事情上。 这是我做的一张快速图片来演示 这是我想让玩家移动的单一背景图像或地图。红色的X只是角色的开始。我试着让它当我移动玩家时,背景也会跟随,就像玩家在地图上移动一样。我已经限制了玩家不能离开实际屏幕的边界。只是有一点麻烦,现在试图让它这样的单一图像将沿着玩家移动,如果玩家到达地图图片移动停止。我
不起作用
公共视图onCreateView(LayoutInflater inflater、ViewGroup容器、Bundle savedInstanceState){ 但是它崩溃了,错误日志如下所示: 是 我已经在中为添加了init,如下所示: 我的场景是: Activity1-->Activity1-->片段 Splash的XML如下所示: 我有两项活动。片段由activity2调用,我想改变Acti
如何在css中设置固定背景并滚动???而且我一直试图设置一个背景来覆盖所有维度,因为我总是以模糊的背景结束:( 我在这方面相对较新,所以请不要评判我,这是我的css:body#bg{宽度:100%;高度:100%;位置:绝对;左:0px;顶部:0px;z-index:0;背景附件:固定; }
我正在开发一个Android游戏,使用Eclipse中的libGDX。我想加快我的场景(跑步机),每当一个球员得了10分。跑步机的初始速度等于0,每10分累加5。当角色掉出屏幕时,玩家就输掉了游戏。有人知道怎么做吗?
问题内容: 我正在尝试将背景图像设置为延伸到的宽度和高度的整个范围。该会是可变大小的,所以我用 我无法弄清楚如何将其放在这种简写形式中并使之起作用。如果我独立列出每个属性,则可以正常工作,但是我希望有一个多合一的解决方案。 这可行,但不是首选: 问题答案: 根据W3和MDN,需要使用斜线将背景大小与背景位置分开: W3C示例: MDN: 必须在背景位置之后指定此属性,并用’/’字符分隔。