96 lines
2.0 KiB
C++
96 lines
2.0 KiB
C++
#include "../config.h"
|
|
|
|
#include "bonus.h"
|
|
#include <num/num.h>
|
|
#include <gint/rtc.h>
|
|
|
|
extern bopti_image_t img_emp_circ;
|
|
extern bopti_image_t img_life_bonus;
|
|
extern bopti_image_t img_sat_bonus;
|
|
|
|
Bonus::Bonus( int16_t _x, int16_t _y, uint8_t _id )
|
|
{
|
|
x = libnum::num( _x );
|
|
y = libnum::num( _y );
|
|
|
|
ID = _id;
|
|
|
|
if (ID==0)
|
|
{
|
|
width = img_life_bonus.width/2;
|
|
height = img_life_bonus.height/2;
|
|
speed = 0;
|
|
}
|
|
else if (ID==1)
|
|
{
|
|
width = img_sat_bonus.width/2;
|
|
height = img_sat_bonus.height/2;
|
|
speed = 0;
|
|
}
|
|
|
|
xmin = (int) x - width;
|
|
xmax = (int) x + width;
|
|
ymin = (int) y - height;
|
|
ymax = (int) y + height;
|
|
|
|
toberemoved = false;
|
|
|
|
currentframe = libnum::num(0);
|
|
|
|
accumulatedTime = 0.0f;
|
|
}
|
|
|
|
Bonus::~Bonus()
|
|
{
|
|
if (hasTrajectory)
|
|
pathToFollow->DeleteRegistry();
|
|
}
|
|
|
|
void Bonus::Update( float dt )
|
|
{
|
|
if (!hasTrajectory)
|
|
{
|
|
/*
|
|
libnum::num a = libnum::num( dt / 60000.0f );
|
|
x += a * libnum::num( dirx * speed );
|
|
y += a * libnum::num( diry * speed );
|
|
|
|
if (x<width || x>azrp_width-width) dirx=-1*dirx;
|
|
if (y<height || y>azrp_height-height) diry=-1*diry;
|
|
*/
|
|
|
|
}
|
|
else
|
|
{
|
|
pathToFollow->CalculatePosition( &accumulatedTime, dt, speed, true, &x, &y );
|
|
}
|
|
|
|
xmin = (int) x - width;
|
|
xmax = (int) x + width;
|
|
ymin = (int) y - height;
|
|
ymax = (int) y + height;
|
|
|
|
libnum::num a = libnum::num( dt / 150000.0f );
|
|
currentframe += a;
|
|
|
|
if (currentframe >7 ) currentframe = libnum::num(0);
|
|
}
|
|
|
|
void Bonus::Render( void )
|
|
{
|
|
|
|
uint8_t dximg = (int) currentframe * 15;
|
|
uint8_t sz = (int) currentframe;
|
|
|
|
azrp_subimage_p8( (int) x-sz, (int) y-sz, &img_emp_circ, dximg+7-sz, 7-sz, sz*2+1, sz*2+1, DIMAGE_NONE );
|
|
|
|
if (ID==0)
|
|
{
|
|
azrp_image_p8_effect(xmin, ymin, &img_life_bonus, DIMAGE_NONE);
|
|
}
|
|
else if (ID==1)
|
|
{
|
|
azrp_image_p8_effect(xmin, ymin, &img_sat_bonus, DIMAGE_NONE);
|
|
}
|
|
}
|