-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgamescreen.c
68 lines (53 loc) · 1.76 KB
/
gamescreen.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "gamescreen.h"
#include <tari/drawing.h>
#include <tari/log.h>
#include <tari/input.h>
#include <tari/system.h>
#include "physics.h"
#include "collision.h"
#include "movement.h"
#include "stagelogic.h"
#include "animation.h"
#include "drawing.h"
#include "loadgame.h"
#include "titlescreen.h"
#include "roundscreen.h"
static WorldData gWorldData;
static CharacterData gCharacterData;
static void drawGameScreen() {
draw(&gWorldData, &gCharacterData);
}
static void updateGameScreen() {
updateSystem();
updateInput();
checkCollisionsPlatforms(&gWorldData, &gCharacterData);
checkCollisionsEnemies(&gWorldData, &gCharacterData);
checkJumpingCharacter(&gWorldData, &gCharacterData);
checkRunningCharacter(&gWorldData, &gCharacterData);
checkMovementEnemies(&gWorldData, &gCharacterData);
handlePhysicsForCharacter(&gWorldData, &gCharacterData);
handlePhysicsForEnemies(&gWorldData, &gCharacterData);
checkGameOver(&gWorldData, &gCharacterData);
checkExit(&gWorldData, &gCharacterData);
handleScreenTilting(&gWorldData, &gCharacterData);
GameReturnType currentGameReturnStatus = checkGameAbort(&gWorldData, &gCharacterData);
debugInteger(currentGameReturnStatus);
if (currentGameReturnStatus == RETURN_LOSS || currentGameReturnStatus == RETURN_TO_MENU) {
setNewScreen(&TitleScreen);
}
else if (currentGameReturnStatus == RETURN_WON) {
setNewScreen(&RoundScreen);
}
handleCharacterAnimation(&gWorldData, &gCharacterData);
handleEnemyAnimation(&gWorldData, &gCharacterData);
}
static void loadGameScreen() {
memset(&gWorldData, 0, sizeof gWorldData);
memset(&gCharacterData, 0, sizeof gCharacterData);
loadGame(&gWorldData, &gCharacterData);
}
Screen GameScreen = {
.mLoad = loadGameScreen,
.mUpdate = updateGameScreen,
.mDraw = drawGameScreen,
};