|
Subject: Re: [stella] Another day, another problem... From: Manuel Polik <manuel.polik@xxxxxxxxxxx> Date: Fri, 09 Mar 2001 13:39:33 +0100 |
Andrew Davie wrote:
Mornin' Andrew!
> Its a bit hard to figure exactly the context in which you need this.
Phew... thanks for typing in all that heap of information!
(You could've ask for the context first, eh? :-))
Ok, I tell you what I'm doing.
In my bulletData byte, there's two Bits distinguishing if the bullet is
moving up/down or left/right.
First I move it, then I check if it went out of bounds, in case I turn
the direction. The vertical solution that does it for me is very simple:
LDA bulletData,X ; Load data bits
LDY bulletVerPos,X ; Load vertical position
BPL BulletDownOK ; Bullet < 0?
ORA #%00000010 ; Y: Change direction
BulletDownOK
CPY #UP ;
BMI BulletUpOK ; Bullet > $60?
(2LK!)
AND #%11111101 ; Y: Change direction
BulletUpOK
Now, when comming to the horizontal position, any values from $80-$A0
would be in valid range, but already negative!
In my demo, I tricked around this in a way, that my bullets are only
moving one pixel steps horizontally, so I just continue:
LDY bulletHorPos,X
BNE BulletLeftOK ; value matches exactly?
ORA #%00001000 ; Y: Change direction
BulletLeftOK
CPY #RIGHT
BNE BulletRightOK ; value matches exactly?
AND #%11110111 ; Y: Change direction
BulletRightOK
STA bulletData,X
Now, I think either Thomas' idea would be a possible solution for a
faster than 1 pixel horizontal movement, or I get my other Joker going:
A bullet can either move 1 or 2 pixels in each direction, but I'd always
horizontally start it on even numbers.
Now, I'd catch both the 1 Pixel & the 2 Pixel moving bullets on any
desired bound by comparing with even numbers, right?
Greetings,
Manuel
P.S.: Now I continue studying your article -> every method is useful :-)
Thanks again for submitting it...
-
Archives (includes files) at http://www.biglist.com/lists/stella/archives/
Unsub & more at http://www.biglist.com/lists/stella/
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [stella] Another day, another p, Andrew Davie | Thread | Re: [stella] Another day, another p, Thomas Jentzsch |
| Re: [stella] Another day, another p, Manuel Polik | Date | [stella] Qb prototypes..., Andrew Davie |
| Month |