Hallo Leute,
ich bin ganz neu in der Spieleprogrammierung und mache deshalb vielleicht nicht immer intelligente Beiträge
Ich möche ein Spiel machen, wo man einen Kreis bewegt.
Dieser Kreis geht immer nach unten(beabsichtigt um die Schwerkraft darzustellen).
Jetzt möchte ich, das er, wenn er auf z.B. einem Rechteck "landet" dort stehen blebt(also soll das rechteck ein "festes" rechteck sein).
Dieses Rechteck möchte als Objekt machen, aber ich habe keinen ansatz, wie ich anfangen soll.
Hier meine Main:
Danke schonmal im vorraus
ich bin ganz neu in der Spieleprogrammierung und mache deshalb vielleicht nicht immer intelligente Beiträge
Ich möche ein Spiel machen, wo man einen Kreis bewegt.
Dieser Kreis geht immer nach unten(beabsichtigt um die Schwerkraft darzustellen).
Jetzt möchte ich, das er, wenn er auf z.B. einem Rechteck "landet" dort stehen blebt(also soll das rechteck ein "festes" rechteck sein).
Dieses Rechteck möchte als Objekt machen, aber ich habe keinen ansatz, wie ich anfangen soll.
Hier meine Main:
Code:
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.sound.midi.InvalidMidiDataException;
import javax.sound.midi.MidiUnavailableException;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class v extends JFrame
{
private int x = 50, y = 30;
private boolean[] keyPressed = new boolean[4];
private int UP = 0, RIGHT = 1, DOWN = 2, LEFT = 3;
private int[] a = {2,2,44,5};
private int arx[] = {50,50,230,120,80,80,100,100,80,80};
private int ary[] = {130,40,40,70,100,100,100,130,130,170};
private JPanel ocean = new JPanel()
{
public void keyPressed(KeyEvent event)
{
if (event.getKeyCode() == KeyEvent.VK_ESCAPE)
{
System.exit(0);
}
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
this.setBackground(Color.white);
g.setColor (Color.black);
g.fillOval (x, y, 10, 10);
g.drawRect (100, 100,200, 200);
g.drawLine(20, 20, 10, 10);
g.setColor (Color.blue);
g.setColor (Color.darkGray);
g.setColor (Color.red);
int x = 10, y = 80;
int sizex, sizey = 0;
g.setColor(Color.black);
g.drawPolygon(arx,ary,arx.length);
while (x < 280 && y < 180)
{
sizex = 209;
if (6 > 0.5)
{
y += sizey;
sizey = 4 + 6;
}
g.drawRect(x+200,y+200,sizex,sizey);
x += sizex;
}
}
};
public v()
{
super("Spiel");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setAlwaysOnTop(true);
this.setLocationByPlatform(true);
this.setResizable(false);
this.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
update(e, true);
}
public void keyReleased(KeyEvent e)
{
update(e, false);
}
public void update(KeyEvent e, boolean pressed)
{
if (e.getKeyCode() == KeyEvent.VK_UP)
{
keyPressed[UP] = pressed;
//Hier möchte ich es irgendwie noch machen, dass man nicht belibig hoch
//springen kann
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT)
{
keyPressed[RIGHT] = pressed;
}
if (e.getKeyCode() == KeyEvent.VK_LEFT)
{
keyPressed[LEFT] = pressed;
}
if (e.getKeyCode() == KeyEvent.VK_W)
{
keyPressed[UP] = pressed;
}
if (e.getKeyCode() == KeyEvent.VK_D)
{
keyPressed[RIGHT] = pressed;
}
if (e.getKeyCode() == KeyEvent.VK_A)
{
keyPressed[LEFT] = pressed;
}
if (e.getKeyCode() == KeyEvent.VK_ESCAPE)
{
System.exit(0);
}
}
});
new Thread()
{
public void run()
{
while (true)
{
y -= (keyPressed[UP] ? 10 : 0);
x += (keyPressed[RIGHT] ? 7 : 0);
y += (keyPressed[DOWN] ? 10 : 5);
x -= (keyPressed[LEFT] ? 7 : 0);
ocean.repaint();
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
}.start();
ocean.setPreferredSize(new Dimension(480, 320));
this.add(ocean, BorderLayout.CENTER);
this.setSize(600,600);
this.setVisible(true);
}
public static void main(String[] args) throws InterruptedException, MidiUnavailableException, InvalidMidiDataException
{
new v();
}
}