Не запускается игра на libgdx (закрыто)
Я тут хотел создать карточную игру на libgdx но не смог понять почему не запускается приложение. Вот что пишет.
13:45:18: Executing task 'DesktopLauncher.main()'...
> Task :core:compileJava UP-TO-DATE
> Task :core:processResources NO-SOURCE
> Task :core:classes UP-TO-DATE
> Task :core:jar UP-TO-DATE
> Task :desktop:compileJava UP-TO-DATE
> Task :desktop:processResources
> Task :desktop:classes
> Task :desktop:DesktopLauncher.main()
Romb TWO.png
Klever EIGHT.png
Heart EIGHT.png
Leaf SEVEN.png
Leaf JACK.png
Leaf SIX.png
Leaf QUEEN.png
Romb NINE.png
Klever ACE.png
Leaf EIGHT.png
Heart TEN.png
Leaf KING.png
Heart FOUR.png
Leaf FOUR.png
Leaf TWO.png
Romb FIVE.png
Heart TWO.png
Heart ACE.png
Heart THREE.png
Romb FOUR.png
Heart NINE.png
Heart KING.png
Romb SIX.png
Klever TWO.png
Leaf TEN.png
Klever SIX.png
Klever JACK.png
Romb ACE.png
Heart JACK.png
Klever NINE.png
Klever TEN.png
Leaf THREE.png
Romb EIGHT.png
Leaf ACE.png
Heart QUEEN.png
Leaf NINE.png
Romb TEN.png
Heart SEVEN.png
Klever THREE.png
Klever KING.png
Klever SEVEN.png
Klever FIVE.png
Heart SIX.png
Romb KING.png
Leaf FIVE.png
Klever QUEEN.png
Heart FIVE.png
Romb JACK.png
Romb THREE.png
Romb SEVEN.png
Klever FOUR.png
Romb QUEEN.png
BUILD SUCCESSFUL in 1s
5 actionable tasks: 2 executed, 3 up-to-date
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.lwjgl.LWJGLUtil$3 (file:/C:/Users/Arkadii/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl/2.9.3/3df168ac74e4a8c96562cdff24ad352e255bf89c/lwjgl-2.9.3.jar) to method java.lang.ClassLoader.findLibrary(java.lang.String)
WARNING: Please consider reporting this to the maintainers of org.lwjgl.LWJGLUtil$3
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "LWJGL Application" java.lang.NullPointerException
at com.mygdx.game.MyGdxGame.update(MyGdxGame.java:59)
at com.mygdx.game.MyGdxGame.render(MyGdxGame.java:49)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:233)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:128)
13:45:20: Task execution finished 'DesktopLauncher.main()'.
Вот код:
Класс MyGdxGame:
package com.mygdx.game;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.InputAdapter;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
public class MyGdxGame extends ApplicationAdapter {
SpriteBatch batch;
public static Player p;
Card draggable;
boolean isButton;
public int mouseX;
public int mouseY;
Main_Deck main_deck;
@Override
public void create () {
Deck d = new Deck();
main_deck = new Main_Deck();
d.shuffle();
d.print();
p = new Player(d);
batch = new SpriteBatch();
batch.begin();
Gdx.input.setInputProcessor(new InputAdapter(){
public boolean touchDown(int x,int y,int pointer,int button){
draggable = p.hand_cards.get(4);
draggable.isDraged = true;
isButton = true;
return true; // возвращает true, сообщая, что событие было обработано
}
@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
mouseX = screenX;
mouseY = -screenY + 700;
return true;
}
public boolean touchUp(int x, int y, int pointer, int button){
isButton = false;
return true; // возвращает true, сообщая, что событие было обработано
}
});
}
@Override
public void render () {
update();
Gdx.gl.glClearColor(0, 1, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
main_deck.render(batch);
//Card.render(batch);
p.render(batch);
}
public void update () {
p.update();
if (isButton)
{
draggable.x = mouseX;
draggable.y = mouseY;
Card.render(draggable, batch);
}
}
@Override
public void dispose () {
batch.dispose();
batch.end();
}
}
Я понял свою ошибку, можно закрыть тему.
Ответы (1 шт):
Автор решения: ArkadiiLite
→ Ссылка
Нужно было просто убрать пустой if
if (draggble.x < main_deck.x)
{
}