Platform játék
3D-s megjelenítés, véletlenszerű pályagenerálás, jutalmazó játékélmény
player.c fájlreferencia
#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...
 

Makródefiníciók dokumentációja

◆ playerColors

#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.

◆ playerMaxVelocity

#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.

◆ playerSize

#define playerSize   (vector3D) {0.4, 0.9, 0.25}

A játékos méretét reprezentáló térvektor [m].

◆ playerXAcceleration

#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.

Függvények dokumentációja

◆ drawPointsText()

void drawPointsText ( )

◆ getPlayerRenderObject()

renderObject getPlayerRenderObject ( )

A rajzoláshoz kell, átadja a megfelelő adatokat.

◆ getPlayerStats()

void getPlayerStats ( vector2D *  maxVelocity)

◆ getPoints()

int getPoints ( )

◆ isAlive()

bool isAlive ( )

◆ movePlayer()

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.

Paraméterek
billentyűzet
mseltelt idő

◆ setDie()

void setDie ( bool  newValue)

◆ setPlayerStartingPosition()

void setPlayerStartingPosition ( int  x,
int  y 
)

◆ setPoints()

void setPoints ( int  newAmount)

◆ shoot()

void shoot ( mousePos  mouse)

◆ slowTime()

bool slowTime ( bool  isEnabled)

◆ updateText()

void updateText ( int  newPoints)

Változók dokumentációja

◆ directionOfMovement

int directionOfMovement = 0

A mozgás iránya, lehet -1, 0, +1.

◆ isDead

bool isDead = false

◆ isFalling

bool isFalling = true

◆ isJumping

bool isJumping = false

◆ playerPosition

vector3D playerPosition

A játékos helyvektora, 3d-s, mert nem z = 0 pozban van [m].

◆ playerVelocity

vector2D playerVelocity

A játékos sebesség [m/ms], a delta time miatt szükség van rá.

◆ points

int points

Mennyi pontot gyűjtött eddig a játékos. Ez nőhet és gyökkenhet is, de mindig >= 0.

◆ usedFrames

int usedFrames = 0

Itt kezeli az időlassítással kapcsolatos teendőket, levon a pontszámból.