投稿記事

2020年 06月の記事 (4)

きのもの! 2020/06/20 02:27

GamebuinoMETAメモ - 3

調子乗ったらCPU負荷が200%になった。

前々回こちらでFPS30がしっくり来るんじゃねっぽい事言っちゃった。
前回まで160×128:30FPSでやってたけど、それでマップチップで画面埋める処理やったらCPU的に無理だった。
描画だけでがっつりパワー持ってかれた…反転描画だけでもパワー食われる(メモリ取るかCPUパワー取るか…)。

なので仕方なくGamebuinoデフォルトとなる80x64:FPS25でやってパワー節約。
フォントも8ドットだとでっかいので6ドットで作り直した。
これ以上縮めるとひらがなカタカナは読めない…。

今回の対処だけでマップチップ判定作るのより時間かかるとか…。

今見たら…

メモリ10キロバイト切ってんじゃん…。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

きのもの! 2020/06/13 02:29

GamebuinoMETAメモ - 2

ビットマップ文字表示した


こんな感じ。
8ピクセル四方の文字画像をペタペタ貼る簡易メソッド。

メモ

ArduinoのString型はUTF-8。
半角英数字は1バイト。
全角ひらがなカタカナと全角英数字は3バイト。

こんな感じのメソッド作ってペタペタ文字貼った。


void drawStr(int16_t x, int16_t y, String str){
	uint32_t c;
	int dx = 0;
	int length = str.length();
	for(int sp = 0; sp < length; sp++){
		if(str[sp] < 0xe2){
			//1バイトascii
			c = uint32_t(str[sp]) - 0x20;
		}else{
			//3バイトひらがな と カタカナ と 全角英語記号数字
			c = (uint32_t(str[sp] << 16) | uint32_t(str[sp + 1] << 8) | uint32_t(str[sp + 2])) - (uint32_t(str[sp] << 16) | uint32_t(str[sp + 1] << 8) | uint32_t(0x80));
			if((uint32_t(str[sp]) == 0xe2) && (uint32_t(str[sp + 1]) == 0x80) && (uint32_t(str[sp + 2]) == 0xa6)){
				c = 247;	//「…」はUTF8で割り当てられていない場所を使う。
			}else{
				switch(str[sp + 1]){
					case 0x80:
						c += 0x0060;
						break;
					case 0x81:
						c += 0x00a0;
						break;
					case 0x82:
						c += 0x0e0;
						break;
					case 0x83:
						c += 0x0120;
						break;
					case 0xBC:
						c += 0x0000;
						break;
					case 0xBD:
						c += 0x0040;
						break;
				}
			}
			sp += 2;
		}
		gb.display.drawImage(x + dx, y, strGrpImg, (c % 16) * 8, (c / 16) * 8, 8, 8);
		dx += 8;
	}
}

(※ただの抜粋なのでこれだけじゃ何もできません。ごめんよ…。)
考える力や応用力はどぶに落としてしまったので基本的に力業じゃぁい。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

きのもの! 2020/06/08 00:00

有料プラン一旦終了

流石に活動らしい活動できていない状態で有料プラン開けとくのはマズいだろっていう事で、この度一旦有料プランを閉じさせていただきました。
なんかあったらまた再開するかもしないかも。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

きのもの! 2020/06/07 22:45

GamebuinoMETAメモ

すごく久しいです。
精神的にまともな創作ができない状態がずっと続いてました。
まだ微妙です。

それは置いといて。

GamebuinoMETA


海外のミニゲーム機。 → 公式サイトはこちら
Arduinoとか言うちっさいコンピュータシリーズから派生した(って言って合ってるか不安だけど)手のひらサイズのゲーム機。
よくアマゾンとかにある海外パチモンとかじゃなくちゃんとしたゲーム機。
公式サイトで買うと1万ちょい(ちなみにユーロ圏)。
最初の頃買ったらスイッチが不良で2~3日で大破し、自力修理しようとして大失敗してもう一台買った個人的に思い入れ深い一品。今はもうちゃんとした部品になってて大丈夫だぞ。
2軸4ボタン(十字・メニュー・ホーム・A・B)、画面は 80x64:16bitカラー か 160x128:16色パレット の2種。公式サイトはフランス語か英語。

自分が感じたところでは「自作ゲーム作って楽しむ」のが主な楽しみ方だと思う。それでいいのだよ、それで。
前作モノクロゲーム機「Gamebuino」もあるけど、今買えるかはちょっとわからない。
これに関しては前は国内で取り扱ってるところあったよ(今は無いっぽい)。

他には似た方向性の小型ゲーム機で「Arduboy」ってのもあるよ。
こっちはバックライトモノクロ1ビット(黒ベースに白)で2軸2ボタン(方向キー・A・B)薄くて小さいぞ、ついでにこっちは公式サイトに日本語フォーラムあるよ。

どっちもC言語でゲーム作れるよ。
Arduinoの公式統合開発環境使うのもいいし、VSCodeで作るのも良し。
サイトが英語でとっつき辛いかなと思われるかもしれないけど…ガッツだガッツ。DeepLをぶんぶん振り回せ。

ionicで何か作るのよりずっと楽や…。

それは置いといて。

個人的メモ

GamebuinoMETAのAPIリファレンスに不十分なところがちらほらあるのでメモしたい気分になった。(先発の無印Gamebuinoも十分じゃないんだよなぁ)

gb.setFrameRate(uint8_t rate);

フレームレートをいじるやーつ。
デフォルトは25、ヨーロッパらしい数値。最大は50、ヨーロッパらしい。
その中でしっくりくる数値は30かな、と。
20か40にすればRPGツクールXPっぽくなるぞ。

void setup(){
	gb.begin();
    gb.setFrameRate(30);
}

これでOK。



本当はただここに自分用メモをちょっと書くだけのつもりだったんだけど…。
GamebuinoMETA使う人が増えて欲しいなと思ってつい紹介文も書いてしまった。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

限定特典から探す

記事を検索