I was interested in seeing what frame rate I got out of it and how much it warmed the PI.
The change to get the texture loaded was to split the five image files (four x asteroid + player ship) into two rows each.
I added this code into the DrawPlayerShip function.
if (Player.dir >= 12) {
spriterect.y = SHIPHEIGHT;
spriterect.x -= SHIPWIDTH*12;
}
So for directions 0-11, it uses the top row and 12-23 the 2nd row. There’s similar code in the DrawAsteroids function.
I’m getting about 55 fps, twice the frame rate of the 3B+. Sustained play over five minutes got the temperature up to 51C, but if I start the game and let asteroids drift about for a while it settles somewhere around 48-50C.
I have a fan fitted plugged into the 3.3V that runs all the time but is almost inaudible. There’s also a 5V setting that can be used for extra cooling but you only need that when temperatures get up to the 80C mark. There’s also 3 copper heat sinks stuck on three chips on the motherboard.
It’s very playable at 55 fps. This isn’t full screen BTW but on a 1024 x 768 playing area. There’s just one last change I’ve added. I combined the uname code to detect if it is running on a Pi and in that case display the temperature on the Window caption. If you look closely at the image above you’ll see it says 43.82 C. I use a counter and check against so it only reads the temperature once a second and caches the result.