Hallo und schonmal vielen dank für eure mühe!
Ich lerne gerade Java mit einem Buch und Parallel mit YouTube Tutorials und habe mit meinem Vater eine Wette, wer als erstes PacMan programmiert.
Ich nutze die IDE Eclipse und habe folgendes Problem:
In ein JFrame habe ich 2 Images hinzugefügt: eines als Hintergrund und eines mit einer PacManfigur.
Mithilfe von Tutorials, die ich auf mein Ziel (PacMan) angepasst habe,
habe ich probiert meine PacManfigur erstmal von links nach rechts und andersherum mit den Pfeiltasten zu bewegen, aber es funktioniert nicht, egal wie oft ich alles prüfe und neu schreibe, weshalb ich euch um Hilfe bitte.
Ich habe 2 Klassen: die eine für das Spielmenü und die Buttons usw, die frame.java heißt,
und eine Klasse für das, was im Spiel passieren soll, die Gui.java heißt.
Das ist die frame Klasse:
Und hier ist die Gui Klasse:
Vielen Dank schonmal
Ich lerne gerade Java mit einem Buch und Parallel mit YouTube Tutorials und habe mit meinem Vater eine Wette, wer als erstes PacMan programmiert.
Ich nutze die IDE Eclipse und habe folgendes Problem:
In ein JFrame habe ich 2 Images hinzugefügt: eines als Hintergrund und eines mit einer PacManfigur.
Mithilfe von Tutorials, die ich auf mein Ziel (PacMan) angepasst habe,
habe ich probiert meine PacManfigur erstmal von links nach rechts und andersherum mit den Pfeiltasten zu bewegen, aber es funktioniert nicht, egal wie oft ich alles prüfe und neu schreibe, weshalb ich euch um Hilfe bitte.
Ich habe 2 Klassen: die eine für das Spielmenü und die Buttons usw, die frame.java heißt,
und eine Klasse für das, was im Spiel passieren soll, die Gui.java heißt.
Das ist die frame Klasse:
Java:
package de.hackerbanane.pacman;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class frame extends JFrame implements ActionListener {
private JButton spielen;
private JButton einstellungen;
private JButton info;
private JButton ende;
public static void main(String[] args) {
frame frame = new frame("PacMan -Menü-");
frame.setDefaultCloseOperation(JFrame.[B][I]EXIT_ON_CLOSE[/I][/B]);
frame.setSize(400, 400);
frame.getContentPane().setBackground(Color.[B][I]DARK_GRAY[/I][/B]);
frame.setLayout(null);
frame.setVisible(true);
}
public frame(String title) {
super(title);
spielen = new JButton("Spiel starten");
spielen.setBounds(120, 40, 160, 40);
spielen.addActionListener(this);
add(spielen);
einstellungen = new JButton("Einstellungen");
einstellungen.setBounds(120, 120, 160, 40);
einstellungen.addActionListener(this);
add(einstellungen);
info = new JButton("INFO");
info.setBounds(120, 200, 160, 40);
info.addActionListener(this);
add(info);
ende = new JButton("Ende");
ende.setBounds(120, 280, 160, 40);
ende.addActionListener(this);
add(ende);
}
public static void spiel() {
JFrame spiel = new JFrame("PacMan");
spiel.setDefaultCloseOperation(JFrame.[B][I]EXIT_ON_CLOSE[/I][/B]);
spiel.setSize(700,700);
spiel.setVisible(true);
spiel.add(new Gui());
}
public static void auswahl() {
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == spielen ) {
[I]spiel[/I]();
}
if (e.getSource() == info ) {
Object[] options = { "OK"};
JOptionPane.[I]showOptionDialog[/I](null,"Programmiert von HackerBanane!","Information",JOptionPane.[B][I]DEFAULT_OPTION[/I][/B],JOptionPane.[B][I]PLAIN_MESSAGE[/I][/B],null,options,options[0]);
}
if (e.getSource() == einstellungen) {
[I]auswahl[/I]();
}
if (e.getSource() == ende) {
System.[I]exit[/I](0);
}
}
}
Und hier ist die Gui Klasse:
Java:
package de.hackerbanane.pacman;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import javax.swing.Timer;
public class Gui extends JPanel implements ActionListener {
Timer time;
Image img;
Image img2;
int key;
int x_bild;
int lauf;
int links;
public Gui() {
key = 0;
lauf = 0;
setFocusable(true);
ImageIcon b = new ImageIcon((getClass().getResource("background.jpg")));
img = b.getImage();
ImageIcon c = new ImageIcon((getClass()).getResource("c-pacman.jpg"));
img2 = c.getImage();
addKeyListener(new AL());
time = new Timer(5,this);
time.start();
}
public void ActionPerformed(ActionEvent e) {
bewegen();
repaint();
}
public void paint(Graphics g) {
super.paint(g);
Graphics2D f2 =(Graphics2D)g;
f2.drawImage(img,0,0,null);
f2.drawImage(img2,x_bild,550,null);
}
public void bewegen() {
x_bild += lauf;
}
private class AL extends KeyAdapter {
public AL() {
}
public void keyPressed(KeyEvent e) {
key = e.getKeyCode();
if(key == KeyEvent.[B][I]VK_LEFT[/I][/B]) {
lauf = -2;
}
if(key == KeyEvent.[B][I]VK_RIGHT[/I][/B]) {
lauf = 2;
}
}
public void keyReleased(KeyEvent e) {
key = e.getKeyCode();
if(key == KeyEvent.[B][I]VK_LEFT[/I][/B] || key == KeyEvent.[B][I]VK_RIGHT[/I][/B]) {
lauf = 0;
}
}
}
public void actionPerformed(ActionEvent e) {
}
public int getXBild( ) {
return x_bild;
}
}
Vielen Dank schonmal