BGelais 2021-07-01 14:54 (Edited)
A remake of 1983's (known on Atari 2600) classic from Activision by Steeve Cartwright.
rules's changes compared to the original:
-player's sub not explode when resurface with no divers rescued.
-need some sine vertical moves on sharks
-you need to rescue 7 divers to resurface and get bonus on oxygen left and
the 7 divers.
update 1.4: added bobling movements on Sharks by was8bit
was8bit 2021-07-01 16:03
Another 7star production :)
BGelais 2021-07-01 18:22
Thanks! Juste updated with my usual attract mode. :)
was8bit 2021-07-02 05:38
BGelais 2021-07-05 15:09 (Edited)
update: fix some paging on the attract screen
need: if any of you guys got code idea to add the little sine wave vertical movement on sharks, let me know how. I tried but it moved weird to top of screen.
see the original on Atari 2600:
was8bit 2021-07-05 19:12 (Edited)
The issue is you need to use the bob amount as a seperate variable from the y level variable.,.
.... your issue was probably using SPRITE.Y for both, meaning each application of another bob was being added to all prior bobs... making the sharks fly off the screen.,.
You have to retain the original y... which i did...
... also, the video of the original game showed all sharks bobbing in synchronous, rather than each one having its own unique bob, so i duplicated that, its also the easiest to apply ;)
was8bit 2021-07-05 19:26
Think of it like a spirograph.... the center of the small gear simply orbits like a circle around the center if the paper... so its center is ...
Where x,y center is the center of the paper... the result is the location of the center of the gear
The pen in the gear is now simply
X,Y center of the gear + x,y angular movement of the gear...
In your case, the shark is moving in a straight smooth line, so X doesnt do anything fancy...
Y keeps changing... but if you break it dowm, Y of original shark stays constant... you then add the y bob amount to this constant Y..... but the original Y itself cannot change....
A sharks SPRITE.Y does keep changing, but it must be originalY + currentBobY
BGelais 2021-07-05 22:19 (Edited)
@was8bit in onther therm, I had to use the arrays way with the ennemys, so each shark got his original enemy_y(x). Oh! Thanks I just saw your fix! :) will check your code.
was8bit 2021-07-05 22:49 (Edited)
Glad i could help :)
using SPRITE.XY is nice for some applications...
Now, sometimes i use fractional movement to create variations of slow movements..... this cannot be done using SPRITE.XY as it will only store whole numbers, so continously adding SPRITE 0,SPRITE.X(0)+0.5,, will result in the sprite not moving at all... but SPRITE 0,SPRITE.X(0)+1,, WILL work...