Jump to content
IGNORED

Multisprite zombie shooting demo


Retro Lord

Recommended Posts

A concept demo I deviced from Rabbit 2600's Robotron engine.

 

There are 4 zombies on screen. They can be killed by headshots only. This is no easy task and require a bit of skill. But I found it pretty cool. When they grab you, you lose a life, and you have too race against time. Blasting as many zombies as you can aswell as picking up dots too refill the timer.

 

This might be my successor too Denderes Violence. I found it pretty fun and addictive.

 

I'm thinking about implementing a shop that you go to once the timer runs out, there you buy health and some kind of weapon powerup by spending your earned points. So it'll be a real struggle to get the highscore. A bit of risk vs reward thing.

 

No promises =)

 

Have fun!

 

Download = Zed.bas.bin

Link to comment
Share on other sites

Cool demo, I like the Robotron style, goes good with the zombie horde style gameplay. I dunno the specifics of the collision, but I noticed a weird glitch I demonstrate in the video. I was playing, shooting zombies, then I hit up and a left/right direction at the top and I was able to phase through the walls. Moving about outside crashed the game. Though it was a cool cheat. :)

 

I was playing on Stella.

 

http://www.youtube.com/watch?v=JGM8LdMzzvU

 

Link to comment
Share on other sites

Okay latest version:

 

NEWS:

Walls are now deadly. Touch the walls and you lose a life and start in the middle of the screen,

 

There are 3 new screens. (I need to make some sort of transition from level to level for a better feel)

 

The screen colors are randomly generated too add some flavor.

 

 

 

May your aim be true and give you lots of headshots. My highscore record is 510 =)

 

DOWNLOAD - Zed0.5.bas.bin

Link to comment
Share on other sites

News:

 

Fixed all the bugs related too dying. When you die you are placed correctly in the middle of the screen, no more cheap deaths. I still need a proper game over screen though.

 

Managed too wrap my head around how music works and the game now sports a small music loop.

Thanks too this thread;

http://atariage.com/forums/topic/109288-code-snippets-samples-for-bb-beginners/page-2?hl=music&do=findComment&comment=1967507

 

DOWNLOAD - Zed0.6.bas.bin

Link to comment
Share on other sites

I've encountered a bug that I have no idea on how too fix. My plan is having you shoot the zombies and when you kill 1 they are gone, and when you kill all 5 zombies you move too the next screen.

 

The bug crashes the game when the last zombie is killed.

 

My setup for this is:

 if missile0x = player1x && missile0y=player1y then player1x=90 : player1y=90 : score=score+10 : n=10 : t=t+1

 if missile0x = player2x && missile0y=player2y then player2x=90 : player2y=90 : score=score+10 : n=10 : t=t+1

 if missile0x = player5x && missile0y=player5y then player5x=90 : player5y=90 : score=score+10 : n=10 : t=t+1

 if missile0x = player4x && missile0y=player4y then player4x=90 : player4y=90 : score=score+10 : n=10 : t=t+1

 if missile0x = player3x && missile0y=player3y then player3x=90 : player3y=90 : score=score+10 : n=10 : t=t+1

 if t=5 then pfscorecolor=rand : t=0 : score=score+100 : g=g+1 : player0x=80 : player0y=50

t is the counter for the kills. When it hits 5 you go to the next screen.

n is for playing a sound effect.

g is the counter for displaying the screens.

 

My setup for the killed zombies:

 if player1y>88 then player1y=90 : player1x = 90
 if player2y>88 then player2y=90 : player2x = 90
 if player3y>88 then player3y=90 : player3x = 90
 if player4y>88 then player4y=90 : player4x = 90
 if player5y>88 && player5x>90 then player5y=90 : player5x = 90

Sourcecode : Zed0.7.bas

 

Link to comment
Share on other sites

Next version is almost done. I fixed all bugs that I am aware of.

 

I made it possible too earn extra lives since it gets really difficult sometimes.

 

I made the game end when the timer reaches 0.

 

It feels very much complete at the moment but I will see if I can add some more things for flavor.

 

Hope you are excited about it =)

Link to comment
Share on other sites

Latest version:

If you find any bugs please report them. I've fixed all the bugs I could find on my own. Feature suggestions are also welcome.

 

Features:

5 levels

Zombies in different poses

Random color of levels

Random survivor at the start. (Random color)

Timer that works. Once it hits 0 you are dead.

Extra lives. Clear a screen to gain 1-UP

Walls are deadly

 

Can you beat my highscore of 613? =)

 

DOWNLOAD - Zed0.8.bas.bin

Edited by Retro Lord
Link to comment
Share on other sites

m{0} just references bit zero in byte m

you can replace

  m{1}=0 :rem Turned on if the last location of the joystick was UP
  m{2}=0 :rem Turned on if the last location of the joystick was DOWN
  m{3}=0 :rem Turned on if the last location of the joystick was LEFT
  m{4}=1 :rem Turned on if the last location of the joystick was RIGHT
  m{5}=0 :rem Turned on if the last location of the joystick was UP+LEFT
  m{6}=0 :rem Turned on if the last location of the joystick was UP+RIGHT
  m{7}=0 :rem Turned on if the last location of the joystick was DOWN+LEFT
  m{0}=0 :rem Turned on if the last location of the joystick was DOWN+RIGHT

with

  m = %0001000

and

  if joy0up then m{1}=1:m{2}=0:m{3}=0:m{4}=0:m{5}=0:m{6}=0:m{7}=0:m{0}=0
  if joy0down then m{1}=0:m{2}=1:m{3}=0:m{4}=0:m{5}=0:m{6}=0:m{7}=0:m{0}=0
  if joy0left then m{1}=0:m{2}=0:m{3}=1:m{4}=0:m{5}=0:m{6}=0:m{7}=0:m{0}=0
  if joy0right then m{1}=0:m{2}=0:m{3}=0:m{4}=1:m{5}=0:m{6}=0:m{7}=0:m{0}=0
  if joy0up && joy0left then m{1}=0:m{2}=0:m{3}=0:m{4}=0:m{5}=1:m{6}=0:m{7}=0:m{0}=0
  if joy0up && joy0right then m{1}=0:m{2}=0:m{3}=0:m{4}=0:m{5}=0:m{6}=1:m{7}=0:m{0}=0
  if joy0down && joy0left then m{1}=0:m{2}=0:m{3}=0:m{4}=0:m{5}=0:m{6}=0:m{7}=1:m{0}=0
  if joy0down && joy0right then m{1}=0:m{2}=0:m{3}=0:m{4}=0:m{5}=0:m{6}=0:m{7}=0:m{0}=1

with

  if joy0up then m = %00000010
  if joy0down then m = %00000100
  if joy0left then m = %00001000
  if joy0right then m = %00010000
  if joy0up && joy0left then m = %00100000
  if joy0up && joy0right then m = %01000000
  if joy0down && joy0left then m = %10000000
  if joy0down && joy0right then m = %00000001

In the latter case you can go further

The if statements reference bits in SWCHA
The SWCHA (joy0) bits are RLUDxxxx (here x is 'we don't care'
but they're joy1)

a 0 is true ie if SWCHA reads %1101xxxx then joy0 is up

 if joy0up then

is like

 if !SWCHA{5} then

The SWCHA (joy0) bits are RLUDxxxx (here x is 'we don't care'
but they're joy1)

a 0 is true ie if SWCHA reads %1101xxxx then joy0 is up

if SWCHA reads %1001xxxx then joy0 is up and left

note you are not going to see %1100xxxx because that's joy0
up and down at the same time

SWCHA / 16 will give you (joy0) %0000RLUD

You can invert the lower 4 bits by xoring with %00001111
(so that a closed switch reads 1 instead of 0) and in that case
the maximum value you would get is 10d or %00001010 (joy0 R & U)

so your code would be something like

  rem %00000000 0d (decimal) no switch pressed
  rem %00000001 1d down
  rem %00000010 2d up
  rem %00000011 3d up & down, can't happen
  rem %00000100 4d left
  rem %00000101 5d left & down
  rem %00000110 6d left & up 
  rem %00000111 7d left & up & down, can't happen 
  rem %00001000 8d right 
  rem %00001001 9d right & down
  rem %00001010 10d right & up 
  rem 11..15 are either down & up or right & left (or both) 

 temp1 = (SWCHA / 16) ^ %00001111
 m = joy0_flag_table[temp1]

 data joy0_flag_table
 %00000000, %00000100, %00000010, %00000000, %00001000
 %10000000, %00100000, %00000000, %00010000, %00000001
 %01000000
end

hopefully I got that all right but I guarentee nothing

 

edit: fixed some goofs

Edited by bogax
Link to comment
Share on other sites

winkdot

I'll look into the bullets being stuck. What is it that causes it?

As for not being able too fire, you can only fire left and right if you have previously pressed left or right. If you press up or down and then fire you won't shoot.

 

bogax

Thanks for the assist! It'll take me some time too get all that down, though. I really appreciate all the feedback and help. =)

Link to comment
Share on other sites

  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...