Brak dostępu do własnej klasy

0

Cześć

Napisałem dwie nowe klasy "JumpPlayer" i "Platform" ale nie mam do nich dostępu. Mam główną klasę "MyGdxGame" i tam umieszczam kod:

private JumpPlayer player;
private Array<Platform> PlatformArray;

Ale dostaje komunikat:

JumpPlayer cannot be resolved to a type
, to samo przy "Platform".
Co robię źle?

dodanie znacznika <code class="java"> - @furious programming

0

Pewnie nie dodajesz do uses Plik_Klasy_JumpPlayer to samo z PlatformArray to jest zdanie wróżbity amatora, zdanie profesjonalnego wróżbity prawdopodobnie otrzymasz na forum wróżbitów.
Jeżeli zaś oczekujesz opinii programistów to podaj kod.

0
 package com.mygdx.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.utils.Array;

public class MyGdxGame extends ApplicationAdapter {
	
	private Music music;
	private Texture playerTexture, platformTexture;
	private JumpPlayer player;
	private Array<Platform> PlatformArray;
	
	SpriteBatch batch;
	
	@Override
	public void create () {
		batch = new SpriteBatch();
	}

	@Override
	public void render () {
		Gdx.gl.glClearColor(1, 1, 1, 1);
		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
		batch.begin();

		batch.end();
	}
}

I dwie klasy:

package com.mygdx.game.desktop;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.audio.Sound;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Rectangle;

public class JumpPlayer extends Rectangle {

	private Sound jumpSound;
	private Texture texture;
	public boolean canJump = true;
	
	public float jumpVelocity;
	
	public JumpPlayer(Texture texture){
		this.texture = texture;
		this.height = texture.getHeight();
		this.width = texture.getWidth();
		jumpSound = Gdx.audio.newSound(Gdx.files.internal("cd581.mp3"));
	}
	public void draw(SpriteBatch batch){
		batch.draw(texture, x, y);
	}
	public void jump(){
		if(canJump && jumpVelocity >= - 100){
			jumpVelocity += 800;
			canJump = false;
			jumpSound.play();
		}
	}
}
 
 package com.mygdx.game.desktop;

import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Rectangle;

public class Platform extends Rectangle{
	
	private Texture texture;
	
	public Platform(Texture texture){
		this.texture = texture;
		this.height = texture.getHeight();
		this.width = texture.getWidth();
	}
	
	public void draw(SpriteBatch batch){
		batch.draw(texture, x, y);
	}
	
}

pokolorowałem, bogdans

0

Ekhem, po prostu zaimportuj te klasy. Eclipse nawet powinien być w stanie ci w tym pomóc (ale że jako nie używam Eclipse to nie podpowiem jak, użyj Google).

0

Zaimportował bym ale eclipse traktuje te klasy tak jak by ich nie było i np. sam mi proponuje ich utworzenie a nie zaimportowanie.

EDIT: Importuje ją w następujący sposób ręcznie: import com.mygdx.game.desktop.Platform; i tak jak by jej nie było...

0

A są w odpowiednich paczkach (katalogach)? Najlepiej gdybyś porzucił na forum projekt który pokazuje problem, wtedy nie trzeba by było wróżyć.

0

hLMsl9.png

0

Czy my-gdx-game-core ma zależność na my-gdx-game-desktop? Dziwne by to było, ale byłoby wymagane do tego, by w twoim przypadku klasy były widzialne. Chyba powinieneś trochę przerobić architekturę swojej aplikacji pod względem zależności. Może jakieś wstrzykiwanie zależności?

0

Nie wiem co miał bym dokładnie zrobić, dziedziczenie i pozostałe podstawy nabyłem niedawno i nie rozumiem wszystkiego w 100%.
Zrobiłem coś takiego (Ecpilse zasugerowało...)

public class MyGdxGame<JumpPlayer, Platform> extends ApplicationAdapter

Dzięki temu działa ale nie wiem co to dokładnie zmienia...

EDIT: kłamałem, dalej nie działa.

dodanie znacznika <code class="java"> - @furious programming

1 użytkowników online, w tym zalogowanych: 0, gości: 1