added title sprites, added comma and apostrophe to fonts
This commit is contained in:
parent
b40277bdc5
commit
59a09e1cdf
8 changed files with 75 additions and 23 deletions
|
@ -26,3 +26,5 @@ Your port path (`-p` argument) may differ depending on your system.
|
||||||
Font libraries used:
|
Font libraries used:
|
||||||
- [Font3x5](https://github.com/filmote/Font3x5)
|
- [Font3x5](https://github.com/filmote/Font3x5)
|
||||||
- [Font4x6](https://github.com/filmote/Font4x6)
|
- [Font4x6](https://github.com/filmote/Font4x6)
|
||||||
|
|
||||||
|
Slightly modified to add missing comma and apostrophe characters.
|
||||||
|
|
28
slangin.ino
28
slangin.ino
|
@ -5,8 +5,8 @@ License: WTFPL
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Arduboy2.h>
|
#include <Arduboy2.h>
|
||||||
#include "src/fonts/Font3x5.h"
|
#include "src/Font3x5.h"
|
||||||
#include "src/fonts/Font4x6.h"
|
#include "src/Font4x6.h"
|
||||||
|
|
||||||
Arduboy2 arduboy;
|
Arduboy2 arduboy;
|
||||||
Font4x6 font4x6 = Font4x6();
|
Font4x6 font4x6 = Font4x6();
|
||||||
|
@ -67,6 +67,14 @@ const uint8_t PROGMEM spriteAdjust[] = {
|
||||||
0x24, 0x66, 0xe7, 0x66, 0x24,
|
0x24, 0x66, 0xe7, 0x66, 0x24,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const uint8_t PROGMEM spriteWeed[] = {
|
||||||
|
30, 30,
|
||||||
|
0x00, 0x00, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x78, 0x07, 0x06, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0x3c, 0xc1, 0x02, 0x04, 0x08, 0x10, 0x20, 0xc0, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xc0, 0x20, 0x10, 0x08, 0x04, 0x04, 0xc2, 0x39, 0x07, 0x00, 0x00,
|
||||||
|
0x38, 0x50, 0x90, 0x90, 0x90, 0x23, 0x24, 0x48, 0x50, 0x60, 0x81, 0x26, 0x08, 0xe7, 0x00, 0x90, 0xe7, 0x08, 0x26, 0x01, 0x60, 0x50, 0x48, 0x26, 0xa1, 0x90, 0x90, 0x90, 0x50, 0x30,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x22, 0x32, 0x2a, 0x24, 0x22, 0x10, 0x0a, 0x08, 0x0c, 0x08, 0x12, 0x21, 0x24, 0x2a, 0x32, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
/**************/
|
/**************/
|
||||||
/* game state */
|
/* game state */
|
||||||
/**************/
|
/**************/
|
||||||
|
@ -139,9 +147,11 @@ void loop() {
|
||||||
|
|
||||||
switch (sGameState) {
|
switch (sGameState) {
|
||||||
case STATE_TITLE:
|
case STATE_TITLE:
|
||||||
arduboy.setCursor(25, 10);
|
Sprites::drawOverwrite(0, 0, spriteWeed, 0);
|
||||||
arduboy.print(F("Slangin' v0.9"));
|
Sprites::drawOverwrite(98, 0, spriteWeed, 0);
|
||||||
menu[0] = F("Hit the Streets");
|
arduboy.setCursor(42, 15);
|
||||||
|
arduboy.print(F("Slangin'"));
|
||||||
|
menu[0] = F("Hit the Streets!!");
|
||||||
menuLength = 1;
|
menuLength = 1;
|
||||||
menuSmall = false;
|
menuSmall = false;
|
||||||
menuCols = false;
|
menuCols = false;
|
||||||
|
@ -255,6 +265,7 @@ void loop() {
|
||||||
dialogSmall = false;
|
dialogSmall = false;
|
||||||
drawDialog();
|
drawDialog();
|
||||||
drawYesNoPrompt();
|
drawYesNoPrompt();
|
||||||
|
sPreviousGameState = STATE_TURN_MENU;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STATE_INFO_DIALOG:
|
case STATE_INFO_DIALOG:
|
||||||
|
@ -268,15 +279,12 @@ void loop() {
|
||||||
case STATE_DID_WEED_DIALOG_1:
|
case STATE_DID_WEED_DIALOG_1:
|
||||||
dialog[0] = "You hallucinate on the";
|
dialog[0] = "You hallucinate on the";
|
||||||
dialog[1] = "wildest trip of your";
|
dialog[1] = "wildest trip of your";
|
||||||
dialog[2] = "life stumble onto the";
|
dialog[2] = "life, stumble onto the";
|
||||||
dialog[3] = "subway tracks and get";
|
dialog[3] = "subway tracks, and get";
|
||||||
dialog[4] = "creamed by a train.";
|
dialog[4] = "creamed by a train.";
|
||||||
dialogLength = 5;
|
dialogLength = 5;
|
||||||
dialogSmall = true;
|
dialogSmall = true;
|
||||||
drawDialog();
|
drawDialog();
|
||||||
// draw a comma manually since the font doesn't have one
|
|
||||||
arduboy.drawRect(32, 34, 1, 1, WHITE);
|
|
||||||
arduboy.drawRect(31, 35, 1, 1, WHITE);
|
|
||||||
sPreviousGameState = STATE_DID_WEED_DIALOG_2;
|
sPreviousGameState = STATE_DID_WEED_DIALOG_2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
|
|
||||||
#define CHAR_EXCLAMATION 33
|
#define CHAR_EXCLAMATION 33
|
||||||
#define CHAR_PERIOD 46
|
#define CHAR_PERIOD 46
|
||||||
|
#define CHAR_COMMA 44
|
||||||
|
#define CHAR_APOSTROPHE 39
|
||||||
#define CHAR_LETTER_A 65
|
#define CHAR_LETTER_A 65
|
||||||
#define CHAR_LETTER_Z 90
|
#define CHAR_LETTER_Z 90
|
||||||
#define CHAR_LETTER_A_LOWER 97
|
#define CHAR_LETTER_A_LOWER 97
|
||||||
|
@ -29,7 +31,7 @@
|
||||||
|
|
||||||
const uint8_t PROGMEM font_images[] = {
|
const uint8_t PROGMEM font_images[] = {
|
||||||
3, 8,
|
3, 8,
|
||||||
|
|
||||||
// #65 Letter 'A'.
|
// #65 Letter 'A'.
|
||||||
0x1F, // ░░░▓▓▓▓▓
|
0x1F, // ░░░▓▓▓▓▓
|
||||||
0x05, // ░░░░░▓░▓
|
0x05, // ░░░░░▓░▓
|
||||||
|
@ -161,7 +163,7 @@ const uint8_t PROGMEM font_images[] = {
|
||||||
0x13, // ░░░▓░░▓▓
|
0x13, // ░░░▓░░▓▓
|
||||||
|
|
||||||
#ifdef USE_LOWER_CASE
|
#ifdef USE_LOWER_CASE
|
||||||
|
|
||||||
// #97 Letter 'a'.
|
// #97 Letter 'a'.
|
||||||
0x0C, // ░░░░▓▓░░
|
0x0C, // ░░░░▓▓░░
|
||||||
0x12, // ░░░▓░░▓░
|
0x12, // ░░░▓░░▓░
|
||||||
|
@ -352,6 +354,16 @@ const uint8_t PROGMEM font_images[] = {
|
||||||
// #46 Symbol '.'.
|
// #46 Symbol '.'.
|
||||||
0x00, // ░░░░░░░░
|
0x00, // ░░░░░░░░
|
||||||
0x10, // ░░░▓░░░░
|
0x10, // ░░░▓░░░░
|
||||||
|
0x00, // ░░░░░░░░
|
||||||
|
//
|
||||||
|
// #44 Symbol ','.
|
||||||
|
0x20, // ░░▓░░░░░
|
||||||
|
0x10, // ░░░▓░░░░
|
||||||
|
0x00, // ░░░░░░░░
|
||||||
|
//
|
||||||
|
// #39 Symbol '''.
|
||||||
|
0x00, // ░░░░░░░░
|
||||||
|
0x03, // ░░░░░░▓▓
|
||||||
0x00 // ░░░░░░░░
|
0x00 // ░░░░░░░░
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -388,12 +400,12 @@ void Font3x5::printChar(const char c, const int8_t x, int8_t y) {
|
||||||
++y;
|
++y;
|
||||||
|
|
||||||
switch (c) {
|
switch (c) {
|
||||||
|
|
||||||
case CHAR_LETTER_A ... CHAR_LETTER_Z:
|
case CHAR_LETTER_A ... CHAR_LETTER_Z:
|
||||||
idx = c - CHAR_LETTER_A;
|
idx = c - CHAR_LETTER_A;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef USE_LOWER_CASE
|
#ifdef USE_LOWER_CASE
|
||||||
case CHAR_LETTER_A_LOWER ... CHAR_LETTER_Z_LOWER:
|
case CHAR_LETTER_A_LOWER ... CHAR_LETTER_Z_LOWER:
|
||||||
idx = c - CHAR_LETTER_A_LOWER + 26;
|
idx = c - CHAR_LETTER_A_LOWER + 26;
|
||||||
break;
|
break;
|
||||||
|
@ -402,19 +414,27 @@ void Font3x5::printChar(const char c, const int8_t x, int8_t y) {
|
||||||
case CHAR_NUMBER_0 ... CHAR_NUMBER_9:
|
case CHAR_NUMBER_0 ... CHAR_NUMBER_9:
|
||||||
idx = c - CHAR_NUMBER_0 + FONT_NUMBER_INDEX;
|
idx = c - CHAR_NUMBER_0 + FONT_NUMBER_INDEX;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CHAR_EXCLAMATION:
|
case CHAR_EXCLAMATION:
|
||||||
idx = FONT_EXCLAMATION_INDEX;
|
idx = FONT_EXCLAMATION_INDEX;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CHAR_PERIOD:
|
case CHAR_PERIOD:
|
||||||
idx = FONT_PERIOD_INDEX;
|
idx = FONT_PERIOD_INDEX;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case CHAR_COMMA:
|
||||||
|
idx = FONT_PERIOD_INDEX + 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CHAR_APOSTROPHE:
|
||||||
|
idx = FONT_PERIOD_INDEX + 2;
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (idx > -1) {
|
if (idx > -1) {
|
||||||
|
|
||||||
if (_textColor == WHITE) {
|
if (_textColor == WHITE) {
|
||||||
Sprites::drawSelfMasked(x, y, font_images, idx);
|
Sprites::drawSelfMasked(x, y, font_images, idx);
|
||||||
}
|
}
|
|
@ -10,6 +10,8 @@
|
||||||
|
|
||||||
#define CHAR_EXCLAMATION 33
|
#define CHAR_EXCLAMATION 33
|
||||||
#define CHAR_PERIOD 46
|
#define CHAR_PERIOD 46
|
||||||
|
#define CHAR_COMMA 44
|
||||||
|
#define CHAR_APOSTROPHE 39
|
||||||
#define CHAR_LETTER_A 65
|
#define CHAR_LETTER_A 65
|
||||||
#define CHAR_LETTER_Z 90
|
#define CHAR_LETTER_Z 90
|
||||||
#define CHAR_LETTER_A_LOWER 97
|
#define CHAR_LETTER_A_LOWER 97
|
||||||
|
@ -416,8 +418,19 @@ const uint8_t PROGMEM font_images[] = {
|
||||||
0x00, // ░░░░░░░░
|
0x00, // ░░░░░░░░
|
||||||
0x20, // ░░▓░░░░░
|
0x20, // ░░▓░░░░░
|
||||||
0x00, // ░░░░░░░░
|
0x00, // ░░░░░░░░
|
||||||
0x00 // ░░░░░░░░
|
0x00, // ░░░░░░░░
|
||||||
|
|
||||||
|
// #44 Symbol ','.
|
||||||
|
0x40, // ░▓░░░░░░
|
||||||
|
0x20, // ░░▓░░░░░
|
||||||
|
0x00, // ░░░░░░░░
|
||||||
|
0x00, // ░░░░░░░░
|
||||||
|
//
|
||||||
|
// #39 Symbol '''.
|
||||||
|
0x00, // ░░░░░░░░
|
||||||
|
0x03, // ░░░░░░▓▓
|
||||||
|
0x00, // ░░░░░░░░
|
||||||
|
0x00 // ░░░░░░░░
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -452,12 +465,12 @@ void Font4x6::printChar(const char c, const int8_t x, int8_t y) {
|
||||||
++y;
|
++y;
|
||||||
|
|
||||||
switch (c) {
|
switch (c) {
|
||||||
|
|
||||||
case CHAR_LETTER_A ... CHAR_LETTER_Z:
|
case CHAR_LETTER_A ... CHAR_LETTER_Z:
|
||||||
idx = c - CHAR_LETTER_A;
|
idx = c - CHAR_LETTER_A;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef USE_LOWER_CASE
|
#ifdef USE_LOWER_CASE
|
||||||
case CHAR_LETTER_A_LOWER ... CHAR_LETTER_Z_LOWER:
|
case CHAR_LETTER_A_LOWER ... CHAR_LETTER_Z_LOWER:
|
||||||
idx = c - CHAR_LETTER_A_LOWER + 26;
|
idx = c - CHAR_LETTER_A_LOWER + 26;
|
||||||
break;
|
break;
|
||||||
|
@ -466,19 +479,27 @@ void Font4x6::printChar(const char c, const int8_t x, int8_t y) {
|
||||||
case CHAR_NUMBER_0 ... CHAR_NUMBER_9:
|
case CHAR_NUMBER_0 ... CHAR_NUMBER_9:
|
||||||
idx = c - CHAR_NUMBER_0 + FONT_NUMBER_INDEX;
|
idx = c - CHAR_NUMBER_0 + FONT_NUMBER_INDEX;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CHAR_EXCLAMATION:
|
case CHAR_EXCLAMATION:
|
||||||
idx = FONT_EXCLAMATION_INDEX;
|
idx = FONT_EXCLAMATION_INDEX;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CHAR_PERIOD:
|
case CHAR_PERIOD:
|
||||||
idx = FONT_PERIOD_INDEX;
|
idx = FONT_PERIOD_INDEX;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case CHAR_COMMA:
|
||||||
|
idx = FONT_PERIOD_INDEX + 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CHAR_APOSTROPHE:
|
||||||
|
idx = FONT_PERIOD_INDEX + 2;
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (idx > -1) {
|
if (idx > -1) {
|
||||||
|
|
||||||
if (_textColor == WHITE) {
|
if (_textColor == WHITE) {
|
||||||
Sprites::drawSelfMasked(x, y, font_images, idx);
|
Sprites::drawSelfMasked(x, y, font_images, idx);
|
||||||
}
|
}
|
|
@ -385,6 +385,7 @@ void handleFightMenuInput() {
|
||||||
sPreviousGameState = pMoney >= 1200
|
sPreviousGameState = pMoney >= 1200
|
||||||
? STATE_HEAL_DIALOG : STATE_TURN_MENU;
|
? STATE_HEAL_DIALOG : STATE_TURN_MENU;
|
||||||
sGameState = STATE_INFO_DIALOG;
|
sGameState = STATE_INFO_DIALOG;
|
||||||
|
// TODO: draw apostrophe :(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue