Starting from:

$29.99

CS2261 Lab 9-Complex Movement & Collision Maps Solution

Complex Movement & Collision Maps
Provided Files
● example.gba
● main.c
● myLib.c
● myLib.h
● game.c
● game.h
● house.bmp
● house.c
● house.h
● spritesheet.bmp
● spritesheet.c
● spritesheet.h ● collisionmap.bmp
Files to Edit/Add
● game.c
● collisionmap.c
● collisionmap.h
● Makefile
● .vscode
○ tasks.json


Instructions
TODO 1 - Complex Camera Movement
We want our pikachu to walk only on the screen, and have the camera follow it without showing something outside of the world.
● TODO 1.0
○ In game.c, in the updatePlayer() function, add in the sprite and camera movement.
● TODO 1.1
○ In game.c in the drawPlayer() function, set pikachu’s screen row and column in the shadowOAM
■ Hint: the screen row is the world row minus the background vertical offset; the screen col is the world col minus the background horizontal offset

Your pikachu should now be able to walk around and see the entire map, but not off of the edge. The pikachu should always be in the middle of the screen unless at the edge of the map (see the example.gba).

TODO 2.0 - Collision Map
Now we want our pikachu to treat the visuals of the map as if they were actual barriers to movement.
● TODO 2.0
○ The collision map has been created for you. Open collisionmap.bmp in Usenti and export it. Remember that we want to check the colors of each pixel, so take that into account when choosing export settings. As such, export the collision map as bitmap(GBA) and select 16 bpp. Uncheck the Pal box.
● TODO 2.1
○ Include collisionmap.h in game.c.
● TODO 2.2
○ Update your movement code to only allow pikachu to move if the collision map allows it (is white) in the areas that you need to check. Your pikachu should not be able to walk over the house or the bushes. The pikachu should be able to walk between the house and the bushes on the right and top, in both directions.


You will know if it runs correctly if you:
● Your project.gba has the same behavior as the example.gba provided for you. The example.gba pikachu is green, but project.gba pikachu should be yellow.
Tips
● Review recitation materials: Canvas > Recitation Materials
○ Complex movement
○ Collision maps

Submission Instructions
Zip up your entire project folder, including all source files, the Makefile, and everything produced during compilation (including the .gba file). Submit this zip on Canvas. Name your submission Lab09_FirstameLastname, for example: “Lab09_TeamRocket.zip”.

More products