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

Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

Einführung in die Programmierung für

Nebenfach Medieninformatik

Beat Rossmy, Michael Kirsch

Page 2: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

Direct Feedback - Socrative

2

• Eure Mitarbeit ist uns wichtig!

• Installiert euch dazu die kostenlose App „Socrative Student“ auf Eurem Smartphone oder nutzt das Webinterface unterhttp://b.socrative.com/login/student/

• Anonymer Login über den Raumnamen:

MSMJ0KRQ

Page 3: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

Kollisionserkennung

Beat Rossmy, Michael Kirsch

Page 4: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

4

Quiztime :)

Page 5: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

5

Quiztime - Raumnummer

MSMJ0KRQQuiz: Welche Aussage trifft auf die

folgende Code-Zeile zu?while (true) {…}

A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen

B: Diese Code-Zeile funktioniert nicht. Es muss eine logische Überprüfung erfolgen

C: JFrame erweitert die Klasse Spielfenster

D: Diese Schleife wird niemals durchlaufen

C: JFrame erweitert die Klasse SpielfensterC: Diese Schleife wird solange ausgeführt, bis das Programm beendet wird

Page 6: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

6

Quiztime - Raumnummer

MSMJ0KRQQuiz: Welche Aussage trifft auf die

folgende Code-Zeile zu?while (true) {…}

A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen

B: Diese Code-Zeile funktioniert nicht. Es muss eine logische Überprüfung erfolgen

C: JFrame erweitert die Klasse Spielfenster

D: Diese Schleife wird niemals durchlaufen

C: JFrame erweitert die Klasse SpielfensterC: Diese Schleife wird solange ausgeführt, bis das Programm beendet wird

Page 7: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

7

Quiztime - Raumnummer

MSMJ0KRQ

A: Sobald das Programm läuft. Deswegen auch der Name „run“

B: Wenn ein Thread gestartet wird und dieser die „start()-Methode“ aufruft

C: Sie kann nicht aufgerufen werden

D: Sobald die Paint-Methode durchlaufen wird

Quiz: Wann wird die folgende Methode aufgerufen, die durch die Verwendung des Interfaces „Runnable“ implementiert werden muss?

public void run() {…}

Page 8: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

8

Quiztime - Raumnummer

MSMJ0KRQ

A: Sobald das Programm läuft. Deswegen auch der Name „run“

B: Wenn ein Thread gestartet wird und dieser die „start()-Methode“ aufruft

C: Sie kann nicht aufgerufen werden

D: Sobald die Paint-Methode durchlaufen wird

Quiz: Wann wird die folgende Methode aufgerufen, die durch die Verwendung des Interfaces „Runnable“ implementiert werden muss?

public void run() {…}

Page 9: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

9

Quiztime - Raumnummer

MSMJ0KRQ

A: Runnable ist das Interface, das implementiert werden muss, damit Threads verwenden werden können, um bspw. Animation zu steuern

B: Es bedeutet, dass das Programm jetzt lauffähig ist

C: Runnable ist ein vom Entwickler frei gewählter Name und dient der Organisation bei Refactoring-Maßnahmen

D: Das Interface Runnable sollte nicht verwendet werden. Walkable hingegen schon.

Quiz: Welche Aussage bzgl. des unterstrichenen Teils in der folgenden Codezeile ist richtig?

public class Spielfeld extends JPanel implements KeyListener, Runnable {…}

Page 10: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

10

Quiztime - Raumnummer

MSMJ0KRQ

A: Runnable ist das Interface, das implementiert werden muss, damit Threads verwenden werden können, um bspw. Animation zu steuern

B: Es bedeutet, dass das Programm jetzt lauffähig ist

C: Runnable ist ein vom Entwickler frei gewählter Name und dient der Organisation bei Refactoring-Maßnahmen

D: Das Interface Runnable sollte nicht verwendet werden. Walkable hingegen schon.

Quiz: Welche Aussagen bzgl. des unterstrichenen Teils in der folgenden Codezeile ist richtig?

public class Spielfeld extends JPanel implements KeyListener, Runnable {…}

Page 11: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

Inhalt

11

I. Einleitung 1. Wie geht es weiter?

II. Theorie 1. Kollisionserkennung

III. Anwendung 1. Praxis in IntelliJ

IV. Verknüpfung 1. Tutorials

V. Ausblick 1. Nächste Vorlesung 2. Übung

Page 12: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

Übersicht - Wie geht es weiter?

12

Einführung in die Programmierung

Processing Java

Typen und Operatoren

Kontroll-Strukturen

Grundlagen aus Processing

Klassen und Objekte

Gültigkeit und Konventionen

Methoden Arrays

Konstruktoren Eingaben-verarbeitung

Animationen …

Swing

Objekte/Klassen Interfaces

Threads Vererbung

… Vererbung

Page 13: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

13

Einleitung

Page 14: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

Wie geht es weiter?

14

• Der Ball und die Paddels bewegen sich innerhalb der Spielfeldgrenzen

• Dieses Mal: Kollisionserkennung, Abprallen des Balls und Wertung der Punkte

Page 15: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

15

Theorie

Page 16: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

Kollisionserkennung

16

• Koordinaten-System

0,0

600,600

Y-Position variabel zwischen 0 und 500

X-Position ist immer gleich

2020

Y-Position variabel zwischen 0 und 500

X-Position ist immer gleich

Page 17: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

Kollisionserkennung

17

• Koordinaten-System

X-Position Y-Position 20

20

Page 18: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

Kollisionserkennung

18

• Koordinaten-System

X-Position Y-Position 20

100

Page 19: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

19

• Idee:

• Wenn der Ball die Wand rechts berührt, ist der X-Wert des Balls = 580 Pixel (600 Pixel - Ballgröße von 20 Pixel)

• Wenn der Ball die Wand links berührt, ist der X-Wert des Balls = 0 Pixel (die obere linke Ecke des Balls zählt für die Position!)

• Wenn der Ball die untere Wand berührt, ist der X-Wert egal. Der Y-Wert ist dann 580 Pixel (600 Pixel - Ballgröße von 20 Pixel)

• Wenn der Ball die obere Wand berührt ist der X-Wert ebenso egal. Der Y-Wert ist dann 0 Pixel (die obere linke Ecke des Balls zählt für die Position!)

Kollisionserkennung

Page 20: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

20

Anwendung

Page 21: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

Anwendung in Eclipse

21

• Hands on…

Page 22: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

22

Verknüpfung

Page 23: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

Tutorials / Literatur

23

• Bei vielen Internetseiten findet ihr die behandelten Themen weiter und ausführlicher erklärt

• Eine Auswahl:

• Brotcrunsher (https://www.youtube.com/playlist?list=PL71C6DFDDF73835C2)

• Java-Tutorials(http://www.java-tutorial.org/swing.html)

• Head Firsthttp://shop.oreilly.com/product/9780596009205.do

Page 24: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

Ausblick

24

Page 25: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

25

• Die Probeklausur wird in der letzten Vorlesung besprochen

• Bereitet für die letzte Vorlesung Fragen vor, damit wir sie dann besprechen können

Ausblick

Page 26: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

Fragen?

26

Page 27: Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der Entwickler die Wahrheit sagt, wird dieser Codeblock durchlaufen B: Diese Code-Zeile

Vielen Dank für Eure Aufmerksamkeit

27