Brings me back to my Amiga days!!

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts MenuQuote from: Darmakwolf on 2011-Nov-16
This is my approach to smooth scrolling. This is my game I'm working on called The Legend of Blobo: Castle of Deceit. It works roughly like Symphony of the Night (PSX Castlevania.) Unzip everything and run the program.
Controls
Arrow keys = move / navigate menus
Z = cancel / attack
X = accept / jump
I = inventory
F1 = debug
F3 = display FPS
C = mega jump in debug mode
Let me know if it's the kind of system you're looking for. It is not tile based. It is object based. You can have infinity objects per map, and maps are infinite in size. This is possible at 60 FPS because the game only draws what's on-screen, including animated enemies. Objects can also have transparency and draw priority (e.g, in front of the main character.) Enemies react to objects on the map, such as falling until they hit a solid object or stopping and going another direction when hitting a wall. Objects can also move horizontally and vertically like moving platforms in Mario (this is experimental...) and there is HP and EXP and stats and equipment. It's a work in progress :3
<edit note: the attachment for me for some reason downloads as a .php file... renaming it to .zip allowed me to extract the archive. Maybe it's just a firefox / glb forums bug. lol >
FUNCTION hitobject: xx,yy
FOREACH w IN waters[]
IF BOXCOLL(xx,yy,16,16,w.wx,w.wy,w.width,w.height) THEN RETURN 1
NEXT
ENDFUNCTION
LOADSPRITE "castle1.png", 11
result% = 0
FOR f=1 TO 512 STEP 16
FOR n = 1 TO 800 STEP 16
//FOREACH test IN waters[]
FOR i = 0 TO BOUNDS(waters[],0)-1
// IF BOXCOLL (test.wx, test.wy,test.width,32, n,f,32,32)
IF BOXCOLL (waters[i].wx, waters[i].wy,waters[i].width,32, n,f,32,32)
// TEST SIDE SECTIONS
FOREACH leftside IN waters[]
IF BOXCOLL (leftside.wx, leftside.wy,leftside.width,32, n-32,f-16,32,32)=FALSE AND BOXCOLL (leftside.wx, leftside.wy,leftside.width,32, n+64,f-16,32,32)=FALSE
result = 1
ELSE
result = 0
ENDIF
NEXT
IF result = 1
DRAWSPRITE 11, n, f-16
GOTO scr1
ENDIF
ENDIF
NEXT
NEXT
NEXT