| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
Negative sprite X-position ?
Hehe I kinda know it isnt doable, but still, i would ask what to do..
An expanded sprite goes to X-pos 0, and then half of it is visible on the screen.
So, when scrolling left, it suddenly disappears when it hits X-pos 0.
This looks ugly :D
If i set D010 at this point, its still not possible to give it a position, so it is hiding under the left border.
So what can i do ?
I have thought about the insane work, to, when X-pos=0, to start a left scrolling of the sprite data. This isnt very appealing to have to code.. :D
Also, dont we get the same problem if the whole sideborder is gone ? when sprite at pos 0 = it suddenly vanishes from there, because you set d010 and give it another position ?
I dont know what to do.
Ofcourse NOT using expanded sprites solves the problem, and my flying sprites can look nice.. but i WANT them expanded.
Anyone ? |
|
... 10 posts hidden. Click here to view all posts.... |
| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
Quote: And I answered in a general way trying to give some hints but ok... :)
Border ends at 24. An expanded sprite is 48. To hide it you must place it at 24-48 = -24. But since -24 < 0 we must subtract by 8 => -24-8 = -32 ($e0 = 224).
You keep telling me stuff I already know :D
The sprites use 3 bytes for x-pos; the 3rd is for the d010 gap in left side (pos 224-247). |
| |
The Human Code Machine
Registered: Sep 2005 Posts: 112 |
Quote: You keep telling me stuff I already know :D
The sprites use 3 bytes for x-pos; the 3rd is for the d010 gap in left side (pos 224-247).
Why does a sprite need 3 bytes for x-pos? I always thought only 9 bits are needed for the x-pos? |
| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
Well, yes, but actually it is 3 seperate counters, so i decided to use a byte for it, instead of using 1 byte for 2 different things.
0-255 | d010,0
0-159 | d010,1
224,247 | d010,1
So to make the code easier, i use 3 bytes.. |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
Quote: Well, yes, but actually it is 3 seperate counters, so i decided to use a byte for it, instead of using 1 byte for 2 different things.
0-255 | d010,0
0-159 | d010,1
224,247 | d010,1
So to make the code easier, i use 3 bytes..
To make the code even easier you can use two bytes per sprite that represents -32768..32767. :P
|
| |
WVL
Registered: Mar 2002 Posts: 902 |
Quote: Well, yes, but actually it is 3 seperate counters, so i decided to use a byte for it, instead of using 1 byte for 2 different things.
0-255 | d010,0
0-159 | d010,1
224,247 | d010,1
So to make the code easier, i use 3 bytes..
Easy?
Like Jackasser said : just use a 16-bit coordinate system.
You can improve it a bit further with some small checks :
5. position >$180? then position is $180
6. position <-$c0? then position is -$c0
This fixes the 'wraparounds' |
| |
HCL
Registered: Feb 2003 Posts: 728 |
Heh. :D. I'd better not make a comment on this.. |
| |
WVL
Registered: Mar 2002 Posts: 902 |
Quote: Heh. :D. I'd better not make a comment on this..
Let me guess : you have an ever easier system using 5 bytes? ;) |
| |
Jetboy
Registered: Jul 2006 Posts: 337 |
Why limit yourself to only using 5 bytes where there is so many of them available? :) |
| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
Jackasser: yes I see now.... :D
I must have been blind.. |
Previous - 1 | 2 - Next |