これは呼び出されると、パラメータとして渡された spritebatch を使用して menuscreen を描画する menuscreen クラスです。問題は、描画コマンドが 2 回目の実行に失敗することです (つまり、アプリケーションを再起動した後) が、他のすべての機能は完全に機能します (配置した位置をクリックすると、画面に配置したボタンを引き続き使用できます)。 )
public class MenuScreen extends Screen
{
Texture Background,Playgame,Credits;
Vector2 PlaygamePos,CreditsPos;
Rectangle PlaygameRect,CreditsRect,touchRect;
public MenuScreen()
{
Background = GameEngine.LoadTexture("Menu/bg.png");
GameEngine.BackgroundTexture = Background;
Playgame = GameEngine.LoadTexture("Menu/newgame.png");
Credits = GameEngine.LoadTexture("Menu/credits.png");
PlaygamePos = new Vector2(500,300);
CreditsPos = new Vector2(500,200);
PlaygameRect = new Rectangle(PlaygamePos.x,PlaygamePos.y,Playgame.getWidth(),Playgame.getHeight());
CreditsRect = new Rectangle(CreditsPos.x,CreditsPos.y,Credits.getWidth(),Credits.getHeight());
}
@Override
public void Update(OrthographicCamera camera)
{
if(GameEngine.isBackButton == true)
{
GameEngine.isBackButton = false;
Gdx.app.exit();
}
if(GameEngine.isTouched() == true)
{
Vector3 touchPos = new Vector3();
touchPos = GameEngine.TouchPos(camera);
touchRect = new Rectangle(touchPos.x,touchPos.y,10,10);
if(touchRect.overlaps(PlaygameRect))
{
SelectScreen = ScreenSelect.GamePlay;
}
else if(touchRect.overlaps(CreditsRect))
{
}
}
}
@Override
public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.draw(Credits,CreditsPos.x,CreditsPos.y);
spriteBatch.draw(Playgame,PlaygamePos.x,PlaygamePos.y);
}
@Override
public void Resume() {
// TODO Auto-generated method stub
}
@Override
public void Pause() {
// TODO Auto-generated method stub
}
@Override
public void Dispose()
{
}
}
テクスチャと SpriteBatches を破棄しようとしても、どれも機能しませんでした!