Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009



Ähnliche Dokumente
Schritt 1 - Ein Spielfeld

8.6 Visualisierung der Sortieralgorithmen

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik

Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java

Musterlösungen zur Klausur Informatik 3

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog.

Ab jetzt: Java ohne Kara

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Applets I. Grundlagen der g Applet-Programmierung

Praktikum: Einstieg: Arbeitsplatz, JCreator

Applications Applets (eingeschränkte Rechte)

Einstieg in die Informatik mit Java

Kapitel 19: Klassen und Unterklassen

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

2A Basistechniken: Weitere Aufgaben

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Einführung in die Programmierung

Programmieren in Java

Graphic Coding. Klausur. 9. Februar Kurs A

Graphische Benutzungsoberflächen

Workshop zu Folge 9.3 Überarbeitete Version vom Mai 2016

Test-Driven Design: Ein einfaches Beispiel

Grundlagen der Programmierung APPLETS

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Begleitendes Praktikum zur Vorlesung Künstliche Intelligenz

GUI Programmierung mit JAVA Swing

Einführung in die Programmierung Blockkurs Java

Session 1: Classes and Applets

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

Objektorientierte Programmierung

5. Tutorium zu Programmieren

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 4

Große Übung Praktische Informatik 1

Visual Basic Express erstes Projekt anlegen

Einführung in Javadoc

Grundkonstrukte der Objektorientierung in Java, C# und C++

Java: Vererbung. Teil 3: super()

Verteilte Systeme CS5001

Aufgabenblatt Nr. 5 Generizität und TicTacToe

C++ Tutorial: Timer 1

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

Delegatesund Ereignisse

Dokumentation des Projektes Tic Tac Toe

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Interaktive Elemente, GUI-Programmierung

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Programmierkurs Java

Software Entwicklung II (SS12)

1 Vorraussetzungen. 2 Installiere Eclipse. FS 2015 Herausgabe: Dr. A. L. Schüpbach, D. Sidler, Z. István Departement Informatik, ETH Zurich

Liste Programmieren Java Überblick

Dokumentation für das Spiel Pong

Einführung in Eclipse und Java

Einbindung der Tastatur

Design Patterns 2. Model-View-Controller in der Praxis

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Java Einführung Abstrakte Klassen und Interfaces

Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr Seite 1 von 5. Teil 2: Aufgaben

Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

WPF Steuerelemente Listbox, ComboBox, ListView,

Grafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung

JButton, JCheckBox, JRadioButton. Programmieren II. Vorlesung 7. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2009.

Einführung in die Informatik Tools

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Vorbereitende Aufgaben

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

IT in der Arztpraxis Technisches Handbuch zum Kodierassistenten

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16. Allgemeine Informationen zum Praktikum

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Objektorientierte Software-Entwicklung

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch

Universität Paderborn Prof. Dr. Stefan Böttcher. Kapitel 3: Java Applets

Parallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele:

Javakurs zu Informatik I. Henning Heitkötter

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Bilder. 2D Spiele programmieren in Java. Alpha channel. Formate. Optimierung. Empfehlung

Objektorientierte Programmierung

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS Universität zu Lübeck

Modalitäten der LSF-Belegung für die Lehrveranstaltungen

Probeklausur: Programmierung WS04/05

Computeranwendung und Programmierung (CuP)

Technische Universität München SS 2006 Fakultät für Informatik 12. Oktober 2006 Prof. Dr. A. Knoll. Aufgabe 1 Transferfragen (Lösungsvorschlag)

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

3 Wie bekommen Sie Passwortlevel 3 und einen Installateurscode?

Auswertung zu 5510P MES-Praktikum

Transkript:

Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 1

Ziele Jede(r) BioINFORMATIKER/-IN muss programmieren können! Programmieren (in diesem Fall: Java) lernen Selbstständig ein größeres System (=Spiel) implementieren Zugangsvoraussetzung für den Blockteil des Praktikums Spaß ;-) Ziel der zwei Vorlesungen: Grundlagen der Spieleprogrammierung + Eclipse (VL 1) Entwicklung eines kleinen Spiels ( Pong ) (VL 2a) Vorstellung der Projekte (VL 2b) Ausführliche Unterlagen / das Tutorial zu den Vorlesungen findet ihr unter http://javacooperation.gmxhome.de Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 2

Die heutige Vorlesung Eclipse Applet Bewegung Doppelpufferung Mausereignisse Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 3

Eclipse Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 4

Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 5

Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 6

Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 7

Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 8

Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 9

Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 10

Applets Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 11

Die Applet - Grundstruktur public class Pong1 extends Applet { public void init() { public void start() { public void stop() { public void destroy() { public void paint (Graphics g) { Keine main Methode, stattdessen init() Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 12

Strg+Umsch+O Import packages Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 13

Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 14

Einbinden in HTML - Seite <html> <body> <applet code = Main width= 700 height= 400 ></applet> </body> </html> Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 15

Laufen lassen in Eclipse Strg+Space Autoergänzung / Vorschläge Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 16

Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 17

Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 18

Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 19

Bewegung Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 20

Threads import java.applet.*; import java.awt.*; public class Pong2 extends Applet implements Runnable { public void init() { public void start() { public void stop() { public void destroy() { public void run () { public void paint (Graphics g) { Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 21

Threads import java.applet.*; import java.awt.*; public class Pong2 extends Applet implements Runnable { public void init() { public void start() { Thread th = new Thread(this); th.start(); public void stop() { public void destroy() { public void run () { public void paint (Graphics g) { Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 22

Threads import java.applet.*; import java.awt.*; public class Pong2 extends Applet implements Runnable {... public void run () { while (true) { repaint();... try{ Thread.sleep (20); catch (InterruptedException ex){ Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 23

Ball import java.applet.*; import java.awt.*; public class Pong3 extends Applet implements Runnable { private int xposition; private int yposition; private int radius; public void init() { xposition = 0; yposition = 100; radius = 20;... Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 24

Ball import java.applet.*; import java.awt.*; public class Pong3 extends Applet implements Runnable {... public void run () { while (true){ xposition++; repaint();... try{ Thread.sleep (20); catch (InterruptedException ex){ Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 25

Ball import java.applet.*; import java.awt.*; public class Pong3 extends Applet implements Runnable {... public void paint (Graphics g) { g.setcolor(color.red); g.filloval (xposition - radius, yposition - radius, 2 * radius, 2 * radius); Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 26

Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 27

Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 28

Doppelpufferung Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 29

Doppelpufferung import java.applet.*; import java.awt.*; public class Pong4 extends Applet implements Runnable {... private Image dbimage; private Graphics dbg; public void init() { dbimage = createimage(this.getsize().width, this.getsize().height); dbg = dbimage.getgraphics();... Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 30

Doppelpufferung import java.applet.*; import java.awt.*; public class Pong4 extends Applet implements Runnable {... public void update(graphics g) { dbg.setcolor(getbackground()); dbg.fillrect(0, 0, this.getsize().width, this.getsize().height); dbg.setcolor(getforeground()); paint(dbg); g.drawimage(dbimage, 0, 0, this); Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 31

Flackert nicht ;-) Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 32

Mausereignisse Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 33

Mausereignisse public class Pong4 extends Applet implements Runnable {... private int xspeed; public void init() { xposition = 0; yposition = 100; radius = 20; xspeed = 1; public void run () {... xposition+=xspeed;...... Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 34

Mausereignisse public class Pong4 extends Applet implements Runnable, MouseListener {... Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 35

Strg+1 add unimplemented methods Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 36

Mausereignisse public class Pong4 extends Applet implements Runnable, MouseListener {... public void mouseclicked(mouseevent e) { public void mouseentered(mouseevent e) { public void mouseexited(mouseevent e) { public void mousepressed(mouseevent e) { public void mousereleased(mouseevent e) { Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 37

Mausereignisse public class Pong4 extends Applet implements Runnable, MouseListener {... public void mouseclicked(mouseevent e) { xspeed = -xspeed;... Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 38

Mausereignisse public class Pong4 extends Applet implements Runnable {... public void init() {... addmouselistener(this); Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 39

Ball ändert Richtung bei Maus - Klick Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 40

Bis zum nächsten Mal Verstehen was wir heute gemacht haben! Nachlesen: Was ist Vererbung, was ist eine abstrakte Klasse Zur Übung: Ball in X- und Y-Richtung bewegen Ball von der Wand abprallen lassen Sound einfügen, wenn der Ball von der Wand abprallt (siehe Tutorial) Hintergrundbild einfügen (siehe Tutorial) Keyboardevents abfangen (also Ball z.b. mit den Pfeiltasten steuern) Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 41