RSS Bot Posted September 18, 2006 Share Posted September 18, 2006 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 More sharing options...
Recommended Posts