Fulcrums Coordinate System for Text Display Mini-Games [🟨 4/10]

Welcome to my 4th guide!

I’m really enjoying making these, and today I’m here to make a more complex tutorial.

Here's what we'll be making

Strap yourselves in, this ones going to be longer than most, but I’ll try to explain how it works as best as I can!

Materials list for coord system

property x5 (50 memory)
zone x4 (800 memory)
counter x2 (50 memory)
game overlay (675 memory) (not required, but recommended for testing)
trigger (540 memory)
lifecycle (50 memory)
teleporter (50 memory)

Got everything you need? Great! Let’s get started!

Step 1, setting up zones

Our zones will be how we track our position changing.
Place down a teleporter where the center will be.
Now surround the teleporter with 4 zones with the minimum thickness depending which wall it’s placed on, but a length dependent on where the other zones are.
Now surround the zones in walls, just in case!
You should have this setup by now:


Add in a lifecycle listening for game start. When the event occurs, broadcast “update position”

Now make the teleporter teleport the player there when we receive the “update position” broadcast.

Now we’ll setup the broadcasts for the zones.
Have the top zone broadcast “+y”,

the right zone “+x”,

the bottom zone “-y”

and the left zone “-x”.

Congrats! You’ve finished step 1! I hope you’re still following along okay!

Step 2, making the actual coordinates

Let’s make our player “move” now!
Add 2 new properties, “update x” and “update y”. Both should be a number property for the player only.


Now add 2 counters for each property.


Now make the counters increment on their + position and decrement on their - position. Each of them should be for the player only.


And lastly, reset both counters on receiving “update position”.

We’re done with the counters! Now before we do some coding, let’s add 2 more properties called “x coord” and “y coord”. Each of them should be a number value for the player only.

Now for the best part, CODING!!! :tada: Add in a trigger and we’ll leave all of the settings the same. Make a new code block like this:

How it works

First, we check to make sure that we changed our position and didn’t just reset our counters. If either of the coords not equal to 0, then we’ll run the code. Without this if statement, we’ll get stuck in a loop and be unable to move.
Then we set variables to track where we want to go based off of our update position properties. In this case, it would be more efficient to get rid of the variables to conserve block space, but we’ll need them for later.
Last, we set our coords to the variables, broadcast “update position”, and we’re back into the center of our zones with a changed coordinate value!

Now just wire both the “update x” and “update y” properties to the trigger.


We’ll come back to this in a bit. First, lets make a display to show us our position using an overlay.
Here are the overlay settings:

Now we’re going to make a block for it. Make a block that activates on “update position” like this:

This isn’t required, but it’s good for testing.
Start the game and try moving around. You should notice the overlays coordinates changing the x when you move right and left and the y when you move up and down. You’re almost done! Only one step left, you’re doing great! :grin:

Step 3, simulating walls

Since we are using this coordinate system, we can’t really place down walls to block the player. But, with a property and a bit more block code, we can make it seem like there is a wall. Let’s make a new property “wall coords” with these settings:


Notice that we have now placed a “wall” at the coords 2,2. How do we detect these walls? Our good friend block code of course! Go back into the triggers code block. We’ll add in an if statement around the blocks that set our coord properties like this:

Rest of the condition:

How it works

Looks confusing, right? Actually, it’s fairly simple! We just get the first occurrence of where we want to go in the “wall coords” property with the “in text (text) get [first] occurrence of text (text)”. The way this block works is it returns the first letter # of where the text is if it’s in there, and a 0 if it’s not. Since we want to move if there isn’t a wall there, if it returns a 0, we allow it to change our position. However, we do not put the broadcast in the if check, so that way we can still center ourselves in the zones after an unsuccessful attempt and make it easier on the player to move the opposite direction. Huh. Maybe it is just a tad bit complicated…

Now to test it! If you start the game and try to move to the coordinates 2,2 you will see that you just get teleported right back to the center without your coords updating. This is exactly what you want! You can add walls wherever you want them on your map now by adding a space in-between coordinates! Just be warned of the dreaded 256 character limit…

Congratulations, you did it! But what is this useful for again?
You can use this system along with the new camera point device combined with several text devices to create text display mini-games! Create complex arcade style games with this new coordinate system, maybe even adding in enemies and bullets! I could even make more tutorials on how to make some games out of this if any of you want. I can’t wait to see what you guys come up with!

Happy building! @Fulcrum-19

If you have any questions, feel free to ask. Someone will be happy to help!

Rate my guide?
  • Amazing!
  • It’s ok…
  • Needs more pictures.
  • Needs more text.
  • Bad.
0 voters
What’s the difficulty?
  • 1/10
  • 2/10
  • 3/10
  • 4/10
  • 5/10
  • 6/10
  • 7/10
  • 8/10
  • 9/10
  • 10/10
0 voters
10 Likes

Wow! This is REALLY cool and creative!

2 Likes

First of all: Great job on the guide, you explained your system well!

I understood the blocks and devices, but I don’t know what this is for… I wonder if I missed something, could you tell me what this text display Mini-Games is?

2 Likes

Awesome guide!!! Just one thing, can you make it a tiny bit easier to read? For example bold the titles/subheadings