hallo leute ,
ich habe versucht ein einfaches frogger ähnliches Spiel zu programmieren.
Nun bei der Kollisionsabfrage habe ich überhaupt keine ahnung wie ich sie in mein programm einbinden könnte. Würde mich sehr über einen Tipp freuen.???:L
Hier der Code:
ps: entschuldige mich dafür ,dass ich die kommentare vergessen habe.Ich hoffe ihr versteht das trotzdem
für die Kollision dachte ich an diesen code:
ich habe versucht ein einfaches frogger ähnliches Spiel zu programmieren.
Nun bei der Kollisionsabfrage habe ich überhaupt keine ahnung wie ich sie in mein programm einbinden könnte. Würde mich sehr über einen Tipp freuen.???:L
Hier der Code:
Java:
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class Kontrolle implements KeyListener {
//Attribute
ZeichenFlaeche9 meineFlaeche = new ZeichenFlaeche9();
IntegerInputFrame meineEingabe = new IntegerInputFrame();
Hindernisse[] hindernisse;
Frosch frosch = new Frosch();
//Attribute Hindernisse
private int bahnenAbstandX = 100;
private int breite = 20;
private int hoehe = 60;
private int ersteBahnAbstand = 100;
private int y=(int) (10 *Math.random()*60)-50;
//Attribute Frosch
private int breiteFrosch = 20;
private int hoeheFrosch = 20;
private int xFrosch = 100 - (breiteFrosch/2);
int Eingabe = 1 + meineEingabe.getInteger("Bitte geben sie die Anzahl an Hindernissen an!", 200, 200);
public void run(){
System.out.println(xFrosch);
meineFlaeche.macheZeichenFlaecheSichtbar();
meineFlaeche.addKeyListener(this);
hindernisse = new Hindernisse[Eingabe];
linienErstellen();
figurenErstellen();
int yFrosch = meineFlaeche.getHeight()/2;
frosch.setzeFrosch(0, xFrosch, yFrosch, breiteFrosch, hoeheFrosch, meineFlaeche);
while (true) {
for (int i = 1; i < hindernisse.length; i++) {
hindernisse[i].bewegen(meineFlaeche);
}
frosch.bewegeFrosch(xFrosch, meineFlaeche);
try {
Thread.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void linienErstellen(){
for (int i = 1; i < hindernisse.length; i++) {
hindernisse[i] = new Hindernisse();
hindernisse[i].setzeLinien(i+Eingabe, (i*bahnenAbstandX)+ersteBahnAbstand, meineFlaeche);
}
}
public void figurenErstellen(){
for (int i = 1; i < hindernisse.length; i++) {
hindernisse[i] = new Hindernisse();
hindernisse[i].setze(i , (i*bahnenAbstandX-(breite/2))+ersteBahnAbstand, y ,breite, hoehe, meineFlaeche);
}
}
public void keyPressed(KeyEvent keyEvent) {
if (keyEvent.getKeyCode() == KeyEvent.VK_RIGHT) {
xFrosch = xFrosch + (100+breiteFrosch) -2*(breiteFrosch/2);
System.out.println(xFrosch);
}
if (keyEvent.getKeyCode() == KeyEvent.VK_LEFT){
xFrosch = xFrosch - (100+breiteFrosch) +2*(breiteFrosch/2);
System.out.println(xFrosch);
}
}
public void keyReleased(KeyEvent keyEvent) {
}
public void keyTyped(KeyEvent keyEvent) {
}
}
Java:
public class Frosch {
private int x;
private int y;
private int breite;
private int hoehe;
private int id;
public void setzeFrosch(int id,int x, int y, int breite, int hoehe, ZeichenFlaeche9 meineFlaeche){
this.id = id;
this.x = x;
this.y = y;
this.breite = breite;
this.hoehe = hoehe;
}
public void bewegeFrosch(int x, ZeichenFlaeche9 meineFlaeche){
meineFlaeche.loeschen(id);
meineFlaeche.setzeGefuelltesRechteck(id, x, y, breite, hoehe);
}
}
Java:
public class Hindernisse {
private int x;
private int y;
private int breite;
private int hoehe;
private int id;
private int bewegen;
private int xLinie;
public void setze(int id, int x,int y, int breite, int hoehe,ZeichenFlaeche9 meineFlaeche){
this.id = id;
this.x = x;
this.y = (int) (10 *Math.random()*60)-50;
this.breite = breite;
this.hoehe = hoehe;
meineFlaeche.setzeGefuelltesRechteck(id, x, x, breite, hoehe);
}
public void setzeLinien(int id ,int x ,ZeichenFlaeche9 meineFlaeche){
this.xLinie = x;
this.id = id;
meineFlaeche.loeschen(id);
meineFlaeche.setzeLinie(id, x, 0, x, meineFlaeche.getHeight());
}
public void bewegen(ZeichenFlaeche9 meineFlaeche){
if ( y >= meineFlaeche.getHeight() - hoehe) {
bewegen = 0;
}
if( y <= 0) {
bewegen = 1;
}
if (bewegen == 1) {
y = y+1;
}
if (bewegen == 0) {
y = y-1;
}
meineFlaeche.loeschen(id);
meineFlaeche.setzeGefuelltesRechteck(id, x, y, breite, hoehe);
}
}
ps: entschuldige mich dafür ,dass ich die kommentare vergessen habe.Ich hoffe ihr versteht das trotzdem
für die Kollision dachte ich an diesen code:
Java:
if ((x1+breite1> x2) && (x1< x2 + breite2) && (y1 + breite1 > y2) && (y1< y2 + hoehe2).....{
}
Zuletzt bearbeitet: