View Full Version: [Tutorial] Adding a Projectile

wolfers >>Coding Alliance >>[Tutorial] Adding a Projectile


<< Prev | Next >>

Deathshead- 04-07-2005
[Tutorial] Adding a Projectile
This is one of my earlier tutorials I wrote up and tested: Add energyobj under needleobj in GLOBALTYPES in WL_DEF.H Define sprites in WL_DEF.H, under Chaingun Sprites SPR_EGY1, SPR_EGY2, SPREGY3, Define Statetypes in WL_ACT2.C // // energy blast // extern statetype s_energy1; extern statetype s_energy2; extern statetype s_energy3; statetype s_energy1 = {false,SPR_EGY1,6,T_Projectile,NULL,&s_energy2}; statetype s_energy2 = {false,SPR_EGY2,6,T_Projectile,NULL,&s_energy3}; statetype s_energy3 = {false,SPR_EGY3,6,T_Projectile,NULL,&s_energy1}; And add to WL_ACT2.C, above T_GiftThrow Function: /* ================= = = T_Energy = ================= */ void T_Energy (objtype *ob) { long deltax,deltay; float angle; int iangle; deltax = player->x - ob->x; deltay = ob->y - player->y; angle = atan2 (deltay,deltax); if (angle<0) angle = M_PI*2+angle; iangle = angle/(M_PI*2)*ANGLES; GetNewActor (); new->state = &s_energy1; new->ticcount = 1; new->tilex = ob->tilex; new->tiley = ob->tiley; new->x = ob->x; new->y = ob->y; new->obclass = energyobj; new->dir = nodir; new->angle = iangle; new->speed = 0x2000l; new->flags = FL_NONMARK; new->active = true; PlaySoundLocActor (SCHABBSTHROWSND,new); } Add under case needleobj: damage = (US_RndT() >>3) + 20; break; in WL_ACT2.C: case energyobj: damage = (US_RndT() >>4) + 10; break Then choose which enemy you want to use it, edit the statetypes, and your done. You can even make a rocket type projectile, where it is 'directional'. There you go -Deathshead


Forumer™ is Voted #1 Free Forum Hosting provider
Build your own community today with the largest message board hosting company.