Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der...

Post on 19-Oct-2020

0 views 0 download

Transcript of Einführung in die Programmierung für Nebenfach ...€¦ · while (true) {…} A: Solange der...

Einführung in die Programmierung für

Nebenfach Medieninformatik

Beat Rossmy, Michael Kirsch

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

Kollisionserkennung

Beat Rossmy, Michael Kirsch

4

Quiztime :)

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

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

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() {…}

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() {…}

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 {…}

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 {…}

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

Ü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

13

Einleitung

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

15

Theorie

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

Kollisionserkennung

17

• Koordinaten-System

X-Position Y-Position 20

20

Kollisionserkennung

18

• Koordinaten-System

X-Position Y-Position 20

100

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

20

Anwendung

Anwendung in Eclipse

21

• Hands on…

22

Verknüpfung

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

Ausblick

24

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

Fragen?

26

Vielen Dank für Eure Aufmerksamkeit

27