From 35c3bdccd065c44a404e440757ebb48ca6f5ebac Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Thu, 12 Mar 2026 08:34:55 +0100 Subject: update slides for jumpnrun --- Info/10/2/JumpNRun/img/oide_mouse_coordinates.png | Bin 0 -> 6562 bytes Info/10/2/JumpNRun/slides.md | 289 +++++++++------------- 2 files changed, 123 insertions(+), 166 deletions(-) create mode 100644 Info/10/2/JumpNRun/img/oide_mouse_coordinates.png diff --git a/Info/10/2/JumpNRun/img/oide_mouse_coordinates.png b/Info/10/2/JumpNRun/img/oide_mouse_coordinates.png new file mode 100644 index 00000000..27482880 Binary files /dev/null and b/Info/10/2/JumpNRun/img/oide_mouse_coordinates.png differ diff --git a/Info/10/2/JumpNRun/slides.md b/Info/10/2/JumpNRun/slides.md index afac3e84..16c4d61c 100644 --- a/Info/10/2/JumpNRun/slides.md +++ b/Info/10/2/JumpNRun/slides.md @@ -40,12 +40,14 @@ aspectratio: 169 * Bewegen * Springen -\vspace{-0.3cm} +\vspace{-0.2cm} ### Flagge +\vspace{-0.3cm} * Position -\vspace{-0.3cm} +\vspace{-0.2cm} ### Plattform +\vspace{-0.3cm} * Position * Höhe * Breite @@ -108,7 +110,7 @@ aspectratio: 169 \attribute{interaktiveObjekte} \end{class} - \begin{class}[text width=3cm]{Spiel}{0,-2.5} + \begin{class}[text width=3cm]{Spiel}{0,-4.5} \attribute{level} \attribute{player} \end{class} @@ -142,15 +144,15 @@ aspectratio: 169 \attribute{Level} \attribute{Player} \end{class} - \association{Spiel}{}{}{Spieler}{1}{}; + \association{Spiel}{}{enthält}{Spieler}{1}{}; \begin{class}[text width=3cm]{Level}{1,-4.5} \attribute{festeObjekte} \attribute{interaktiveObjekte} \end{class} - \association{Spiel}{}{}{Level}{1}{}; + \association{Spiel}{}{ist aktiv}{Level}{1}{}; \association{Level}{}{}{Flagge}{}{}; - \association{Level}{}{}{Platform}{n}{}; + \association{Level}{}{enthält}{Platform}{n}{}; \end{tikzpicture} ## {.standout} @@ -234,13 +236,13 @@ solange Spiel aktiv <- Online-IDE ::: {.columns} :::: {.column width=75%} -Wir erfüllen mit unserer `Spieler`-Klasse das \boldred{interface}, das die Online-IDE vorgibt. +Wir erfüllen mit unserer Spieler Klasse das \boldred{interface}, das die Online-IDE vorgibt. \vspace{0.1cm} Ein Interface gibt zu implementierende Methoden vor. \vspace{0.1cm} -Um automatisch das Interface zu erfüllen, erben wir von der Klasse `Actor`. +Um automatisch das Interface zu erfüllen, erben wir von der Klasse `Sprite` bzw. `Actor`. :::: :::: {.column width=25%} @@ -284,7 +286,7 @@ Um automatisch das Interface zu erfüllen, erben wir von der Klasse `Actor`. \pause **Java** -`class Player extends Actor`{.java} +`class Player extends Sprite`{.java} \pause @@ -351,6 +353,31 @@ Wir haben die Methoden bereits von der Klasse `Actor` geerbt. * `boolean isKeyDown(String key)`{.java} * `boolean isKeyUp(String key)`{.java} +## Koordinaten in der Online-IDE + +Die Online-IDE benutzt ein Koordinatensystem, dessen \boldred{Ursprung} in der **linken oberen** Ecke liegt. + +::: {.columns} +:::: {.column width=40%} +\begin{tikzpicture} +\node at (-0.5, 0.5) {\small $(0, 0)$}; +\node at (1.5, 0.25) {\small $x$}; +\draw[->] (0, 0) -- (3, 0); +\node at (3, 0.5) {\small $(800,0)$}; +\draw[->] (0, 0) -- (0, -3); +\node at (-0.25, -1.5) {\small $y$}; +\node at (-0.5, -3.3) {\small $(0,600)$}; +\end{tikzpicture} +:::: + +:::: {.column width=60%} +![](img/oide_mouse_coordinates.png){.center height=60%} + +Die Koordinaten des Mauszeigers werden über dem Spielfeld angezeigt. +:::: +::: + + ## \faIcon{desktop} Arbeitsauftrag: Los gehts! \hfill 10 min \let\tightlist\relax @@ -361,14 +388,14 @@ Wir haben die Methoden bereits von der Klasse `Actor` geerbt. ## \faIcon{desktop} Arbeitsauftrag: Spieler bewegen \hfill 15 min -Vervollständige die Methode `act` des Spielers +Vervollständige die Methode `act` des Spielers. * Die Figur soll sich entsprechend ihrer Geschwindigkeit in X-Richtung (`vx`) horizontal bewegen. - **Tipp**: Verwende die Methode `move(double deltaX, double deltaY)`{.java} der Klasse `Sprite` + **Tipp**: Verwende die Methode `move(double deltaX, double deltaY)`{.java} der Klasse `Sprite`. * *Falls* eine Pfeiltaste gedrückt wird, soll sich Figur mit der Geschwindigkeit `speed` in die entsprechende Richtung bewegen. **Tipp**: Verwende die Methode `isKeyDown(int key)`{.java} mit den beiden Pfeiltasten: `Key.ArrowLeft`{.java} und `Key.ArrowRight`{.java} * Wird **keine** der beiden Tasten gedrückt, soll die Figur abbremsen. - Setzte ihre Geschwindigkeit in X-Richtung auf $80%$ des aktuellen Werts. + Setzte ihre Geschwindigkeit in X-Richtung auf $80\%$ des aktuellen Werts. \faIcon{play} Teste deine Implementierung. @@ -384,7 +411,7 @@ Vervollständige die Methode `act` des Spielers ## \faIcon{desktop} Arbeitsauftrag: Springen \hfill 10 min -*Falls* die Figur auf dem Boden steht, d.h. ihr Mittelpunkt einen Y-Wert *größer gleich* 350 hat, **und** die Pfeiltaste nach oben gedrückt ist `Key.ArrowUp` soll sich ihre Geschwindigkeit in Y-Richtung `vy` um `sprung` erhöhen. +*Falls* die Figur auf dem Boden steht, d.h. ihr Mittelpunkt einen Y-Wert *größer gleich* 350 hat, **und** die Pfeiltaste nach oben gedrückt ist `Key.ArrowUp`, \newline soll sich ihre Geschwindigkeit in Y-Richtung `vy` um `sprung` erhöhen. \faIcon{play} Teste deine Implementierung. @@ -404,11 +431,13 @@ Die Figur soll in die Richtung ihrer Bewegung blicken. ## Plattformen und Level +Ein Level soll mehrere feste Plattformen haben. + ::: {.columns} :::: {.column width=50%} \begin{center} \begin{tikzpicture} - \begin{class}[text width=4cm]{Plattform}{0,-4.5} + \begin{class}[text width=4cm]{Plattform}{0,-3.5} \attribute{position} \attribute{hoehe} \attribute{breite} @@ -418,11 +447,9 @@ Die Figur soll in die Richtung ihrer Bewegung blicken. \attribute{festeObjekte} \attribute{interaktiveObjekte} \end{class} + \association{Plattform}{n}{}{Level}{enthält}{1}; \end{tikzpicture} \end{center} - -\vspace{1cm} -Ein Level soll mehrer feste Plattformen haben. :::: :::: {.column width=50%} @@ -430,196 +457,126 @@ Ein Level soll mehrer feste Plattformen haben. :::: ::: - -- cgit v1.2.3