|
Platform játék
3D-s megjelenítés, véletlenszerű pályagenerálás, jutalmazó játékélmény
|
#include "player.h"Makródefiníciók | |
| #define | playerSize (vector3D) {0.4, 0.9, 0.25} |
| #define | playerMaxVelocity (vector2D) {0.0045, 0.03} |
| #define | playerColors (colors) { (color) {229, 22, 22, 255}, (color) {200, 20, 20, 255}, (color) {168, 16, 16, 255} } |
| #define | playerXAcceleration 0.00005 |
Függvények | |
| void | setDie (bool newValue) |
| bool | isAlive () |
| void | updateText (int newPoints) |
| void | drawPointsText () |
| void | setPlayerStartingPosition (int x, int y) |
| void | setPoints (int newAmount) |
| int | getPoints () |
| void | movePlayer (unsigned char *keys, int deltaTime) |
| Mozgatja a játékost a billentyű lenyomások alapján. Az ütközés érzékelés elég érdekes, megnézni, hogyha megváltoztatná a játékos helyzetét, akkor illegális pozicióba lenne-e, ha igen akkor pont annyira változtatja meg, hogy épp ne legyen illegális állapotban. Részletek... | |
| void | shoot (mousePos mouse) |
| bool | slowTime (bool isEnabled) |
| renderObject | getPlayerRenderObject () |
| A rajzoláshoz kell, átadja a megfelelő adatokat. Részletek... | |
| void | getPlayerStats (vector2D *maxVelocity) |
Változók | |
| vector3D | playerPosition |
| vector2D | playerVelocity |
| int | directionOfMovement = 0 |
| bool | isJumping = false |
| bool | isFalling = true |
| bool | isDead = false |
| int | points |
| int | usedFrames = 0 |
| Itt kezeli az időlassítással kapcsolatos teendőket, levon a pontszámból. Részletek... | |
| #define playerColors (colors) { (color) {229, 22, 22, 255}, (color) {200, 20, 20, 255}, (color) {168, 16, 16, 255} } |
Hasonló elven 3 féle árnyalat, mint a pályaelemeknél is.
| #define playerMaxVelocity (vector2D) {0.0045, 0.03} |
A max sebességet [m/ms] sehogy se tudja túllépni, a program nagyságrendekkel nagyobbakat nem is kezelne jól.
| #define playerSize (vector3D) {0.4, 0.9, 0.25} |
A játékos méretét reprezentáló térvektor [m].
| #define playerXAcceleration 0.00005 |
Mintha lenne surlódás/légellenállás, sok értelme nincs, de kicsit lágyabb lesz tőle a mozgás.
| void drawPointsText | ( | ) |
| renderObject getPlayerRenderObject | ( | ) |
A rajzoláshoz kell, átadja a megfelelő adatokat.
| void getPlayerStats | ( | vector2D * | maxVelocity | ) |
| int getPoints | ( | ) |
| bool isAlive | ( | ) |
| void movePlayer | ( | unsigned char * | keys, |
| int | deltaTime | ||
| ) |
Mozgatja a játékost a billentyű lenyomások alapján. Az ütközés érzékelés elég érdekes, megnézni, hogyha megváltoztatná a játékos helyzetét, akkor illegális pozicióba lenne-e, ha igen akkor pont annyira változtatja meg, hogy épp ne legyen illegális állapotban.
| billentyűzet | |
| ms | eltelt idő |
| void setDie | ( | bool | newValue | ) |
| void setPlayerStartingPosition | ( | int | x, |
| int | y | ||
| ) |
| void setPoints | ( | int | newAmount | ) |
| void shoot | ( | mousePos | mouse | ) |
| bool slowTime | ( | bool | isEnabled | ) |
| void updateText | ( | int | newPoints | ) |
| int directionOfMovement = 0 |
A mozgás iránya, lehet -1, 0, +1.
| bool isDead = false |
| bool isFalling = true |
| bool isJumping = false |
| vector3D playerPosition |
A játékos helyvektora, 3d-s, mert nem z = 0 pozban van [m].
| vector2D playerVelocity |
A játékos sebesség [m/ms], a delta time miatt szükség van rá.
| int points |
Mennyi pontot gyűjtött eddig a játékos. Ez nőhet és gyökkenhet is, de mindig >= 0.
| int usedFrames = 0 |
Itt kezeli az időlassítással kapcsolatos teendőket, levon a pontszámból.