Используя Eclipse и libgdx, он не может "найти" и "загрузить" мое изображение в формате png
Я новичок в программировании и слежу за разработкой игр для Android. Я нахожусь на учебном курсе по разработке игр для Android на Java - часть 3: обработка ввода, и в первые пять минут он попросил вас поместить файл png в папку assets/data в каталоге "Tutorial-android". Я так и сделал и последовал за ним. Он успешно загрузил фотографию Марио, я не могу. я скопировал его точный код,
package com.me.tutorial;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Vector2;
public class Tutorial implements ApplicationListener {
;
SpriteBatch batch;
Texture mario;
Vector2 position;
@Override
public void create() {
batch = new SpriteBatch();
mario = new Texture(Gdx.files.internal("mario.png"));
position = new Vector2(50,50);
}
@Override
public void dispose() {
}
@Override
public void render() {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(mario, position.x, position.y);
batch.end();
}
я получил эти ошибки
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: mario.png
at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:140)
at com.badlogic.gdx.graphics.glutils.FileTextureData.prepare(FileTextureData.java:64)
at com.badlogic.gdx.graphics.Texture.load(Texture.java:142)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:112)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:104)
at com.me.tutorial.Tutorial.create(Tutorial.java:19)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:137)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:115)
Вызывается: com.badlogic.gdx.utils.GdxRuntimeException: файл не найден: mario.png (внутренний) в com.badlogic.gdx.files.FileHandle.read(FileHandle.java:134) в com.badlogic.gdx.files.FileHandle.readBytes(FileHandle.java:218) на com.badlogic.gdx.graphics.Pixmap. (Pixmap.java:137) ... еще 8
Я посмотрел, и я не могу найти способ решить это. Пожалуйста, помогите мне, спасибо.
3 ответа
Gdx.files.internal("path")
смотрит в исходные папки в вашей банке. На Android эта папка с исходным кодом, как @BennX сказал asset
папка и насколько я знаю, это должна быть эта папка. На рабочем столе вы можете иметь свою собственную папку, но вам нужно пометить ее как исходную папку в Eclipse. Так что если ваша Projectstructure похожа на: asset/textures/mario.png, вам нужно позвонить Gdx.files.internal("textures/mario.png");
,
Если это в asset/data
Папка, в которой нужно изменить строку загрузки на:
mario=new Texture(Gdx.files.internal("data/mario.png");
Внутренний смотрит в asset
папка не в asset/data
папка.
Спасибо за ответы. я сделал Gdx.files.internal("data/mario")
и я запустил его, и картина Марио появилась, как это было раньше, но когда я добавляю
@Override
public void render() {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
if(Gdx.input.isKeyPressed(Keys.W));{
position.y += 1f;
}
if(Gdx.input.isKeyPressed(Keys.A));{
position.x -= 1f;
}
if(Gdx.input.isKeyPressed(Keys.S));{
position.y -= 1f;
}
if(Gdx.input.isKeyPressed(Keys.D));{
position.x += 1f;
}
batch.begin();
batch.draw(mario, position.x, position.y);
batch.end();
}
`" вход "не работает, когда я загружаю его. загружает картинку. но он не перемещает изображение, когда я нажимаю W,A,S,D. так же, как theLazyTryhard сделал в своем видео.