如何为自顶向下游戏扩展 LibGdx 中的背景?
How to extend the background in LibGdx for top down game?
top down游戏中扩展背景的正确方法是什么?我使用了 LibGdx 框架。自上而下 game.My 背景的任何想法或教程都是 PNG 格式和 720x1280 portrait.I 的屏幕在扩展时有问题 background.I 希望相机跟随角色并且背景将扩展。我怎么能那样做?这是
的屏幕截图
https://i.stack.imgur.com/jl03R.png
这是我的代码
为了显示背景,我使用了这个
//background
Background = new Texture(Gdx.files.internal("floor.png")); //File from assets folder
Background.setWrap(Texture.TextureWrap.Repeat, Texture.TextureWrap.Repeat);
bgsprite = new Sprite(Background);
渲染中
spriteBatch.draw(Background,0,100,0, srcy, Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
srcy +=3;
背景在滚动,但相机不跟随玩家(猫)
GameScreen 的源代码
http://pastebin.com/Dxfx9f65
非常感谢并提出任何帮助或建议。 :)
使用两个相同的纹理背景。每个屏幕大小都可以是同一个文件。垂直停靠很重要。同时移动。相互交替变化。
示例代码:
声明:
Texture background1, background2;
SpriteBatch batch;
float yMax, yCoordBg1, yCoordBg2;
final int BACKGROUND_MOVE_SPEED = 100; // pixels per second. Put your value here.
创作:
Background1 = new Texture(Gdx.files.internal("floor.png"));
Background2 = new Texture(Gdx.files.internal("floor.png")); // identical
yMax = 1280;
yCoordBg1 = yMax*(-1); yCoordBg2 = 0;
在渲染方法中:
yCoordBg1 += BACKGROUND_MOVE_SPEED * Gdx.graphics.getDeltaTime();
yCoordBg2 = yCoordbg1 + yMax; // We move the background, not the camera
if (yCoordBg1 >= 0) {
yCoordBg1 = yMax*(-1); yCoordBg2 = 0;
}
batch.begin();
batch.draw(background1, 0, yCoordBg1);
batch.draw(background2, 0, yCoordBg2);
batch.end();
背景可以做成jpg格式-占用内存少。
top down游戏中扩展背景的正确方法是什么?我使用了 LibGdx 框架。自上而下 game.My 背景的任何想法或教程都是 PNG 格式和 720x1280 portrait.I 的屏幕在扩展时有问题 background.I 希望相机跟随角色并且背景将扩展。我怎么能那样做?这是
的屏幕截图https://i.stack.imgur.com/jl03R.png
这是我的代码
为了显示背景,我使用了这个
//background
Background = new Texture(Gdx.files.internal("floor.png")); //File from assets folder
Background.setWrap(Texture.TextureWrap.Repeat, Texture.TextureWrap.Repeat);
bgsprite = new Sprite(Background);
渲染中
spriteBatch.draw(Background,0,100,0, srcy, Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
srcy +=3;
背景在滚动,但相机不跟随玩家(猫)
GameScreen 的源代码 http://pastebin.com/Dxfx9f65
非常感谢并提出任何帮助或建议。 :)
使用两个相同的纹理背景。每个屏幕大小都可以是同一个文件。垂直停靠很重要。同时移动。相互交替变化。 示例代码:
声明:
Texture background1, background2;
SpriteBatch batch;
float yMax, yCoordBg1, yCoordBg2;
final int BACKGROUND_MOVE_SPEED = 100; // pixels per second. Put your value here.
创作:
Background1 = new Texture(Gdx.files.internal("floor.png"));
Background2 = new Texture(Gdx.files.internal("floor.png")); // identical
yMax = 1280;
yCoordBg1 = yMax*(-1); yCoordBg2 = 0;
在渲染方法中:
yCoordBg1 += BACKGROUND_MOVE_SPEED * Gdx.graphics.getDeltaTime();
yCoordBg2 = yCoordbg1 + yMax; // We move the background, not the camera
if (yCoordBg1 >= 0) {
yCoordBg1 = yMax*(-1); yCoordBg2 = 0;
}
batch.begin();
batch.draw(background1, 0, yCoordBg1);
batch.draw(background2, 0, yCoordBg2);
batch.end();
背景可以做成jpg格式-占用内存少。