« マッピーのフォント | トップページ | マッピーで1000行 »

2016年2月17日 (水)

マッピーのマップ

マッピーというゲームのマップを作らねばならない。
マップエディタを作ろうと思っていたが、マップの大半は床。テキストエディタで記述することにした。
こんな感じである。

//	----------------------------------------
//	マップデータ
//	----------------------------------------
PROGMEM const uint8_t MapData[][64] = {
//	"0123456789012345678901234567890123456789012345678901234567890123";
	"(---*-) (---------+-----) (-----------) (----*------) (-------)",
	"(---+-) (----*----------) (-----------) (-------+---) (-------)",
	"(----->=<--------------->=<----------->=<----------->=<-------)",
};

床が'-'、トランポリンが'='である。ドアは+と*である。
このデータはテーブルを使ってキャラデータのアドレスに変換する。
キャラデータは画像データの左上から、0x00, 0x01...と表し、1キャラ分のデータ8byteをかけている。

//	----------------------------------------
//	マップデータ→キャラデータな変換テーブル
//	----------------------------------------
PROGMEM const uint16_t MapTable[] = {
	0x40*8, 0x6f*8, 0x6f*8, 0x6f*8, 0x6f*8, 0x6f*8, 0x6f*8, 0x6f*8,		//  !"#$%&'
	0x44*8, 0x46*8, 0x54*8, 0x55*8, 0x46*8, 0x42*8, 0x6f*8, 0x6f*8,		// ()*+,-./
	0x60*8, 0x61*8, 0x62*8, 0x63*8, 0x64*8, 0x65*8, 0x66*8, 0x67*8, 	// 01234567
	0x68*8, 0x69*8, 0x6f*8, 0x6f*8, 0x50*8, 0x58*8, 0x52*8, 0x6f*8, 	// 89:;<=>?
};


まあ、こんな感じ。テキトーに書いたにしては、うまく表示できた。

« マッピーのフォント | トップページ | マッピーで1000行 »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/24707/64282684

この記事へのトラックバック一覧です: マッピーのマップ:

« マッピーのフォント | トップページ | マッピーで1000行 »

最近のトラックバック