Heyho,
Kurz zu mir: Fachinformatiker für Systemintegration im 1. Lehrjahr. Voraussichtlich werde ich wohl zum 2. Lehrjahr in die Anwendungsentwicklung springen.
Zur Zeit arbeite ich etwas mit Java, um mich in der Programmierung - neben der Schule - weiterzubilden.
Dazu habe ich bisher einige Tutorials durchgelesen und möchte nach und nach ein Spiel entwickeln. Dazu habe ich mir im Voraus keine Gedanken gemacht, was das Ziel ist - wohl ein großer Fehler! -, sondern möchte einfach mal gucken wie weit ich komme.
Klasse 1
Klasse 2
Klasse 3
Klasse 4
Bis jetzt öffne ich ein Fenster mit einem Hintergrundbild. Außerdem gibt es eine Menüleiste, der ich noch nach und nach diverse Einstellungen hinzufügen möchte. Also habe ich noch gar nichts erreicht. Als "Spielfigur" wollte ich einfach mal ein Rectangle als Test einfügen, jedoch passiert beim ausführen - im Bezug auf das Rectangle - nichts. Es gibt keine Fehlermeldung. Kann mir jemand sagen, wo der Fehler liegt? Werden die Variablen des Rectangles nicht übernommen? Würde mich über Antwort freuen, aber auch Denkanstöße oder generelle Tipps zu einem saubereren (das Wort gibt es nicht, ich weiß) Programmierstil.
Gruß
Thor
Kurz zu mir: Fachinformatiker für Systemintegration im 1. Lehrjahr. Voraussichtlich werde ich wohl zum 2. Lehrjahr in die Anwendungsentwicklung springen.
Zur Zeit arbeite ich etwas mit Java, um mich in der Programmierung - neben der Schule - weiterzubilden.
Dazu habe ich bisher einige Tutorials durchgelesen und möchte nach und nach ein Spiel entwickeln. Dazu habe ich mir im Voraus keine Gedanken gemacht, was das Ziel ist - wohl ein großer Fehler! -, sondern möchte einfach mal gucken wie weit ich komme.
Klasse 1
Java:
package gamePackage;
public class Game
{
public static void main(String[] args)
{
new GameWindow();
}
}
Java:
package gamePackage;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
@SuppressWarnings("serial")
public class GameWindow extends JFrame
{
GamePanel gamePanel;
public GameWindow()
{
this.gamePanel = new GamePanel();
createMenu();
add(gamePanel);
pack();
setTitle("Nam3");
setResizable(false);
setLocationRelativeTo(null);
setVisible(true);
}
void createMenu()
{
JMenuBar menuBar = new JMenuBar();
this.setJMenuBar(menuBar);
JMenu gameMenu = new JMenu("Spiel");
JMenu configMenu = new JMenu("Einstellungen");
menuBar.add(gameMenu);
menuBar.add(configMenu);
addGameMenuItems(gameMenu);
addConfigMenuItems(configMenu);
}
private void addGameMenuItems(JMenu gameMenu)
{
JMenuItem quitItem = new JMenuItem("Spiel verlassen");
gameMenu.add(quitItem);
quitItem.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
}
private void addConfigMenuItems(JMenu configMenu)
{
}
}
Klasse 3
Java:
package gamePackage;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class GamePanel extends JPanel
{
GameFigure gameFigure;
private final int width = 800, height = 600;
private final Dimension windowSize = new Dimension(width, height);
public static final String IMAGE_DIR = "imagePackage/";
private ImageIcon backgroundImage;
private final String[] backgroundImages = new String[] {"image0.jpg"};
public GamePanel()
{
this.gameFigure = new GameFigure();
setPreferredSize(windowSize);
initGame();
startGame();
}
void initGame()
{
setBackgroundImage(0);
}
void startGame()
{
repaint();
}
public void setBackgroundImage(int imageNumber)
{
String imagePath = IMAGE_DIR + backgroundImages[imageNumber];
URL imageURL = getClass().getResource(imagePath);
backgroundImage = new ImageIcon(imageURL);
}
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
backgroundImage.paintIcon(null, g, -300, 0);
g.setColor(Color.BLUE);
g.fillRect(gameFigure.x, gameFigure.y, gameFigure.width, gameFigure.height);
}
}
Klasse 4
Java:
package gamePackage;
import java.awt.Rectangle;
@SuppressWarnings("serial")
public class GameFigure extends Rectangle
{
public Rectangle gameFigure;
public GameFigure()
{
gameFigure = new Rectangle(400, 400, 100, 100);
}
}
Bis jetzt öffne ich ein Fenster mit einem Hintergrundbild. Außerdem gibt es eine Menüleiste, der ich noch nach und nach diverse Einstellungen hinzufügen möchte. Also habe ich noch gar nichts erreicht. Als "Spielfigur" wollte ich einfach mal ein Rectangle als Test einfügen, jedoch passiert beim ausführen - im Bezug auf das Rectangle - nichts. Es gibt keine Fehlermeldung. Kann mir jemand sagen, wo der Fehler liegt? Werden die Variablen des Rectangles nicht übernommen? Würde mich über Antwort freuen, aber auch Denkanstöße oder generelle Tipps zu einem saubereren (das Wort gibt es nicht, ich weiß) Programmierstil.
Gruß
Thor