My new NXT game- After Dark, in grayscale
Re: My new game- After Dark
and please where's the code?
Re: My new game- After Dark
Umm.... I can probably give you the code later today.
BE WARNED: The code is verrrrrrrrrrrrrrryyyyyyyyyy messy.
BE WARNED: The code is verrrrrrrrrrrrrrryyyyyyyyyy messy.
Thanks, and have a nice day,
nxtboy III
programnxt.com
nxtboy III
programnxt.com
Re: My new NXT game- After Dark, in grayscale
maybe you wish to polish it up before publishing it (e.g. exchanging gibberish by expressive keywords and inserting correct white space / tabs, and MAYBE write some comments...?)
Re: My new NXT game- After Dark, in grayscale
I'll just post the .rics and the executable.
Here ya go.
Just drag all the files to the NXT.
For best grayscale performance, don't use the NXT Screen utility in Bricxcc while playing the game.
Here ya go.
Just drag all the files to the NXT.
For best grayscale performance, don't use the NXT Screen utility in Bricxcc while playing the game.
- Attachments
-
- After Dark.zip
- My game, After Dark
- (17.43 KiB) Downloaded 380 times
Thanks, and have a nice day,
nxtboy III
programnxt.com
nxtboy III
programnxt.com
Re: My new NXT game- After Dark, in grayscale
So what do you think of it?
Thanks, and have a nice day,
nxtboy III
programnxt.com
nxtboy III
programnxt.com
Re: My new NXT game- After Dark, in grayscale
the code is what I was curious of
(BTW why didn't you delete your double post?)
(BTW why didn't you delete your double post?)
Re: My new NXT game- After Dark, in grayscale
But what do you think of the game?
Do you like the grayscale?
Do you like the grayscale?
Thanks, and have a nice day,
nxtboy III
programnxt.com
nxtboy III
programnxt.com
Re: My new NXT game- After Dark, in grayscale
yes, it's really remarkable!
Re: My new NXT game- After Dark, in grayscale
Well since you already have all the .rics, here's the code:
Code: Select all
int mapx,mapy;
float fmapx,fmapy;
int xadd,yadd;
int xadd2,yadd2;
byte map[25][5];
byte width=25;
byte height=5;
int x,y;
int paddx,paddy;
int xpp,ypp;
int xd,yd;
bool executeMe;
int xdd,ydd;
int xdd2,ydd2;
bool bAddP;
byte NUMOFENEMIES=6;
byte weapon_in_use;
bool attack;
bool DrawParticles;
float particlex[10];
float particley[10];
float particleax[10];
float particleay[10];
int particlepower;
int particleangle;
int particle_timer;
bool canattack;
bool deademy;
byte particle_count;
byte gib_var[1];
unsigned long t0z;
int life;
byte wpn_width[8];
string weapon_filename;
bool paused,shop;
int sely;
byte wpn_cost[8];
int money=300;
int bulletx[6];
int bullety[6];
bool active_bullets[6];
int befbulletx[6];
int bul;
int bulletspeed;
bool bDisplayWhiteOut;
int zomspeed=2;
int zomlife=10;
DrawGraphicType plyr;
struct enemy
{
int x;
int y;
char life;
byte var1;
bool zom_move;
byte zom_move_timer;
byte var2;
};
enemy emy[NUMOFENEMIES];
void EnemyInit(byte index, byte enemytype, byte enmapx, byte enmapy, char life)
{
// emy[index].enemytype=enemytype;
// emy[index].mapx=enmapx;
// emy[index].mapy=enmapy;
emy[index].life=life;
emy[index].x=enmapx*16;
emy[index].y=enmapy*16;
// emy[index].fmapx=enmapx;
// emy[index].fmapy=enmapy;
// emy[index].xpp=enmapx*16;
// emy[index].ypp=enmapy*16;
}
#define bLeft ButtonPressed(BTNLEFT,0)
#define bRight ButtonPressed(BTNRIGHT,0)
#define bCenter ButtonPressed(BTNCENTER,0)
#define bExit ButtonPressed(BTNEXIT,0)
#define RIGHT 0
#define WALKRIGHT 27
#define LEFT 54
#define WALKLEFT 81
#define GRASS 0
#define QUESTION 1
#define SKELIBOTTOM 2
#define SKELITOP 5
#define GRAVESTONE 73
#define DARK 72
#define AIR 74
#define GOOMBATILE 60
#define TORCH 62
#define FIRE 132
#define STONE 4
#define TNT 3
#define ZOMBIE 0
#define SWORD 0
#define LONGSWORD 1
#define STAFF 2
#define PISTOL 3
#define MACHINEGUN 4
void PlaceSkeletonStatue(byte _x, byte _y)
{
map[_x][_y]=SKELIBOTTOM;
map[_x][_y+1]=SKELITOP;
}
task tiles()
{
int cen,den;
byte var[1];
DrawGraphicType gargs;
DrawGraphicType enemygraphic;
ArrayInit(gargs.Variables,0,35);
ArrayInit(enemygraphic.Variables,0,2);
ArrayInit(plyr.Variables,0,2);
plyr.Filename="man.ric";
unsigned long t0;
byte mapt[35]; //7x5 + setting
byte yt;
byte v;
byte animation_loop;
string enemyfilename;
byte temp_enemy_var[1];
byte weapon_var[2];
char weapon_x_add;
bool canattack;
bool canattack2;
bool pressed;
bool shoot;
unsigned long endtime;
byte menuvar[1];
byte healthvar[1];
string fn;
enemygraphic.Filename="emy_zombie.ric";
enemy tdemy;
while(1)
{
xadd2=xadd;
yadd2=yadd;
ydd2=ydd;
xdd2=xdd;
cen=floor(xadd2/-16)+7;
den=floor(yadd2/-16)+5;
yt=0;
if(!paused)
{
for(int cc=floor(xadd2/-16); cc < cen; cc++)
{
for(int dd=floor(yadd2/-16); dd < den; dd++)
{
v=map[cc][dd];
/* if(animation_loop == 1)
{
if(v >= 132)
{
if(frac(v/2.0) == 0) //If v is even
{
v++;
}
else //If v is odd
{
v--;
}
map[cc][dd]=v;
}
else if(v >= 60)
{
if(v <= 71)
{
if(frac(v/2.0) == 0) //If v is even
{
v++;
}
else //If v is odd
{
v--;
}
map[cc][dd]=v;
}
}
} */
mapt[yt]=v;
yt++;
}
animation_loop++;
if(animation_loop == 3)
animation_loop=0;
}
}
if(bRight)
{
if(plyr.Variables[1] == RIGHT)
plyr.Variables[1]=WALKRIGHT;
else
plyr.Variables[1]=RIGHT;
weapon_x_add=15;
weapon_var[1]=0;
}
else if(bLeft)
{
if(plyr.Variables[1] == LEFT)
plyr.Variables[1]=WALKLEFT;
else
plyr.Variables[1]=LEFT;
weapon_x_add=(wpn_width[weapon_in_use]-1)*-1;
weapon_var[1]=8;
}
else
{
if(plyr.Variables[1] == WALKLEFT)
plyr.Variables[1]=LEFT;
else if(plyr.Variables[1] == WALKRIGHT)
plyr.Variables[1]=RIGHT;
}
attack=0;
if(weapon_x_add == 18)
weapon_x_add=15;
else if(weapon_x_add == -10)
weapon_x_add=-7;
if(SENSOR_1)
{
pressed=1;
if(weapon_in_use == MACHINEGUN)
{
shoot=1;
}
}
if(weapon_in_use == PISTOL)
{
if(canattack)
{
canattack=0;
shoot=1;
}
}
else if(canattack)
{
canattack=0;
attack=1;
if(plyr.Variables[1] == RIGHT || plyr.Variables[1] == WALKRIGHT)
weapon_x_add=18;
else if(plyr.Variables[1] == LEFT || plyr.Variables[1] == WALKLEFT)
weapon_x_add=-10;
}
if(shoot)
{
shoot=0;
active_bullets[bul]=1;
bulletx[bul]=x+16+wpn_width[weapon_in_use];
befbulletx[bul]=x+16+wpn_width[weapon_in_use];
if(plyr.Variables[1] == RIGHT || plyr.Variables[1] == WALKRIGHT)
{
bulletx[bul]=x+16+wpn_width[weapon_in_use];
befbulletx[bul]=x+16+wpn_width[weapon_in_use];
}
else if(plyr.Variables[1] == LEFT || plyr.Variables[1] == WALKLEFT)
{
bulletx[bul]=x-wpn_width[weapon_in_use];
befbulletx[bul]=x-wpn_width[weapon_in_use];
}
bullety[bul]=y+11+Random(3);
if(weapon_in_use == MACHINEGUN)
{
if(bul < 6)
bul++;
else
bul=0;
}
if(weapon_in_use == MACHINEGUN)
{
if(plyr.Variables[1] == RIGHT || plyr.Variables[1] == WALKRIGHT)
bulletspeed=6;
else if(plyr.Variables[1] == LEFT || plyr.Variables[1] == WALKLEFT)
bulletspeed=-6;
}
else
{
if(plyr.Variables[1] == RIGHT || plyr.Variables[1] == WALKRIGHT)
bulletspeed=15;
else if(plyr.Variables[1] == LEFT || plyr.Variables[1] == WALKLEFT)
bulletspeed=-15;
}
}
Wait(17-(CurrentTick()-t0));
SetDisplayFlags( DISPLAY_REFRESH_DISABLED );
plyr.Location.X=x;
plyr.Location.Y=y;
gargs.Filename="pic1.ric";
gargs.Variables=mapt;
gargs.Location.X=xdd2;
gargs.Location.Y=ydd2;
SysDrawGraphic(gargs);
for(int c=0; c < NUMOFENEMIES; c++)
{
if(emy[c].life > 0)
{
if(emy[c].x <= 96 && emy[c] >= -15)
{
tdemy=emy[c];
/* switch(tdemy.enemytype)
{
case ZOMBIE:
enemygraphic.Filename="emy_zombie.ric";
break;
}*/
if(animation_loop == 1)
{
if(tdemy.var2 == 0 || tdemy.var2 == 48)
tdemy.var2+=24;
else
tdemy.var2-=24;
}
enemygraphic.Variables[1]=tdemy.var2;
enemygraphic.Variables[0]=tdemy.var1;
enemygraphic.Location.X=tdemy.x;
enemygraphic.Location.Y=tdemy.y;
SysDrawGraphic(enemygraphic);
tdemy.var1+=16;
emy[c]=tdemy;
}
}
}
plyr.Variables[0]=0;
SysDrawGraphic(plyr);
weapon_var[0]=0;
GraphicOutEx(x+weapon_x_add,y+10,weapon_filename,weapon_var);
if(DrawParticles)
{
particle_timer++;
if(!deademy)
{
if(particle_timer >= 10)
{
DrawParticles=0;
}
}
else if(particle_timer >= 20)
{
DrawParticles=0;
deademy=0;
}
for(int c=0; c < particle_count; c++)
{
/* particlex[c]+=particleax[c];
particley[c]+=particleay[c];
particlepower--;
if(particlepower <= 0)
{
particleay[c]-=0.2;
}
particley[c]-=0.2;*/
if(c == 13)
{
fn="zomhead.ric";
}
else
fn="gib.ric";
GraphicOutEx(particlex[c],particley[c],fn,gib_var);
}
}
if(paused)
{
menuvar[0]=0;
GraphicOutEx(16,0,"menu_back.ric",menuvar);
if(!shop)
{
TextOut(25,LCD_LINE1,"Unpause");
TextOut(25,LCD_LINE2,"Shop");
}
else
{
TextOut(25,LCD_LINE1,"Exit Shop");
TextOut(25,LCD_LINE2,"Long Sword");
TextOut(25,LCD_LINE3,"Staff");
TextOut(25,LCD_LINE4,"Pistol");
TextOut(25,LCD_LINE5,"Mach-Gun");
TextOut(25,LCD_LINE8,StrCat("Cost$",NumToStr(wpn_cost[sely/-8+7])," $", NumToStr(money)));
}
RectOut(23,sely,54,8,DRAW_OPT_FILL_SHAPE | DRAW_OPT_LOGICAL_XOR);
}
for(int c=0; c < 6; c++)
{
if(active_bullets[c])
{
LineOut(bulletx[c],bullety[c],bulletx[c]+3,bullety[c],DRAW_OPT_INVERT);
}
}
/* if(bDisplayWhiteOut) //Display "White out" effect when bDisplayWhiteOut == true, which is when the character is hurt
{
bDisplayWhiteOut=false;
ClearScreen();
}*/
healthvar[0]=0; //Sets up variable for healthvar so it can be grayscale
GraphicOutEx(0,62,"health-back.ric",healthvar); //Draw the health bar
RectOut(0,62,life,1,DRAW_OPT_LOGICAL_XOR);
SetDisplayFlags( DISPLAY_ON | DISPLAY_REFRESH );
Wait(17);
if(pressed)
{
if(!SENSOR_1)
{
pressed=0;
canattack=1;
}
}
SetDisplayFlags( DISPLAY_REFRESH_DISABLED );
// ClearScreen();
gargs.Filename="pic2.ric";
gargs.Location.X=xdd2;
gargs.Location.Y=ydd2;
SysDrawGraphic(gargs);
for(int c=0; c < NUMOFENEMIES; c++)
{
if(emy[c].life > 0)
{
if(emy[c].x <= 96 && emy[c] >= -15)
{
tdemy=emy[c];
/* switch(tdemy.enemytype)
{
case ZOMBIE:
enemygraphic.Filename="emy_zombie.ric";
break;
}*/
if(animation_loop == 1)
{
if(tdemy.var2 == 0 || tdemy.var2 == 48)
tdemy.var2+=24;
else
tdemy.var2-=24;
}
enemygraphic.Variables[1]=tdemy.var2;
enemygraphic.Variables[0]=tdemy.var1;
enemygraphic.Location.X=tdemy.x;
enemygraphic.Location.Y=tdemy.y;
SysDrawGraphic(enemygraphic);
tdemy.var1+=16;
emy[c]=tdemy;
}
}
}
plyr.Variables[0]=16;
SysDrawGraphic(plyr);
weapon_var[0]=wpn_width[weapon_in_use];
GraphicOutEx(x+weapon_x_add,y+10,weapon_filename,weapon_var);
if(DrawParticles)
{
for(int c=0; c < particle_count; c++)
{
particlex[c]+=particleax[c];
particley[c]+=particleay[c];
particlepower--;
if(particlepower <= 0)
{
particleay[c]-=0.2;
}
particley[c]-=0.2;
if(c == 13)
{
fn="zomhead.ric";
}
else
fn="gib.ric";
GraphicOutEx(particlex[c],particley[c],fn,gib_var);
}
}
if(paused)
{
menuvar[0]=68;
GraphicOutEx(16,0,"menu_back.ric",menuvar);
if(!shop)
{
TextOut(25,LCD_LINE1,"Unpause");
TextOut(25,LCD_LINE2,"Shop");
}
else
{
TextOut(25,LCD_LINE1,"Exit Shop");
TextOut(25,LCD_LINE2,"Long Sword");
TextOut(25,LCD_LINE3,"Staff");
TextOut(25,LCD_LINE4,"Pistol");
TextOut(25,LCD_LINE5,"Mach-Gun");
TextOut(25,LCD_LINE8,StrCat("Cost$",NumToStr(wpn_cost[sely/-8+7])," $", NumToStr(money)));
}
RectOut(23,sely,54,8,DRAW_OPT_FILL_SHAPE | DRAW_OPT_LOGICAL_XOR);
}
for(int c=0; c < 6; c++)
{
if(active_bullets[c])
{
LineOut(bulletx[c],bullety[c],bulletx[c]+3,bullety[c],DRAW_OPT_INVERT);
}
}
healthvar[0]=40;
GraphicOutEx(0,62,"health-back.ric",healthvar);
RectOut(0,62,life,1,DRAW_OPT_LOGICAL_XOR); //Draw the health bar
SetDisplayFlags( DISPLAY_ON | DISPLAY_REFRESH );
Wait(17);
if(SENSOR_1)
{
pressed=1;
}
SetDisplayFlags( DISPLAY_REFRESH_DISABLED );
// ClearScreen();
gargs.Filename="pic3.ric";
gargs.Location.X=xdd2;
gargs.Location.Y=ydd2;
SysDrawGraphic(gargs);
for(int c=0; c < NUMOFENEMIES; c++)
{
if(emy[c].life > 0)
{
if(emy[c].x <= 96 && emy[c] >= -15)
{
tdemy=emy[c];
/* switch(tdemy.enemytype)
{
case ZOMBIE:
enemygraphic.Filename="emy_zombie.ric";
break;
}*/
if(animation_loop == 1)
{
if(tdemy.var2 == 0 || tdemy.var2 == 48)
tdemy.var2+=24;
else
tdemy.var2-=24;
}
enemygraphic.Variables[1]=tdemy.var2;
enemygraphic.Variables[0]=tdemy.var1;
enemygraphic.Location.X=tdemy.x;
enemygraphic.Location.Y=tdemy.y;
SysDrawGraphic(enemygraphic);
tdemy.var1=0;
emy[c]=tdemy;
}
}
}
plyr.Variables[0]=32;
SysDrawGraphic(plyr);
weapon_var[0]=wpn_width[weapon_in_use]*2;
GraphicOutEx(x+weapon_x_add,y+10,weapon_filename,weapon_var);
if(DrawParticles)
{
for(int c=0; c < particle_count; c++)
{
particlex[c]+=particleax[c];
particley[c]+=particleay[c];
particlepower--;
if(particlepower <= 0)
{
particleay[c]-=0.2;
}
particley[c]-=0.2;
if(c == 13)
{
fn="zomhead.ric";
}
else
fn="gib.ric";
GraphicOutEx(particlex[c],particley[c],fn,gib_var);
}
}
if(paused)
{
menuvar[0]=136;
GraphicOutEx(16,0,"menu_back.ric",menuvar);
if(!shop)
{
TextOut(25,LCD_LINE1,"Unpause");
TextOut(25,LCD_LINE2,"Shop");
}
else
{
TextOut(25,LCD_LINE1,"Exit Shop");
TextOut(25,LCD_LINE2,"Long Sword");
TextOut(25,LCD_LINE3,"Staff");
TextOut(25,LCD_LINE4,"Pistol");
TextOut(25,LCD_LINE5,"Mach-Gun");
TextOut(25,LCD_LINE8,StrCat("Cost$",NumToStr(wpn_cost[sely/-8+7])," $", NumToStr(money)));
}
RectOut(23,sely,54,8,DRAW_OPT_FILL_SHAPE | DRAW_OPT_LOGICAL_XOR);
}
for(int c=0; c < 6; c++)
{
if(active_bullets[c])
{
LineOut(bulletx[c],bullety[c],bulletx[c]+3,bullety[c],DRAW_OPT_INVERT);
}
}
healthvar[0]=80;
GraphicOutEx(0,62,"health-back.ric",healthvar);
RectOut(0,62,life,1,DRAW_OPT_LOGICAL_XOR); //Draw the health bar
SetDisplayFlags( DISPLAY_ON | DISPLAY_REFRESH );
t0=CurrentTick();
if(weapon_in_use != PISTOL)
{
if(attack)
{
if(!SENSOR_1)
canattack2=1;
else
canattack2=0;
}
else
canattack2=1;
}
/* if(pressed)
{
pressed=0;
if(!SENSOR_1)
{
canattack=1;
}
else
canattack=0;
}*/
}
}
task engine()
{
Wait(300);
char starthitcheck, endhitcheck;
enemy temy;
while(1)
{
paddx=fmapx == floor(fmapx)?0:1;
// mapy=floor(fmapy);
paddy=fmapy == floor(fmapy)?0:1;
//startleft
if(bLeft)
{
executeMe=false;
if(map[mapx-1][mapy] >= DARK)
{
if(map[mapx-1][mapy+paddy] >= DARK)
{
executeMe=true;
}
}
else if(fmapx > floor(fmapx))
executeMe=true;
if(executeMe)
{
xpp-=4;
fmapx=xpp/16;
if(xadd == 0)
{
xd=0;
x-=4;
}
else if(x == 32)
{
xd+=4;
}
else if(x > 32)
{
xd=0;
x-=4;
}
}
}
//finishleft
mapx=floor(fmapx);
//startright
if(bRight)
{
executeMe=false;
if(map[mapx+1][mapy] >= DARK)
{
if(map[mapx+1][mapy+paddy] >= DARK)
{
executeMe=true;
}
}
if(executeMe)
{
xpp+=4;
fmapx=xpp/16;
if(xadd/-16.0 < width-7 && x == 32)
{
xd-=4;
}
else
{
xd=0;
x+=4;
}
}
}
//finishright
mapx=floor(fmapx);
paddx=fmapx == floor(fmapx)?0:1;
mapx=floor(fmapx);
xadd+=xd;
yadd+=yd;
xdd+=xd;
ydd+=yd;
if(frac(xdd/-16.0) == 0)
{
xdd=0;
}
else if(xdd > 0)
{
xdd-=16;
}
if(frac(ydd/-16.0) == 0)
{
ydd=0;
}
else if(ydd > 0)
{
ydd-=16;
}
if(bCenter)
{
until(!bCenter);
paused=true;
sely=LCD_LINE1;
until(bCenter && sely == LCD_LINE1 && !shop)
{
if(bLeft && sely != LCD_LINE1)
{
until(!bLeft);
sely+=8;
}
if(bRight)
{
until(!bRight);
sely-=8;
}
if(bCenter)
{
until(!bCenter);
if(!shop)
{
if(sely == LCD_LINE2)
{
shop=1;
}
if(sely == LCD_LINE1)
{
goto outofpause;
}
}
else
{
if(sely == LCD_LINE1)
{
shop=0;
}
if(sely <= LCD_LINE2)
{
if(money >= wpn_cost[sely/-8+7])
{
weapon_in_use=sely/-8+7;
money-=wpn_cost[sely/-8+7];
PlayToneEx(600,200,1,0);
Wait(200);
PlayToneEx(800,200,1,0);
Wait(200);
switch(weapon_in_use)
{
case SWORD:
weapon_filename="wpn_sword.ric";
break;
case LONGSWORD:
weapon_filename="wpn_lngsword.ric";
break;
case STAFF:
weapon_filename="wpn_staff.ric";
break;
case PISTOL:
weapon_filename="wpn_pistol.ric";
break;
case MACHINEGUN:
weapon_filename="wpn_mgun.ric";
break;
}
}
else
{
PlayToneEx(600,200,1,0);
Wait(200);
PlayToneEx(400,200,1,0);
Wait(200);
}
}
}
}
}
outofpause:
PlayToneEx(600,200,1,0);
Wait(200);
PlayToneEx(400,200,1,0);
Wait(200);
until(!bCenter);
paused=false;
}
t0z=CurrentTick();
for(int c=0; c < 6; c++)
{
if(active_bullets[c])
{
bulletx[c]+=bulletspeed;
if(bulletspeed >= 1)
{
if(bulletx[c] >= 120)
{
active_bullets[c]=0;
}
}
else
{
if(bulletx[c] <= -40)
{
active_bullets[c]=0;
}
}
}
}
for(int c=0; c < NUMOFENEMIES; c++)
{
if(emy[c].life > 0)
{
temy=emy[c];
temy.x+=xd;
temy.y+=yd;
executeMe=false;
/* if(map[temy.mapx-1][temy.mapy] >= DARK)
{
/* if(map[temy.mapx-1][temy.mapy+temy.paddy] >= DARK)
{*/
// executeMe=true;
/* for(int f=0; f < NUMOFENEMIES; f++)
{
if(f != c)
{
if((((temy.x + 16) >= emy[f].x) && (temy.x <= (emy[f].x + 16))))
{
executeMe=false;
goto eol;
}
}
}
eol:*/
//}
//}*/
// else if(temy.fmapx > floor(temy.fmapx))
// executeMe=true;
// if(executeMe)
// {
// temy.xpp-=2;
// temy.fmapx=temy.xpp/16.0;
temy.zom_move_timer++;
if(temy.zom_move_timer >= 4)
{
temy.zom_move_timer=0;
if(Random(2) == 0)
temy.zom_move=1;
else
temy.zom_move=0;
}
if(temy.zom_move)
{
if(temy.x > x+16)
{
temy.x-=zomspeed;
if(temy.var2 == 48 || temy.var2 == 72)
temy.var2=0;
}
else if(temy.x < x)
{
temy.x+=zomspeed;
if(temy.var2 == 0 || temy.var2 == 24)
temy.var2=48;
}
}
// }
// temy.mapx=floor(temy.fmapx);
//temy.paddx=temy.fmapx == floor(temy.fmapx)?0:1;
if(attack)
{
if(plyr.Variables[1] == RIGHT || plyr.Variables[1] == WALKRIGHT)
{
endhitcheck=wpn_width[weapon_in_use]-1;
starthitcheck=0;
}
if(plyr.Variables[1] == LEFT || plyr.Variables[1] == WALKLEFT)
{
endhitcheck=0;
starthitcheck=(wpn_width[weapon_in_use]-1)*-1;
}
}
else
{
endhitcheck=0;
starthitcheck=0;
}
for(int b=0; b < 6; b++)
{
if(active_bullets[b])
{
if(bulletspeed > 0)
{
if((bulletx[b]+10 >= temy.x) && (bulletx[b]-(bulletx[b]-befbulletx[b]) <= (temy.x + 16)))
{
active_bullets[b]=0;
goto hurtzom;
}
}
else
{
if(((bulletx[b] - (bulletx[b]-befbulletx[b])) >= temy.x) && (bulletx[b] <= (temy.x + 16)))
{
active_bullets[b]=0;
goto hurtzom;
}
}
befbulletx[b]=bulletx[b];
}
}
if(((x + 16 + endhitcheck) >= temy.x) && (x + starthitcheck <= (temy.x + 16)))
{
if(attack)
{
hurtzom:
particle_timer=0;
PlayFile("hit_blood_spat.rso");
temy.life--;
particle_count=6;
particlepower=10;
for(int e=0; e < Random(particle_count-2)+2; e++)
{
particleangle=Random(40)-10;
particleax[e]=cosd(particleangle)*6;
particleay[e]=sind(particleangle)*6;
particlex[e]=temy.x+8;
particley[e]=temy.y+8;
}
DrawParticles=1;
}
else
{
life--;
//PlayFile("zattack.rso");
// bDisplayWhiteOut=true;
if(life <= 0)
{
StopTask(tiles);
Wait(500);
byte vartt[1];
until(ButtonPressed(BTNCENTER,0))
{
vartt[0]=0;
SetDisplayFlags( DISPLAY_REFRESH_DISABLED );
GraphicOutEx(0,0,"death.ric",vartt);
SetDisplayFlags( DISPLAY_ON | DISPLAY_REFRESH );
Wait(17);
vartt[0]=100;
SetDisplayFlags( DISPLAY_REFRESH_DISABLED );
GraphicOutEx(0,0,"death.ric",vartt);
SetDisplayFlags( DISPLAY_ON | DISPLAY_REFRESH );
Wait(17);
vartt[0]=200;
SetDisplayFlags( DISPLAY_REFRESH_DISABLED );
GraphicOutEx(0,0,"death.ric",vartt);
SetDisplayFlags( DISPLAY_ON | DISPLAY_REFRESH );
Wait(17);
}
Wait(100);
StopAllTasks();
}
}
}
if(temy.life <= 0)
{
deademy=1;
money+=5;
particle_timer=0;
particlepower=40;
particle_count=10;
temy.life=zomlife;
for(int e=0; e < 15; e++)
{
particleangle=Random(220)-20;
particleax[e]=cosd(particleangle)*7;
particleay[e]=sind(particleangle)*7;
particlex[e]=temy.x+8;
particley[e]=temy.y+8;
if(e == 13)
{
particleangle=88+Random(6);
particleax[e]=cosd(particleangle)*8;
particleay[e]=sind(particleangle)*8;
particlex[e]=temy.x+8;
particley[e]=temy.y+8;
}
} if(xadd <= -20)
{
switch(Random(2))
{
case 0:
temy.x=xadd+1*16;
break;
case 1:
temy.x=xadd+17*16;
break;
}
}
else
{
temy.x=xadd+17*16;
}
temy.y=yadd+16;
DrawParticles=1;
}
emy[c]=temy;
}
}
xd=0;
yd=0;
Wait(120-(CurrentTick()-t0z));
}
}
task main()
{
SetSensorTouch(S1);
gib_var[1]=DRAW_OPT_LOGICAL_XOR;
for(int c=0; c < width; c++)
{
for(int d=0; d < height; d++)
{
map[c][d]=DARK;
}
}
for(int c=0; c < width; c++)
{
map[c][0]=GRASS;
}
for(int c=0; c < width; c++)
{
map[c][height-1]=GRASS;
}
for(int c=0; c < height; c++)
{
map[0][c]=GRASS;
}
for(int c=0; c < height; c++)
{
map[width-1][c]=GRASS;
}
// PlaceSkeletonStatue(11,1);
EnemyInit(0,ZOMBIE,12,1,zomlife);
EnemyInit(1,ZOMBIE,15,1,zomlife);
EnemyInit(2,ZOMBIE,18,1,zomlife);
EnemyInit(3,ZOMBIE,20,1,zomlife);
EnemyInit(4,ZOMBIE,22,1,zomlife);
EnemyInit(5,ZOMBIE,16,1,zomlife);
/* EnemyInit(6,ZOMBIE,17,1,6);
EnemyInit(7,ZOMBIE,18,1,6);
EnemyInit(8,ZOMBIE,19,1,6);
EnemyInit(9,ZOMBIE,20,1,6);
EnemyInit(10,ZOMBIE,18,1,6);
EnemyInit(11,ZOMBIE,19,1,6);
EnemyInit(12,ZOMBIE,20,1,6);
EnemyInit(13,ZOMBIE,21,1,6);
EnemyInit(14,ZOMBIE,22,1,6);*/
map[13][1]=GRAVESTONE;
map[16][1]=GRAVESTONE;
map[18][1]=GRAVESTONE;
mapx=2;
mapy=1;
fmapx=2;
fmapy=1;
x=32;
y=16;
xpp=mapx*16;
ypp=mapx*16;
byte vartt[1];
life=40;
wpn_width[0]=8;
wpn_width[1]=13;
wpn_width[2]=20;
wpn_width[3]=8;
wpn_width[4]=8;
wpn_cost[1]=30;
wpn_cost[2]=50;
wpn_cost[3]=70;
wpn_cost[4]=120;
weapon_in_use=SWORD;
switch(weapon_in_use)
{
case SWORD:
weapon_filename="wpn_sword.ric";
break;
case LONGSWORD:
weapon_filename="wpn_lngsword.ric";
break;
case STAFF:
weapon_filename="wpn_staff.ric";
break;
case PISTOL:
weapon_filename="wpn_pistol.ric";
break;
case MACHINEGUN:
weapon_filename="wpn_mgun.ric";
break;
}
SetDisplayContrast(83);
until(ButtonPressed(BTNCENTER,0))
{
vartt[0]=0;
SetDisplayFlags( DISPLAY_REFRESH_DISABLED );
GraphicOutEx(0,0,"title.ric",vartt);
SetDisplayFlags( DISPLAY_ON | DISPLAY_REFRESH );
Wait(17);
vartt[0]=100;
SetDisplayFlags( DISPLAY_REFRESH_DISABLED );
GraphicOutEx(0,0,"title.ric",vartt);
SetDisplayFlags( DISPLAY_ON | DISPLAY_REFRESH );
Wait(17);
vartt[0]=200;
SetDisplayFlags( DISPLAY_REFRESH_DISABLED );
GraphicOutEx(0,0,"title.ric",vartt);
SetDisplayFlags( DISPLAY_ON | DISPLAY_REFRESH );
Wait(17);
}
Precedes(tiles,engine);
}
Thanks, and have a nice day,
nxtboy III
programnxt.com
nxtboy III
programnxt.com
Re: My new NXT game- After Dark, in grayscale
Doc- did you see the code? Do you need help with something?
Does anybody have any comments about this project? It seems as if hardly anybody is commenting.
EDIT: I posted the program (.rxe and .rics) to the game in the main post.
Does anybody have any comments about this project? It seems as if hardly anybody is commenting.
EDIT: I posted the program (.rxe and .rics) to the game in the main post.
Thanks, and have a nice day,
nxtboy III
programnxt.com
nxtboy III
programnxt.com
Who is online
Users browsing this forum: No registered users and 2 guests