Guten Tag alle Nutzer. Ich schreibe grad an einem programm in GLOOP mit welchem man einen Avatar durch eine Welt voller zufällig generierter Bäume lenkt
Hauptklasse :
Baumdeklaration
die Klasse des Avatars ist denke ich mal, für folgendes Problem nicht verantwortlich:
Die Kollisionsabfrage funktioniert nicht. irgendjemand eine Idee?
Ich hatte schon einen Post, allerdings hat sich viel geändert und das Problem ist ein ganz anderes, nur leider kann ich den alten post nicht löschen.
Hauptklasse :
Java:
import GLOOP.*;
public class Spiel
{
GLKamera dieKamera;
GLLicht dasLicht;
GLTastatur dieTastatur;
GLBoden derBoden;
GLTextur texSand;
GLTextur texCloud;
GLHimmel derHimmel;
Avatar meinAvatar;
GLKugel dieSonne;
GLVektor vector;
baum[] derBaum;
// Attribute
// Konstruktor
public Spiel()
{
int i = 1;
int j = 46;
vector = new GLVektor(10000,10000,10000);
dasLicht = new GLLicht(vector);
dieTastatur = new GLTastatur();
texSand = new GLTextur("Sand.jpg");
texCloud = new GLTextur("Himmel.jpg");
derBoden = new GLBoden(texSand);
derHimmel = new GLHimmel(texCloud);
meinAvatar = new Avatar();
dieSonne = new GLKugel(100,100000,100,10000);
dieSonne.setzeSelbstleuchten(230,255,0);
derBaum = new baum[1000];
int beende = 1;
for(int k=0; k<1000; k++)
{
derBaum[k] = new baum(k);
}
while (/*!dieTastatur.esc() &&*/ beende != 2 ){
while(dieTastatur.links() || dieTastatur.istGedrueckt('a') || dieTastatur.istGedrueckt('A') || dieTastatur.rechts() || dieTastatur.istGedrueckt('d') || dieTastatur.istGedrueckt('D') || dieTastatur.oben() || dieTastatur.istGedrueckt('w') || dieTastatur.istGedrueckt('W') || dieTastatur.unten() || dieTastatur.istGedrueckt('s') || dieTastatur.istGedrueckt('S'))
{
if (dieTastatur.links() || dieTastatur.istGedrueckt('a') || dieTastatur.istGedrueckt('A') )
{
meinAvatar.bewegeLinks();
}
if (dieTastatur.rechts() || dieTastatur.istGedrueckt('d') || dieTastatur.istGedrueckt('D') )
{
meinAvatar.bewegeRechts();
}
if (dieTastatur.oben() || dieTastatur.istGedrueckt('w') || dieTastatur.istGedrueckt('W') )
{
meinAvatar.bewegeVor();
}
if (dieTastatur.unten() || dieTastatur.istGedrueckt('s') || dieTastatur.istGedrueckt('S') )
{
meinAvatar.bewegeZurück();
}
if (i < 91 && i > 0)
{
meinAvatar.rotierep( );
i++;
}
if (i == j) i = -1;
if (i > -91 && i <0)
{
meinAvatar.rotierem();
i--;
}
if (i == -91)
{
i = 1;
j = 91;
}
for(int k=0; k <1000; k++)
{
if(meinAvatar.gibX() == derBaum[k].gibX()
|| meinAvatar.gibZ() == derBaum[k].gibZ())
{
beende = 2 ;
}
}
Sys.warte(1);
}
meinAvatar.rotationnull();
j=46;
i=1;
}
Sys.beenden();
}
}
Baumdeklaration
Java:
import GLOOP.*;
class baum{
GLQuader Stamm;
GLWuerfel Busch;
public baum(int k)
{
double rnx;
double rnz;
rnx = (Math.random()*500000)-250000;
rnz = (Math.random()*500000)-250000;
Stamm = new GLQuader(rnx ,300,rnz,100,600,100) ;
Busch = new GLWuerfel(rnx,1000,rnz,800);
Stamm.setzeTextur("Stamm.jpg");
Busch.setzeTextur("Busch.jpg");
}
public double gibX(){
return Stamm.gibX();
}
public double gibZ(){
return Stamm.gibZ();
}
}
die Klasse des Avatars ist denke ich mal, für folgendes Problem nicht verantwortlich:
Die Kollisionsabfrage funktioniert nicht. irgendjemand eine Idee?
Ich hatte schon einen Post, allerdings hat sich viel geändert und das Problem ist ein ganz anderes, nur leider kann ich den alten post nicht löschen.
Zuletzt bearbeitet: