好了,所以我有一個側滾動遊戲,我用的Box2D的物理學。我的相機專注於玩家,只有玩家移動。通過使用Box2D的玩家動作,我已經設置了線速度和一切具有0摩擦的障礙似乎在一段時間口吃來回每一次,有時它似乎永遠持續下去或者從一開始就口吃。Libgdx Box2D的60fps的,但口吃
玩家的精靈呈現的方式是,玩家有得到相應的Box2D的身體和儲存該位置爲它在它的渲染方法中使用的位置的更新方法。我確實使用了PPM,其他的都是靜態的。
我有以下的,能夠檢測並阻止會關閉屏幕和重用這些塊爲更多的障礙選手後面的傳感器和我的背景做類似的事情和地面,以便玩家可以一直運行下去。只有2個背景對象2樓層對象和12個塊對象。我確信在我的渲染方法中沒有昂貴的操作,並且我不會在初始狀態負載之外創建任何新對象。 使用
Gdx.graphics.getFramesPerSecond()
我已經確定FPS進入60和61之間,所以我不相信這是一個滯後的問題,我不知道如何解決這個問題。
主要Render方法:
public void render(){
//clear screen
Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT);
//set camera to follow player
cam.position.set(player.getPosition().x * B2DVars.PPM + NinjaJumper.V_WIDTH/4,
NinjaJumper.V_HEIGHT/2, 0);
cam.update();
sb.setProjectionMatrix(cam.combined);
//render the background
for (int i = 0; i < backgrounds.length; i++){
backgrounds[i].render(sb);
}
//render the player
player.render(sb);
if(haveBlocks) {
for (int i = 0; i < blocks.length; i++) {
blocks[i].render(sb);
}
}
//render the ground
for (int i = 0; i < ground.length; i++){
ground[i].render(sb);
}
sb.setProjectionMatrix(hudCam.combined);
hud.render(sb);
if(debug) {
//set camera to follow player
b2dCam.position.set(player.getPosition().x + (NinjaJumper.V_WIDTH/4)/B2DVars.PPM,
(NinjaJumper.V_HEIGHT/2)/B2DVars.PPM, 0);
b2dCam.update();
b2dr.render(world, b2dCam.combined);
}
}
播放器渲染和更新方法:
public void update(float dt){
animation.update(dt);
sprite.setRegion(animation.getFrame());
sprite.setCenter(body.getPosition().x * B2DVars.PPM,
body.getPosition().y * B2DVars.PPM - 5);
}
public void render(SpriteBatch sb){
sb.begin();
sprite.draw(sb);
sb.end();
}
所以有人能告訴我什麼,我做錯了,我花了幾天看着這個和我無法弄清楚。
編輯pack.pack:
pack.png
format: RGBA8888
filter: Linear,Linear
repeat: none
mainpage
rotate: false
xy: 1, 281
size: 960, 720
orig: 960, 720
offset: 0, 0
index: -1
ground
rotate: false
xy: 1, 140
size: 600, 139
orig: 600, 139
offset: 0, 0
index: -1
treeM
rotate: false
xy: 603, 38
size: 139, 241
orig: 139, 241
offset: 0, 0
index: -1
tree
rotate: false
xy: 744, 39
size: 137, 240
orig: 137, 240
offset: 0, 0
index: -1
treeS1
rotate: false
xy: 883, 42
size: 133, 237
orig: 133, 237
offset: 0, 0
index: -1
treeS
rotate: false
xy: 1, 19
size: 67, 119
orig: 67, 119
offset: 0, 0
index: -1
button1
rotate: false
xy: 70, 114
size: 70, 24
orig: 70, 24
offset: 0, 0
index: -1
button2
rotate: false
xy: 70, 88
size: 70, 24
orig: 70, 24
offset: 0, 0
index: -1
platform
rotate: false
xy: 963, 969
size: 32, 32
orig: 32, 32
offset: 0, 0
index: -1
block
rotate: false
xy: 1, 1
size: 16, 16
orig: 16, 16
offset: 0, 0
index: -1
pack2.png
format: RGBA8888
filter: Linear,Linear
repeat: none
treeM1
rotate: false
xy: 1, 625
size: 255, 378
orig: 255, 378
offset: 0, 0
index: -1
treeH
rotate: false
xy: 258, 540
size: 200, 463
orig: 200, 463
offset: 0, 0
index: -1
ninja1
rotate: false
xy: 460, 503
size: 500, 500
orig: 500, 500
offset: 0, 0
index: -1
ninja2
rotate: false
xy: 1, 1
size: 500, 500
orig: 500, 500
offset: 0, 0
index: -1
ninja3
rotate: false
xy: 503, 1
size: 500, 500
orig: 500, 500
offset: 0, 0
index: -1
pack3.png
format: RGBA8888
filter: Linear,Linear
repeat: none
ninja4
rotate: false
xy: 1, 503
size: 500, 500
orig: 500, 500
offset: 0, 0
index: -1
ninja5
rotate: false
xy: 503, 503
size: 500, 500
orig: 500, 500
offset: 0, 0
index: -1
ninja6
rotate: false
xy: 1, 1
size: 500, 500
orig: 500, 500
offset: 0, 0
index: -1
ninja7
rotate: false
xy: 503, 1
size: 500, 500
orig: 500, 500
offset: 0, 0
index: -1
pack4.png
format: RGBA8888
filter: Linear,Linear
repeat: none
mainpage1
rotate: false
xy: 1, 1
size: 900, 600
orig: 900, 600
offset: 0, 0
index: -1
pack5.png
format: RGBA8888
filter: Linear,Linear
repeat: none
ninja8
rotate: false
xy: 1, 1
size: 500, 500
orig: 500, 500
offset: 0, 0
index: -1
你是否在使用TexturePacker進行修剪? –
我使用TexturePacker,但我不知道修剪是什麼。 – user1804234
在TP你有類似「修剪模式」你有沒有把它設置爲somethnig否則**沒有**? –