Ray casting engine implemented on the mBuino platform using the ST7735 LCD controller.

Dependencies:   LCD_ST7735 mbed

Ray casting engine written to test performance of the LCD_ST7735 library I wrote as a learning exercise on the mbed platform.

Committer:
taylorza
Date:
Sat Oct 25 04:23:24 2014 +0000
Revision:
3:e32f5c25a352
Parent:
2:4de2cb6f6fe8
Updated the engine to use the latest LCD_ST7735 library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
taylorza 0:303768292f44 1 #include "mbed.h"
taylorza 0:303768292f44 2 #include "common.h"
taylorza 0:303768292f44 3 #include "LCD_ST7735.h"
taylorza 0:303768292f44 4 #include "Color565.h"
taylorza 0:303768292f44 5 #include "Raycaster.h"
taylorza 0:303768292f44 6
taylorza 0:303768292f44 7 static const uint8_t g_map[] =
taylorza 0:303768292f44 8 {
taylorza 0:303768292f44 9 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
taylorza 0:303768292f44 10 1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,4,
taylorza 0:303768292f44 11 1,0,1,1,1,1,0,1,1,0,1,1,1,1,0,4,
taylorza 0:303768292f44 12 1,0,1,0,0,0,0,1,1,0,0,0,0,1,0,4,
taylorza 0:303768292f44 13 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
taylorza 0:303768292f44 14 1,1,3,4,3,3,3,0,0,2,2,2,2,2,2,4,
taylorza 0:303768292f44 15 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
taylorza 0:303768292f44 16 1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,4,
taylorza 0:303768292f44 17 1,1,1,1,0,0,1,0,0,1,0,0,3,3,3,4,
taylorza 0:303768292f44 18 3,0,0,0,0,0,1,0,0,1,0,0,0,0,0,4,
taylorza 0:303768292f44 19 3,0,0,1,1,1,0,0,0,0,1,1,1,0,0,4,
taylorza 0:303768292f44 20 3,0,0,1,0,0,0,0,0,0,0,0,1,0,0,4,
taylorza 0:303768292f44 21 3,0,0,1,0,0,2,4,4,2,0,0,1,0,0,4,
taylorza 0:303768292f44 22 3,0,0,1,0,0,0,0,0,0,0,0,1,0,0,4,
taylorza 0:303768292f44 23 3,0,0,0,0,1,0,0,0,0,1,0,0,0,0,4,
taylorza 0:303768292f44 24 3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,
taylorza 0:303768292f44 25 };
taylorza 0:303768292f44 26
taylorza 0:303768292f44 27 static const uint16_t g_palette[] =
taylorza 0:303768292f44 28 {
taylorza 0:303768292f44 29 Color565::Black,
taylorza 0:303768292f44 30 Color565::Red,
taylorza 0:303768292f44 31 Color565::Green,
taylorza 0:303768292f44 32 Color565::Blue,
taylorza 0:303768292f44 33 Color565::Yellow
taylorza 0:303768292f44 34 };
taylorza 0:303768292f44 35
taylorza 0:303768292f44 36 AnalogIn stickX(P0_11);
taylorza 0:303768292f44 37 AnalogIn stickY(P0_13);
taylorza 0:303768292f44 38
taylorza 0:303768292f44 39 main()
taylorza 0:303768292f44 40 {
taylorza 0:303768292f44 41 Raycaster rayCaster(0, 10, 160, 108,
taylorza 0:303768292f44 42 96, CELL_SIZE / 2,
taylorza 0:303768292f44 43 g_map, 16, 16,
taylorza 0:303768292f44 44 g_palette);
taylorza 0:303768292f44 45
taylorza 0:303768292f44 46 rayCaster.setCellPosition(8, 8);
taylorza 0:303768292f44 47 while (true)
taylorza 0:303768292f44 48 {
taylorza 0:303768292f44 49 rayCaster.renderFrame();
taylorza 0:303768292f44 50
taylorza 0:303768292f44 51 if (stickX < 0.3) rayCaster.rotate(-0.1);
taylorza 0:303768292f44 52 else if (stickX > 0.7) rayCaster.rotate(0.1);;
taylorza 0:303768292f44 53
taylorza 0:303768292f44 54 if (stickY < 0.3) rayCaster.move(4);
taylorza 0:303768292f44 55 else if (stickY > 0.7) rayCaster.move(-4);
taylorza 0:303768292f44 56 }
taylorza 0:303768292f44 57 }
taylorza 0:303768292f44 58
taylorza 2:4de2cb6f6fe8 59
taylorza 2:4de2cb6f6fe8 60