|   
				
			 | 
			
 		
 
 Atari coding BBS 
   
| Bitplane collision detect |  
| 
Posted by: Simon Sunnyboy / Paradize 
 | 
Jul,27.2010-18:41 
 | 
 
 
Today I thought about how to detect a collision while drawing a sprite. E.q. have a bitplane (nr 4) in the background set and use this to indicate a collision (drawinging over color 8-15 should trigger a collision detection) 
 
While drawing the sprite, the onscreen bitplane is obviously read and masked with AND. Now I wondered if there was a simple thing to implement as a sideeffect to detect a set pixel that is masked away. 
 
A clumsy approach might look like this but it takes way too many cycles... 
assume a0 points to screen, a1 to mask data 
 
    move.w (a0),d0  ; fetch bitplane and store temporarily 
    move.w (a1)+,d1  ; fetch mask data  (pixels to keep are 1, pixels to clear to OR the sprite in are 0) 
    and.w d1,0(a0)+   ; mask onscreen 
    ; now: 
    neg.w d1  ; flip mask bits 
    and.w d1,d0  ; and the negated mask with the bitplane 
    bne collision_found    ; if any bit is still set we found a pixel based collision 
 
 
 
Any ideas or suggestions? I am thinking of a generic approach here... 
 
cheers, 
ssb
  
 | 
 
 
 
  
	
  
 
 [All messages in this thread]      [Start new thread]  
  
 
	
 
	What's the anti-troll code?   That's your personal code to be able to add comments and messages on the dhs.nu site.
  Don't have a code or forgot it? Fix it here.
			 |