Latest MakeCode Arcade Release

The latest release is breaking the game that I am developing along with my son. It’s a game based on Captain Toad where the player can’t jump. I do have tiles that when overlapped will cause the player to leap into the air.

The issues:

  1. Switching from JS to Blocks will implement Assets replacing ‘myTiles’ to ‘assets’, and renames the sprite ‘player’ to ‘player2’ and I am getting a null error during game start-up.

  2. The carefully placed tiles to do successive jumps can’t be reached by the player anymore. The height obtained from the jumps is lower than before.

Anyone else experiencing issues? I saved the project before 10:30 PM EST and all was well. Shortly after that there must have been a new release, since that is when I noticed the new Asset button and the issues with the program.

I’ve been importing the saved project and have made updates and staying in JS, however, I am still addressing the jumps since I don’t want to have to remap the tiles.

Update: I had to change the calculation for the leaps and move some tiles closer to each other to achieve successive bounces. I am staying out of blocks for now and staying in the JavaScript editor. We are almost finished with the game and he can play with it on his PyGamer.

3 Likes

Ah, we did change some of the underlying tile and tilemap handling in the latest release–would you still happen to have the saved version (that you were importing) on hand to share? We definitely want to make sure old projects are upgraded/converted correctly through this release and it’d be great to have a concrete example to debug with.

2 Likes

Yes, I have the working example saved as a png and have the project imported. Here is the link: https://makecode.com/_JKC4gAc2xc0H

Once tiles are renamed, the player sprite will not replace the placeholder tile and this will cause the null error during program start.

In the setPlayer function:

for (let value of tiles.getTilesByType(tiles.util.object1)) {
    player = sprites.create(pixelToad, SpriteKind.Player)
    tiles.placeOnTile(player, value)
    tiles.setTileAt(value, myTiles.transparency16)
    player.setFlag(SpriteFlag.StayInScreen, true)
    player.setFlag(SpriteFlag.ShowPhysics, false)
    scene.cameraFollowSprite(player)
    player.ay = gravity
    animation.attachAnimation(player, climb)
    animation.attachAnimation(player, walkLeft)
    animation.attachAnimation(player, walkRight)
}

The problem will occur for similar logic e.g. setEnemies, setGoals, etc.

Note: the above code is from the working project and is not converted to use Assets.
Also, click Edit Code button to see the working game, since the program will not load using the link.

1 Like