Hallo,
ich versuche derzeit ein Spiel zu programmieren, das Ähnlichkeiten mit FlappyBird hat.
Ich weiß allerdings nicht, wie ich meinen Astronauten zum Fallen bringe.
Bis jetzt konnte ich diesen lediglich mit der drawImage Methode zum Spielfeld hinzufügen.
Hier sind meine beiden Klassen:
Wenn man im Menü auf den "Spielen" Button klickt, gelangt man in die "Spielwelt"(Frame).
Wenn man dort ist und einmal klickt (egal wohin), soll img3 (enhält den Schriftzug "click to start") verschwinden und der Astronaut nach unten fallen. Hat jemand eine Idee, wie ich das umsetzen könnte? Wenn sich jemand kurz Zeit nehmen würde, um mein Problem zu lösen, würde es mich sehr freuen.
LG Jakob
Ps:. Ich bin neu hier im Forum, kenne mich deshalb noch nicht wirklich aus. Ich bitte um Entschuldigung, falls ich etwas falsch gemacht habe.
ich versuche derzeit ein Spiel zu programmieren, das Ähnlichkeiten mit FlappyBird hat.
Ich weiß allerdings nicht, wie ich meinen Astronauten zum Fallen bringe.
Bis jetzt konnte ich diesen lediglich mit der drawImage Methode zum Spielfeld hinzufügen.
Hier sind meine beiden Klassen:
Java:
package com.jakobstieve.rocketescape;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Frame extends JFrame implements ActionListener{
private JButton schliessen;
private JButton ende;
static int width = Toolkit.getDefaultToolkit().getScreenSize().width;
static int height = Toolkit.getDefaultToolkit().getScreenSize().height;
static JLabel Background = new JLabel();
static ImageIcon BackgroundImage = new ImageIcon("MenuBackground.png");
public static void main(String[] args) {
Frame frame = new Frame("RocketEscape");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,400);
frame.setLayout(null);
frame.setVisible(true);
frame.setResizable(false);
frame.add(Background);
Background.setBounds(0, 0, 400, 400);
Background.setIcon(BackgroundImage);
}
public Frame (String title){
super(title);
schliessen = new JButton("Spielen");
schliessen.setBounds(120,200,160,40);
schliessen.addActionListener(this);
add(schliessen);
ende = new JButton("Beenden");
ende.setBounds(120,275,160,40);
ende.addActionListener(this);
add(ende);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource()== schliessen){
fenster();
}
if (e.getSource()== ende){
System.exit(0);
}
}
public static void fenster(){
JFrame fenster = new JFrame();
fenster.setTitle("RocketEscape");
fenster.setSize(width,height);
fenster.setVisible(true);
fenster.setResizable(true);
fenster.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
fenster.setExtendedState(java.awt.Frame.MAXIMIZED_BOTH);
fenster.add(new Gui());
}
}
Java:
package com.jakobstieve.rocketescape;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
public class Gui extends JPanel{
Image img;
Image img2;
Image img3;
static int width = Toolkit.getDefaultToolkit().getScreenSize().width;
static int height = Toolkit.getDefaultToolkit().getScreenSize().height;
public Gui(){
setFocusable(true);
ImageIcon u = new ImageIcon("BackgroundImage.png");
ImageIcon s = new ImageIcon("Astronaut.png");
ImageIcon Clicktostart = new ImageIcon("Cts.png");
img = u.getImage();
img2 = s.getImage();
img3 = Clicktostart.getImage();
}
public void paint(Graphics g){
super.paint(g);
Graphics2D f2 = (Graphics2D)g;
f2.drawImage(img,0,0,null);
f2.drawImage(img2, width/2-53, height/3-90, null);
f2.drawImage(img3, width/2-188, height-height/3, null);
}
public void fall(){
double dy = 0;
double g = 1.3;
dy = dy + g;
//Y Position des Astronauten um dy verändern.
}
}
Wenn man dort ist und einmal klickt (egal wohin), soll img3 (enhält den Schriftzug "click to start") verschwinden und der Astronaut nach unten fallen. Hat jemand eine Idee, wie ich das umsetzen könnte? Wenn sich jemand kurz Zeit nehmen würde, um mein Problem zu lösen, würde es mich sehr freuen.
LG Jakob
Ps:. Ich bin neu hier im Forum, kenne mich deshalb noch nicht wirklich aus. Ich bitte um Entschuldigung, falls ich etwas falsch gemacht habe.