This commit is contained in:
parent
0e10ca164c
commit
da0eac7a3d
12 changed files with 231 additions and 59 deletions
|
@ -62,6 +62,13 @@
|
|||
---------------------------------------------------------------------- */
|
||||
void CScrollyBackground::init()
|
||||
{
|
||||
m_sprites=new ("Scrolly Background sprites") SpriteBank;
|
||||
m_sprites->load(FRONTEND_FRONTEND_SPR);
|
||||
m_xOff=m_yOff=0;
|
||||
|
||||
setSpeed(DEFAULT_X_SPEED,DEFAULT_Y_SPEED);
|
||||
setSpeedScale(DEFAULT_SPEED_SCALE);
|
||||
setOt(DEFAULT_OT);
|
||||
}
|
||||
|
||||
|
||||
|
@ -73,6 +80,7 @@ void CScrollyBackground::init()
|
|||
---------------------------------------------------------------------- */
|
||||
void CScrollyBackground::shutdown()
|
||||
{
|
||||
m_sprites->dump(); delete m_sprites; m_sprites=NULL;
|
||||
}
|
||||
|
||||
|
||||
|
@ -84,6 +92,27 @@ void CScrollyBackground::shutdown()
|
|||
---------------------------------------------------------------------- */
|
||||
void CScrollyBackground::render()
|
||||
{
|
||||
POLY_FT4 *ft4;
|
||||
sFrameHdr *fh;
|
||||
int x,y,w,h;
|
||||
|
||||
fh=m_sprites->getFrameHeader(FRM__BG1);
|
||||
w=fh->W;
|
||||
h=fh->H;
|
||||
y=(m_yOff>>m_speedScale)-h;
|
||||
do
|
||||
{
|
||||
x=(m_xOff>>m_speedScale)-w;
|
||||
do
|
||||
{
|
||||
ft4=m_sprites->printFT4(fh,x,y,0,0,m_ot);
|
||||
setSemiTrans(ft4,true);
|
||||
x+=w;
|
||||
}
|
||||
while(x<512);
|
||||
y+=h;
|
||||
}
|
||||
while(y<256);
|
||||
}
|
||||
|
||||
|
||||
|
@ -95,6 +124,12 @@ void CScrollyBackground::render()
|
|||
---------------------------------------------------------------------- */
|
||||
void CScrollyBackground::think(int _frames)
|
||||
{
|
||||
sFrameHdr *fh;
|
||||
|
||||
fh=m_sprites->getFrameHeader(FRM__BG1);
|
||||
|
||||
m_xOff=(m_xOff+(_frames*m_xSpeed))%(fh->W<<m_speedScale);
|
||||
m_yOff=(m_yOff+(_frames*m_ySpeed))%(fh->H<<m_speedScale);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
Author: PKG
|
||||
Created:
|
||||
Project: Spongebob
|
||||
Purpose:
|
||||
Purpose: Scrolling tiled background class
|
||||
|
||||
Copyright (c) 2000 Climax Development Ltd
|
||||
|
||||
|
@ -37,9 +37,25 @@ public:
|
|||
void render();
|
||||
void think(int _frames);
|
||||
|
||||
void setSpeed(int _xSpeed,int _ySpeed) {m_xSpeed=_xSpeed;m_ySpeed=_ySpeed;}
|
||||
void setSpeedScale(int _speedScale) {m_speedScale=_speedScale;}
|
||||
void setOt(int _ot) {m_ot=_ot;}
|
||||
|
||||
|
||||
private:
|
||||
enum
|
||||
{
|
||||
DEFAULT_X_SPEED=-2,
|
||||
DEFAULT_Y_SPEED=-3,
|
||||
DEFAULT_SPEED_SCALE=2,
|
||||
DEFAULT_OT=1000,
|
||||
};
|
||||
|
||||
class SpriteBank *m_sprites;
|
||||
int m_xOff,m_yOff;
|
||||
int m_xSpeed,m_ySpeed;
|
||||
int m_speedScale;
|
||||
int m_ot;
|
||||
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue