RetroChallenge #3, part 7. Do I have time for another one?
I guess I shouldn’t…. After all, there are just 6 days left…
What the heck, I do consider challenge #3 achieved, with 2 Remixed games.
And my long term goal, beyond retrochallenge, is to remix over a dozen of games, so, the next one in the list is “Sup-Caza”. The name comes from “Super Cazalo”, translated roughly to “Super Catch-it”, with the original being a 32×16 resolution game with 1×1 blocks as characters.
After a quick look at the code, (1600 bytes), it was clear that I could use PCOPY to avoid screen flicker.
Here is the original routine to draw and clear the graphics.
250 PUT(X*12,Y*15+1)-(X*12+12,Y*15+13),P,PSET
260 PUT(H*12,V*15+1)-(H*12+8,V*15+13),J,PSET
270 PUT(X1*12,Y1*15+1)-(X1*12+9,Y1*15+16),C,PSET
274 FOR A=1 TO 100:NEXT A
275 COLOR 1
280 LINE(H*12,V*15+1)-(H*12+8,V*15+13),PSET,BF
290 LINE(X*12,Y*15+1)-(X*12+12,Y*15+13),PSET,BF
300 LINE(X1*12,Y1*15+1)-(X1*12+9,Y1*15+16),PSET,BF
The wait loop in 274 is to keep the characters visible in the screen for at least some time. I would have assumed that by that time I knew to put all the math between drawing and erasing, but I guess I did not.
Anyway, with page flipping, a simple PCLS is more than enough to clear the graphics, and faster than drawing 3 background colored boxes on top of the characters.
The next thought was to use the variables to store the actual character position in the screen, instead of the positions in the grid and doing math in all the loops.
From PUT(H*12,V*15+1)-(H*12+8,V*15+13),J,PSET
to PUT(H,V)-(H+8,V+13),J,PSET
Then, as the sprites are not the same size, I adjusted their positions so they looked centered in the grid squares, instead of “hanging from the corner”. That is, H starts at 2 instead of at 0 to center the 9 pixels sprite in the 12 pixel grid square.
But, that broke collision detection, since now the player’s H would never match the monster’s X
There are 3 ways to fix this. Doing additional math, with is kind of a waste, use a grid and array to store position – for example, X going from 0 to 20 and storing the screen coordinates for each position in X(19), or redo graphics to make them all the same size, which will affect the look of the game, and probably take more time. Also… who knows if I can get all the characters fit nicely in 12×12?
I guess I could do a mock-up to see… OK this looks good… Damn! I am doing the new graphics
Welllllll, I hope it rains next weekend.
Leave a Reply