Jump to content
IGNORED

Adventure Demo - 7800basic


Recommended Posts

I put this together in the last few days. It is based on and builds on RevEng's adventurer sample. You can walk around 255 different screens on the map, and there are currently only 15 unique screen definitions. There is nothing to do in this demo but walk around.

 

There is also no collision detection so you can walk through walls. If you stay with the openings the screens do connect properly. I don't know how to do collision detection with the background and haven't tried yet. I'm also sure there is a way to use the screenmap command in the main loop to change background colors during the game, right now I can only have three colors for the background. Since I haven't figured out how to change it during the game, I'm including two samples. The "green" sample shows what the first screen would look like with that color, it makes the rock sprites look like trees. The code "adventurer4.bas" is the brown version.

 

You may be able to guess what game I based the sprites & background on. :)

adventurer_brown.a78

adventurer_green.a78

post-2143-0-75643900-1402589761_thumb.png

post-2143-0-46763100-1402589762_thumb.png

post-2143-0-12209400-1402589763_thumb.png

post-2143-0-78494000-1402589763_thumb.png

adventurer4.bas

  • Like 28
Link to comment
Share on other sites

There is also no collision detection so you can walk through walls. If you stay with the openings the screens do connect properly. I don't know how to do collision detection with the background and haven't tried yet.

 

I wonder if there's a way to use the individual screen layout data as an array. Sort of re-purpose it as a collision map. 0 values being OK to walk on.

Link to comment
Share on other sites

Thanks to all for the likes and the kind words. I talked to RevEng via PM, he's going to give me some assistance with collision detection.

 

And yeah, loon, I think that's going to be how it's done. Character locations will need to be mapped into a variable array for each room.

  • Like 4
Link to comment
Share on other sites

This updated version has working collision detection, an updated map, and new water screens added. The map was updated to an 8x16 grid for 128 screens. You start in the top left corner. There's still nothing to do in this demo but walk around the map.

 

Many thanks to RevEng for helping with collision detection.

adventurer8.bas

adventurer8.bas.a78

adventurer8.bas.bin

gfx_v8.zip

post-2143-0-07026600-1402690795_thumb.png

  • Like 6
Link to comment
Share on other sites

 

I wonder if there's a way to use the individual screen layout data as an array. Sort of re-purpose it as a collision map. 0 values being OK to walk on.

 

Yep, that's pretty much what the existing code does. Before moving the hero, two points in front of him are converted to character coordinates, and we look up the character at either point and see if it represents an obstacle.

 

We even added some logic to smoothly move the player past corners and jutting pieces. If one of the points we check is clear, and the other is an obstacle, we slide the player sideways toward the cleared point. This allows him to move around some tight spaces without forcing the player to carefully align him first.

Link to comment
Share on other sites

 

Yep, that's pretty much what the existing code does. Before moving the hero, two points in front of him are converted to character coordinates, and we look up the character at either point and see if it represents an obstacle.

 

We even added some logic to smoothly move the player past corners and jutting pieces. If one of the points we check is clear, and the other is an obstacle, we slide the player sideways toward the cleared point. This allows him to move around some tight spaces without forcing the player to carefully align him first.

Thats a grest feature. How many times was my last piece of heart is lost and I wound up dead due to an escape being hung up on a object. It looks better than zelda already! Edited by Jinks
Link to comment
Share on other sites

I AM LOVING THIS!

 

 

Bentley who?

We will never forget all your contributions to 7800 gaming.

 

It is amazing to see these new developments in basic. Would you guys say a game can be made easier and faster than in assembly?

 

But yes it is amazing.

 

Atari 7800.. doing what nintendon't.

Link to comment
Share on other sites

Atarius Maximus, highly impressive. This is not to take a thing a thing away from you, though I have to thank and express my appreciation to RevEng, as well as all other contributors that has led to the tools and documentation to make development on the 7800 so much more approachable.

 

Blown away by the community here at AtariAge once again, and back to Maximus...Absolutely brilliant. It looks great already. Thank you for sharing it.

  • Like 1
Link to comment
Share on other sites

The added collision is very exciting me to me as this has been my greatest nemesis since I started programming. One thing I noticed is that on some corners you can be forced into the next screen like so:

 

attachicon.gifcornerpush.jpg

 

It's likely because the x/y values I have set to move to the next screen aren't set quite right. Should be an easy fix.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...