Primer commit

This commit is contained in:
Raimon Zamora
2014-12-30 22:46:46 +01:00
commit 4a359c46f5
33 changed files with 2778 additions and 0 deletions

68
bola.cpp Executable file
View File

@@ -0,0 +1,68 @@
#include "bola.h"
#include "jgame.h"
Bola::Bola( JD8_Surface gfx, Info* info, Prota* sam ) : Sprite( gfx ) {
this->info = info;
this->sam = sam;
this->entitat = (Entitat*)malloc( sizeof( Entitat ) );
// Frames
this->entitat->num_frames = 2;
this->entitat->frames = (Frame*)malloc( this->entitat->num_frames * sizeof( Frame ) );
this->entitat->frames[0].w = 15;
this->entitat->frames[0].h = 15;
this->entitat->frames[0].x = 30;
this->entitat->frames[0].y = 155;
this->entitat->frames[1].w = 15;
this->entitat->frames[1].h = 15;
this->entitat->frames[1].x = 45;
this->entitat->frames[1].y = 155;
// Animacions
this->entitat->num_animacions = 1;
this->entitat->animacions = (Animacio*)malloc( this->entitat->num_animacions * sizeof( Animacio ) );
this->entitat->animacions[0].num_frames = 2;
this->entitat->animacions[0].frames = (Uint8*)malloc( 2 );
this->entitat->animacions[0].frames[0] = 0;
this->entitat->animacions[0].frames[1] = 1;
this->cur_frame = 0;
this->o = 0;
this->cycles_per_frame = 4;
this->x = 20;
this->y = 100;
this->contador = 0;
}
void Bola::draw() {
if( this->contador == 0 ) Sprite::draw();
}
void Bola::update() {
if( this->contador == 0 ) {
// Augmentem la x
this->x++;
if( this->x == 280 ) this->contador = 200;
// Augmentem el frame
if( JG_GetCycleCounter() % this->cycles_per_frame == 0 ) {
this->cur_frame++;
if( this->cur_frame == this->entitat->animacions[this->o].num_frames ) this->cur_frame = 0;
}
// Comprovem si ha tocat a Sam
if( this->x > ( this->sam->x - 7 ) && this->x < ( this->sam->x + 7 ) && this->y > ( this->sam->y - 7 ) && this->y < ( this->sam->y + 7 ) ) {
this->contador = 200;
this->info->vida--;
if( this->info->vida == 0 ) this->sam->o = 5;
}
} else {
this->contador--;
if( this->contador == 0 ) this->x = 20;
}
}