|
Subject: Re: [stella] acceleration and inertia From: Manuel Rotschkar <cybergoth@xxxxxxxx> Date: Wed, 07 Jan 2004 08:59:29 +0100 |
Hi there!
> When I start thinking about modeling all these
> attributes I can't help but start to roll my eyes over
> the sheer amount of processing it will take to get to
> the point where I apply a change to the x and y of
> each car.
> Any tips?
Don't start with the full blown thing. Start with the
very basic things, that is:
X-Postion
Y-Position
X-Speed
Y-Speed
For your needs, The Position values are two bytes:
X-Pixel and X-Float
Y-Pixel and Y-Float
And the Speed is basically the sum of all other effects
like traction and acceleration.
Now. Assume we're driving straight right and all we
consider is "full" speed:
X-Speed = 100
Y-Speed = 0
So we can ignore th Y-Axxis for the moment.
Look at this code snippet
LDA xPosfloat,X ; Load current float value
CLC
ADC xPosadd,X ; Add current speed
STA xPosfloat,X ; Save current float value
LDA xPosabs,X ; Load absolute x pixel position
ADC #$00 ; If float value exceeded 255
STA xPosabs,X ; Increment it by one
STA xPosabs,X ; Store away pixel position
What the code does is this:
Frame 1:
XPos = 0
Xfloat = 100
Frame 2:
XPos = 0
Xfloat = 200
Frame 3:
XPos = 1
Xfloat = 45
Frame 4:
XPos = 1
Xfloat = 45
Frame 5:
XPos = 1
Xfloat = 145
Frame 6:
XPos = 1
Xfloat = 245
Frame 7:
XPos = 2
Xfloat = 90
...
You see, it's moving a pixel ~ every 2.5 frames.
Now this has everything moving 0-1 pixel per frame.
To achieve higher Speeds, just add the addvalue 2 or 3
or more times per frame.
To get the basic movement of your car going like this
for the start, you'd need tables for every possible
angle like in:
up x=0 *speed, y=1 *speed
down x=0 *speed, y=-1 *speed
left x=-1 *speed, y=0 *speed
right x=1 *speed, y=0 *speed
So you'd divide 360 by any "power of 2" of your choice
and calculate the sine and cosine values for each of
these angles. Above is the simplest case for 360/4,
you'l probably need 360/16 or 360/32.
Hm...
Ok, that was just a quick start to get you an idea.
Greetings,
Manuel
----------------------------------------------------------------------------------------------
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 -> |
|---|---|---|
| [stella] acceleration and inertia, Glenn Saunders | Thread | Re: [stella] acceleration and inert, Glenn Saunders |
| [stella] acceleration and inertia, Glenn Saunders | Date | [stella] Seawolf: Day Five, Manuel Rotschkar |
| Month |