Posted By
Bacon on 2003-11-17
| Programming software sprites
If anyone here visits the Lemon64 forums (I know TMR does!) you may know that I've released my first C64 game, Space Pig Duel.
I've now started coding the next one, which I would like to eventually port to the Plus/4. I might port Space Pig Duel to the Plus/4 too, but I'm not sure it's worth the effort since it's such a crappy game
Since the Plus/4 doesn't have any hardware sprites, I will naturally have to use software sprites. I suppose people normally use character graphics for that sort of thing. Now, I can see no problem making such sprites move 8 pixels (one char) at a time, but in games like Battery II some sprites clearly move less than 1 char position at a time. Can anyone point me in the right direction on how to do this?
|
|
Posted By
Luca on 2003-11-17
| Re: Programming software sprites
As codelamer, I'll talk very cheapy. Check my XeO3 site for example: XeO3 sprites are 2x2 char shaped. The game needs 2 charbanks, one for the chars that will be used, the other for the chars that will be built on and printed on the screen during the game. In facts, if you wanna move a 2x2 softsprite, you need a 3x3 charmask moving in the game: the 9chars square stuff here contains, e.g., your ship and, foregrounded or backgrounded, enemies, background and all the incredible things your ship faces in that mask. This mask is hence produced by original charset to the other charset that has to be shown, being refreshed at any game's timeslice.
|
|
Posted By
Bacon on 2003-11-17
| Re: Programming software sprites
OK, so if I understand correctly, I would need a set of 3x3 characters for each position the sprite should be able to occupy and a 3x3 character mask to copy this data into together with the background/foreground characters that occupy the current screen position.
As long as the sprite moves <8 pixels, the mask will stay in the same screen position. To move 1 more pixel in the same direction, the whole mask will move 1 char, while the sprite would move 7 pixels in the other direction.
...uh, right?
|
|
Posted By
MC on 2003-11-17
| Re: Programming software sprites
if X holds your sprite's coordinate, the character position is X / 8, the in-character position is X modulo 8. Or x/4 and x mod 4 if using multicolor...
|
|
Posted By
Bacon on 2003-11-17
| Re: Programming software sprites
Thanks guys. I think I'll be able to make it work now.
BTW, Luca, how's work with Xe03 going? I've been eagerly anticipating that game for a long time. Any chance that there will be TED music/sound effects? I don't have a SIDcard, and no matter how good Yape is (and it really is great!) I prefer to use my real Plus/4 (especially having spent all that money buying a copule of them off eBay). It wouldn't be as much fun playing a game without sound.
|
|
Posted By
Luca on 2003-11-18
| Re: Programming software sprites
Ok, Bacon, you just killed me As you can see by this forum, Mike Dailly in practice is completely vanished, 'coz probably his family and his job eat spare time as hell. I'll try to recontact him for the nth time! About music: we wanna use SIDcard, but a frqconverter takes few Kb, hence, as written on site, we'll do all the (im)possible in order to make you choice SID or TED ingame music.
|
|
Posted By
Bacon on 2003-11-18
| Re: Programming software sprites
I sincerely apologise, Luca.
I didn't mean to put any pressure on you. I haven't followed the discussions about Mike Dailly. Just wanted to know if there had been any progress lately.
I'll just shut my big mouth now.
|
|
Posted By
Luca on 2003-11-18
| Re: Programming software sprites
Whaaaat? Hey-hey-hey, I'm just jokeing, oh!
|
|
|