Jump to content
IGNORED

SpiceWare's Blog - Lack of time, part 2


RSS Bot

Recommended Posts

Turns out the lack of time was also occuring during the overscan when processing fireball collisions.

 

The fireballs are 2 pixels wide and 4 pixels tall; but, because I'm using a 2 line kernel, I can consider it 2 pixels tall.

 

in the original routines, the process for fireball collisions on the grey castle was:

CODE

if BrickHit(x,y) then

RemoveBrick(x,y)

elseif BrickHit(x,y+1) then

RemoveBrick(x,y+1)

elseif Brick(x+1,y) then

RemoveBrick(x+1,y)

else BrickHit(x+1,y+1) then

RemoveBrick(x+1,y+1)

endif

 

where x,y is the top left of the fireball and x+1,y+1 is the bottom right of the fireball.

 

This weekend I was playing Super Breakout for the High Score Club and noticed that the ball would occasionally pass thru a brick. That lead me to realize they only tested the left side of the ball when a collision occured. I decided to do the same. After making the change, I ran MM in Stella for a few hours today with the following break in the debugger to confirm the screen problem had cleared up:

breakif { _scan == #263 }

 

Since I'm only testing 1 corner, I picked the corner closest to the king for each castle: grey uses x,y, blue uses x+1,y, purple uses x,y+1 and green uses x+1,y+1.

 

It works OK, but I'm not totally thrilled with the change. If processing time allows, I plan to revise the routines to check the 2 opposite corners of a fireball, grey would either check(x+1,y) and (x,y+1), or possible (x,y) and (x+1,y+1) depending on how tests go.

Medieval_Mayhem.zipmm20060917NTSC.binmm20060917PAL.bin

 

http://www.atariage.com/forums/index.php?a...;showentry=2039

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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