Category Archives: Makecode & Scratch

Dog Basketball

In this game you control the dog to get the ball. Once you get the ball, a man will be chasing you, you have to shoot it in the basketball hoop as soon as possible. If the man touches you three times, you will be game over. For the points you gain by shooting balls, you can buy skins, extra lives, and infinity balls from the shop.

Just click the link below to see and edit the sources code in Microsoft MakeCode Arcade

Dog Basketball

Space Invader


I created this game in 10 days when I first learnt MakeCode Arcade. This platform is really fun and easy to create a Arcade games you like, I will show you how to make this!

I will buy you lunch if you can score more than 1200.. 🙂

How does the program work?

Monster Movement

This image has an empty alt attribute; its file name is image-1.png

Here is the monster movement control, I made the monster going down zig-zag. The monster moves to the right border, then go down one line and go back to the left border and go down. Repeat the movement until it touches the player or when it get shot.

I made a variable to check if the monster is killed or not. If the monster is not killed, it will continue the movement. When the monster is killed or hit the player, it will spawn somewhere in line 1 to 3.

I also give a point bonus, when the monster goes more downward, it will give more points to the player.

Levels Manager

This image has an empty alt attribute; its file name is image-2.png

I made levels by using different variables , so that monster have different behavior at every level.

  1. For level 2, I make the monster to shoot bullet.
  2. For level 3, I make the monster become hard to hit by making it invisible and appear every step.

Level Definer

For this level definer, you need to set the variable to the number that you need for each level. For example of level 5,

  1. ‘Kill_Target’ is the number of monster you have to kill to advance to the next level
  2. ‘monster_invisible’ to tell whether the monster will be invisible or not.
  3. Set ‘Alien’ to different monster type.
  4. ‘monster_type’ is how much score you get from hit the monster.
  5. ‘monster_delay_set’ the shorter you set it the faster the monster moves.

Before calling the function ‘playing’ to start the level manager, I also have to turn on the monster stay in screen or else it will bug the game and you will never see the monster.

I also reserved a function to change the background for each level, but I am too lazy to create the background and keep them all the same… XD

Point System

This image has an empty alt attribute; its file name is image-4.png

When press ‘A’ button, the spaceship will shoot a bullet up, i.e. -y is upside. If the bullet hits the monster, it will add points according to the ‘monster_type’ I defined in level definer as well as how low the monster go down. Then, make the variable ‘killed’ to one so that the function will do the monster reset in the level manager.

Attacked by Monster!

This image has an empty alt attribute; its file name is image-5.png

When the monster’s bullet hit the spaceship, you will minus a life. Then, will destroy the bullet, so that it will not double hit the spaceship.

When the monster hit the spaceship you will also minus a life and this time the monster will go back to the top at line 1-3. If it is level 8, the monster will go back at once, so that it will not double hit the spaceship.

If you got hit by the monster or shot by it 3 times you will game over.

Click here to see my code~

My game play but below 1200… XD

Mice Maze

My Second dream was ‘mice maze’, it was very popular when I was childhood, program a ‘mice’ to solve the maze automatically. Actually, my 25 years old final year project was ‘smart vacuum cleaner’, it is now very popular. But, it was very new concept at that time and I defined some ‘mice’ behavior. And now, I proof that it work based on Scratch.

Scratch, thanks a again!!

P.S. I like to stare the screen to see the mice to run the path. If you want to run it faster, hold shift when press the green flag.. 🙂

Basic idea for the mice’s logic

That’s a very basic and simple logic for the mice…. XD

  1. We make the mice in a square with dimension same as the maze path, we are using 48pt x 48pt.
  2. The mice is moving in a unit of it’s size, i.e. 48pt
  3. We define the priority of the movement for the mice to follow,
    • Always go forward
    • Go right if cannot go forward
    • Go left if both forward and right are blocked
    • Move backward if no more movement.
  4. Then, we need to record each movement and possible (not explore) directions.
  5. When the mice move backward, it will read the record and go to un-explore directions.

How does the program work

Prior I created the mice maze, I actually made a program by using WASD key to move the mice, solve the maze manually. So, keep in mind, W – up, D – right, S – down, A – left, it is too hard for you if you are FPS game player.. LOL

Sensor – detecting wall

Before the ‘mice’ do any movement, it will detect any wall in it’s four directions. In this program, I move the ‘mice’ to four directions in a certain distance. See if it will hit a wall (black in color) or not. If not hit, W A S & D will be put into the corresponding variable Wall U, D, R & L, tell the ‘mice’ that the direction is OK to move. Otherwise, keep the variable as X, means there is a wall.

Movement

Path Tracking

I am using a LIST called ‘Path’ to record each movement of the ‘mice’,

Frog vs Spider

Scratch made Adam’s dream came, create a game… Since my childhood, I was expert in Assembly, i.e. 6502, x86, 8051, modifying OS and even created a mini Chinese display system. But, never created a single game.. I tried to make game with Assembly, it was painful even make a character moving.. Thanks Scratch!!