Hallo liebe Community,
das ist mein erster Post und ich bin so aufregend... - ich meine aufgeregt.
Ich habe angefangen mit Java zu programmieren. Ein Stück weit bin ich gekommen, aber irgendwo häng ich jetzt. Folgendes Problem ist entstanden:
Ich hatte anfangs Bildschirmflackern gehabt, habe das behoben und auf einmal funktionieren meine Bewegeungsbefehle nicht mehr. Falls ihr natürlich im Quellcode mehr Fehler findet wäre ich für Hilfe sehr dankbar!
Apropos es geht hier um ein Snake Spiel!
Das hier ist die Java-Datei mit dem Hintergrund!
Das hier ist die Dot Datei - also der Körper der Schlange.
Das hier ist der Apfel!
Danke schon einmal für die Hilfe!!!
LG
ObjecTV
das ist mein erster Post und ich bin so aufregend... - ich meine aufgeregt.
Ich habe angefangen mit Java zu programmieren. Ein Stück weit bin ich gekommen, aber irgendwo häng ich jetzt. Folgendes Problem ist entstanden:
Ich hatte anfangs Bildschirmflackern gehabt, habe das behoben und auf einmal funktionieren meine Bewegeungsbefehle nicht mehr. Falls ihr natürlich im Quellcode mehr Fehler findet wäre ich für Hilfe sehr dankbar!
Apropos es geht hier um ein Snake Spiel!
Das hier ist die Java-Datei mit dem Hintergrund!
Java:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package snake;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
/**
*
* @author Smilodon
*/
public class Snake extends JFrame implements KeyListener, Runnable{
private Dot dot = new Dot(3,this);
//Menge der "Dots"
private boolean up, down, left, right;
private apple apple = new apple(this);
public Snake (String title) {
super(title);
this.setFocusable(true);
this.addKeyListener(this);
apple.createLocation();
}
public void paint (Graphics gr){
super.paint(gr);
// mit dieser Methode können wir malen
/**
*
*/
//Image mit Pfad eingegeben plus Ausrichtung des Bildes
gr.drawImage(Toolkit.getDefaultToolkit().getImage("C:\\Users\\ background.png"), -250, -250, this);
//Dot wird gezeichnet
dot.paint(gr);
//Frucht wird gezeichnet
apple.paint(gr);
}
public static void main(String[] args) {
//Größe des Bildes, schließung des Fensters und größe des Fensters, Sichtbarkeit des Fensters
Snake snake = new Snake ("Snake!");
snake.setSize(500, 500);
new Thread(snake).start();
snake.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
snake.setVisible(true);
snake.setUndecorated(true);
snake.setLocation(500, 500);
//Spielfeld wird eingerichtet, größe, Ort, ob es Sichtbar ist etc pp
}
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode()== 37 && !right){
left=true;
right=false;
down=false;
up=false;
}else if (e.getKeyCode() == 38 && !down){
up=true;
right=false;
down=false;
left=false;
}else if (e.getKeyCode() == 39 && !left){
right=true;
up=false;
down=false;
left=false;
}else if (e.getKeyCode() == 40 && !up){
down=true;
right=false;
left=false;
up=false;
//Erklärung welche Befehle "true" oder "false" sind unter anderem die Zuordnung der Tasten (37,38,39,40)
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void run(){
while(true){
if (up){
dot.move("up");
}else if (down){
dot.move("down");
}else if (left){
dot.move("left");
}else if (right){
dot.move("right");
}
dot.checkapple(apple);
repaint();//damit der Punkt auch beim Bewegen erscheint
try {
Thread.sleep(140);
}catch (InterruptedException ex){
Logger.getLogger(Snake.class.getName()).log(Level.SEVERE, null, ex);
}//Den Verzögrungseffekt für den Flaire einschalten!
}
}
}
Das hier ist die Dot Datei - also der Körper der Schlange.
Java:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package snake;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Toolkit;
/**
*
* @author Smilodon
*/
public class Dot {
private int dots;
private int[] dotsX = new int[2500];
private int[] dotsY = new int[2500];
private Component comp;
//Hier steht das mehrere "Dots" auf dem Bildschirm sein können, insgesamt 2500 da unser Spielfeld nicht mehr erlaubt!
public Dot(int dots, Component comp) {
this.dots = dots;
this.comp = comp;
for (int i = 0; i < dots; i++) {
dotsX[i] = 100-i*10;
dotsY[i] = 100;
//Zeigen wie sich der Dot bewegt
}}
public void move(String position) {
for (int i = dots; i>0; i--) {
dotsX[i] = dotsX [ (i - 1)];
dotsY[i] = dotsY [ (i - 1)];
//Hiermit wird klargemacht, dass alle dem ersten Punkt folgen !Wichtig! Man muss sagen dass Punkt 2 auf den Platz von Punkt 1 geht und Punkt 3 auf Punkt 2 etc.
}
if (position.equals("left")){
dotsX[0] -= 10;
} else if (position.equals("right")){
dotsX[0] += 10;
} else if (position.equals("down")){
dotsY[0] += 10;
} else if (position.equals("up")){
dotsY[0] -=10;
}
}
public void checkfrucht(frucht frucht) {
if (dotsX[0] == frucht.getX() && dotsY[0] == Frucht.getY()) {
Frucht.createLocation();
}
}
public void paint (Graphics gr) {
for (int i = 0; i < dots; i++) {
//Zeigen das der Dot mehr werden muss wenn Apfel gegessen
gr.drawImage(Toolkit.getDefaultToolkit().getImage("C:\\Users\\Smilodon\\Desktop\\Snake Schatz\\Snake Paint\\dot.png"), dotsX[i], dotsY[i], comp);
//Bild des Dots und Bewegungseingabe in X und Y Werten
}
}
void checkapple(apple apple) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
Das hier ist der Apfel!
Java:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package snake;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Toolkit;
/**
*
* @author Smilodon
*/
public class apple {
private Component comp;
private int x, y;
public apple(Component comp) {
this.comp = comp;
}
public void createLocation() {
x = 10* (int) (Math.random()*50);
y = 10* (int) (Math.random()*50);
}
public int getX(){
return x;
}
public int getY() {
return y;
}
public void paint(Graphics gr) {
gr.drawImage(Toolkit.getDefaultToolkit().getImage("C:\\Users\\Smilodon\\Desktop\\Snake Schatz\\Snake Paint\\apple.png"), x, y, comp);
}}
Danke schon einmal für die Hilfe!!!
LG
ObjecTV