Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
J
jumpNrun
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
wise2023_jumpnrun
jumpNrun
Commits
b82371bb
Commit
b82371bb
authored
1 year ago
by
Janos
Browse files
Options
Downloads
Plain Diff
Merge branch 'main' of git.imp.fu-berlin.de:wise2023_jumpnrun/jumpnrun
parents
74832510
da4cb49c
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
charac.c
+2
-2
2 additions, 2 deletions
charac.c
menu2.c
+9
-3
9 additions, 3 deletions
menu2.c
output.c
+14
-2
14 additions, 2 deletions
output.c
title_screen.c
+2
-1
2 additions, 1 deletion
title_screen.c
with
27 additions
and
8 deletions
charac.c
+
2
−
2
View file @
b82371bb
...
@@ -6,8 +6,8 @@ Vorbedingung: Es wurde eine Taste gedrückt
...
@@ -6,8 +6,8 @@ Vorbedingung: Es wurde eine Taste gedrückt
Nachbedingung: Position des Characters hat sich je nach Tasteneingabe verändert. Wenn keine Steuertaste gedrückt wird, dann passiert nichts.
Nachbedingung: Position des Characters hat sich je nach Tasteneingabe verändert. Wenn keine Steuertaste gedrückt wird, dann passiert nichts.
*/
*/
// playerscore = interne Darstellung der ingesamt gelaufenen Schritte minus der zurückgelaufenen Schritte
// playerscore = interne Darstellung der ingesamt gelaufenen Schritte minus der zurückgelaufenen Schritte
+ gesammelte Münzen
// playerhighscore = externe Darstellung; höchste Anzahl an nach oben gelaufenen Schritten
// playerhighscore = externe Darstellung; höchste Anzahl an nach oben gelaufenen Schritten
+ gesammelte Münzen
// ROW_SIZE = 100
// ROW_SIZE = 100
// SDL_SCANCODE_X = MACRO von SDL anstall "magic numbers" zu verwenden
// SDL_SCANCODE_X = MACRO von SDL anstall "magic numbers" zu verwenden
...
...
This diff is collapsed.
Click to expand it.
menu2.c
+
9
−
3
View file @
b82371bb
...
@@ -64,6 +64,9 @@ enum vehicle startscreen(SDL_Renderer* renderer){
...
@@ -64,6 +64,9 @@ enum vehicle startscreen(SDL_Renderer* renderer){
paste_row
(
renderer
,
SCREEN_HEIGHT
-
7
*
ROW_SIZE
,
grassBright
);
paste_row
(
renderer
,
SCREEN_HEIGHT
-
7
*
ROW_SIZE
,
grassBright
);
paste_row
(
renderer
,
SCREEN_HEIGHT
-
8
*
ROW_SIZE
,
grassDark
);
paste_row
(
renderer
,
SCREEN_HEIGHT
-
8
*
ROW_SIZE
,
grassDark
);
//Handling von Eingabe Events:
while
(
SDL_PollEvent
(
&
event
))
{
while
(
SDL_PollEvent
(
&
event
))
{
switch
(
event
.
type
)
{
switch
(
event
.
type
)
{
...
@@ -76,7 +79,7 @@ enum vehicle startscreen(SDL_Renderer* renderer){
...
@@ -76,7 +79,7 @@ enum vehicle startscreen(SDL_Renderer* renderer){
SDL_FreeSurface
(
surfaceMessage
);
SDL_FreeSurface
(
surfaceMessage
);
SDL_DestroyTexture
(
Message
);
SDL_DestroyTexture
(
Message
);
return
(
coin_gathered
);
return
(
coin_gathered
);
}
else
if
(
200
<=
event
.
button
.
y
&&
event
.
button
.
y
<=
400
){
}
else
if
(
200
<=
event
.
button
.
y
&&
event
.
button
.
y
<=
400
){
SDL_FreeSurface
(
surfaceMessage
);
SDL_FreeSurface
(
surfaceMessage
);
SDL_DestroyTexture
(
Message
);
SDL_DestroyTexture
(
Message
);
...
@@ -100,6 +103,10 @@ enum vehicle startscreen(SDL_Renderer* renderer){
...
@@ -100,6 +103,10 @@ enum vehicle startscreen(SDL_Renderer* renderer){
default:
default:
break
;
break
;
/*
Zur Auswahl wird ein SDL_Rect rahmen bewegt (w = nach oben, s = nach unten). Wird die Entertaste gedrückt,
wird nach Position des Rahmens das entsprechende Level geladen
*/
case
SDL_KEYDOWN
:
case
SDL_KEYDOWN
:
if
(
event
.
key
.
keysym
.
scancode
==
SDL_SCANCODE_W
&&
rahmen
.
y
>
200
){
if
(
event
.
key
.
keysym
.
scancode
==
SDL_SCANCODE_W
&&
rahmen
.
y
>
200
){
rahmen
.
y
-=
200
;
rahmen
.
y
-=
200
;
...
@@ -256,7 +263,6 @@ int end_screen(SDL_Renderer* renderer) {
...
@@ -256,7 +263,6 @@ int end_screen(SDL_Renderer* renderer) {
while
(
SDL_PollEvent
(
&
e
))
{
while
(
SDL_PollEvent
(
&
e
))
{
switch
(
e
.
type
)
{
switch
(
e
.
type
)
{
//fclose(my_file);
case
SDL_QUIT
:
case
SDL_QUIT
:
return
(
2
);
// Spiel wird geschlossen
return
(
2
);
// Spiel wird geschlossen
case
SDL_KEYDOWN
:
case
SDL_KEYDOWN
:
...
@@ -266,7 +272,7 @@ int end_screen(SDL_Renderer* renderer) {
...
@@ -266,7 +272,7 @@ int end_screen(SDL_Renderer* renderer) {
SDL_DestroyTexture
(
Message
);
SDL_DestroyTexture
(
Message
);
return
(
0
);
return
(
0
);
}
}
if
(
input
==
n
)
{
if
(
input
==
n
)
{
SDL_FreeSurface
(
surfaceMessage
);
SDL_FreeSurface
(
surfaceMessage
);
SDL_DestroyTexture
(
Message
);
SDL_DestroyTexture
(
Message
);
...
...
This diff is collapsed.
Click to expand it.
output.c
+
14
−
2
View file @
b82371bb
#include
"output.h"
#include
"output.h"
//V: renderer exists, enum row_type is correct and not renamed, correct y coordinates are transferred
//N: img corresponding to row_type is set to coordinates: x: 0 to 900 y: y to y+100 and displayed via renderer
int
paste_row
(
SDL_Renderer
*
renderer
,
int
y
,
enum
row
row_type
){
int
paste_row
(
SDL_Renderer
*
renderer
,
int
y
,
enum
row
row_type
){
SDL_Rect
destination
=
{
SDL_Rect
destination
=
{
...
@@ -60,7 +62,10 @@ int paste_row(SDL_Renderer* renderer, int y, enum row row_type){
...
@@ -60,7 +62,10 @@ int paste_row(SDL_Renderer* renderer, int y, enum row row_type){
return
0
;
return
0
;
}
}
//V renderer exists, correct x, y coordinates and width and height and speed and type of car is passed on
//N: car is set to correct variables and displayed in renderer with correct image and direction
int
paste_car
(
SDL_Renderer
*
renderer
,
int
x
,
int
y
,
int
width
,
int
height
,
int
speed
,
enum
vehicle
type
)
{
int
paste_car
(
SDL_Renderer
*
renderer
,
int
x
,
int
y
,
int
width
,
int
height
,
int
speed
,
enum
vehicle
type
)
{
//Prevents cars from being displayed at the wrong position
int
offset
=
20
;
int
offset
=
20
;
if
(
type
==
coin
){
if
(
type
==
coin
){
...
@@ -73,6 +78,8 @@ int paste_car(SDL_Renderer* renderer, int x, int y, int width, int height,int sp
...
@@ -73,6 +78,8 @@ int paste_car(SDL_Renderer* renderer, int x, int y, int width, int height,int sp
.
w
=
width
,
.
w
=
width
,
.
h
=
height
};
.
h
=
height
};
//correct "car" type is displayed
//could be implemented like above with switch case
if
(
type
==
boat
){
if
(
type
==
boat
){
if
(
SDL_RenderCopy
(
renderer
,
img_plank
,
NULL
,
&
rect
)
!=
0
)
{
if
(
SDL_RenderCopy
(
renderer
,
img_plank
,
NULL
,
&
rect
)
!=
0
)
{
SDL_Log
(
"Bild konnte nicht kopiert werden! SDL_Error Error: %s
\n
"
,
SDL_GetError
());
SDL_Log
(
"Bild konnte nicht kopiert werden! SDL_Error Error: %s
\n
"
,
SDL_GetError
());
...
@@ -123,7 +130,9 @@ int paste_car(SDL_Renderer* renderer, int x, int y, int width, int height,int sp
...
@@ -123,7 +130,9 @@ int paste_car(SDL_Renderer* renderer, int x, int y, int width, int height,int sp
return
(
0
);
return
(
0
);
}
}
//used to calculate width of score display
//V: score exists
//N: returns int corresponding to digits of score
int
func_digits
(
int
score
){
int
func_digits
(
int
score
){
if
(
score
==
0
)
if
(
score
==
0
)
return
(
1
);
return
(
1
);
...
@@ -135,6 +144,8 @@ int func_digits(int score){
...
@@ -135,6 +144,8 @@ int func_digits(int score){
return
(
i
);
return
(
i
);
}
}
//V: renderer exists
//N: current playerhighscore is displayed in white in the upper right corner
int
paste_score
(
SDL_Renderer
*
renderer
)
{
int
paste_score
(
SDL_Renderer
*
renderer
)
{
int
digits
=
func_digits
(
playerhighscore
);
int
digits
=
func_digits
(
playerhighscore
);
...
@@ -157,7 +168,8 @@ int paste_score (SDL_Renderer* renderer) {
...
@@ -157,7 +168,8 @@ int paste_score (SDL_Renderer* renderer) {
return
-
1
;
return
-
1
;
}
}
char
output
[
5
];
char
output
[
10
];
//max displayable score has 10 digits
sprintf
(
output
,
"%d"
,
playerhighscore
);
sprintf
(
output
,
"%d"
,
playerhighscore
);
SDL_Surface
*
surfaceMessage
=
SDL_Surface
*
surfaceMessage
=
TTF_RenderText_Blended_Wrapped
(
font
,
output
,
(
SDL_Color
)
{
225
,
225
,
225
,
255
},
4
*
200
);
TTF_RenderText_Blended_Wrapped
(
font
,
output
,
(
SDL_Color
)
{
225
,
225
,
225
,
255
},
4
*
200
);
...
...
This diff is collapsed.
Click to expand it.
title_screen.c
+
2
−
1
View file @
b82371bb
#include
"title_screen.h"
#include
"title_screen.h"
/*
/*
Vorbindung: Es existiert ein SDL_Renderer
Vorbindung: Es existiert ein SDL_Renderer
Nachbedingung:
Nachbedingung: /
Ergebnis: Es wird der Name des Spiels, die Steuerung ein Bild vom Charakter auf dem Bildschirm angezeigt
*/
*/
int
title_screen
(
SDL_Renderer
*
renderer
){
int
title_screen
(
SDL_Renderer
*
renderer
){
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment