テトリス, Cpp, Arduino
キャンバスは以下のページからダウンロードできます.
グラフィック液晶に関する情報をあつかいます. 扱うグラフィック液晶は’SG12864ASLB-GB’です.
TerminalPro4用のアプリケーション例を挙げていきます.
- NON: 何もしないプログラム
- GLCDTest: GLCD動作確認プログラム(fps表示)
- CtrlTest: コントローラ動作確認プログラム
- SerialMonitor: シリアルモニター
- MediaPlyer: 音楽プレイヤー
- Bullet: シューティングゲーム(東方風)
- NadekoAdventure: 千石撫子(化物語)横スクロールゲーム
- Notes: 音ゲー
これらアプリケーションはダウンロードページ から取得したフォルダ内にある’Exapmle’フォルダに存在します.
ここでは, グラフィック液晶’SG12864ASLB-GB’の操作方法を説明します. これは, いわゆるライブラリの説明ではなく, ハードウェアそのものに対する操作方法です. この内容から, 自作のライブラリなどを製作することが可能です.
説明項目は以下のとおりです.
- 入手方法
- ピン配置
- 名称
- 実際に使ってみる
- 参考文献
TerminalPro4開発セットをダウンロードすることができます. TerminalPro4用サンプルアプリケーション, TerminalPro用Bootプログラムなどが含まれます.
一部のサンプルプログラムは音楽ファイルを使用します. 音楽ファイルが存在しないときプログラムは正しく動作しません. ただ, 筆者は著作権の問題より音楽ファイルをアップロードすることができません. 各音楽ファイルを用意していただく必要があります.
bashでもなく, zshでもなく, cshでもなく, 純粋なshで動く, テトリスの公式ガイドラインにそったテトリスを作りたい.
サイズ固定のスタックを扱うライブラリを紹介します.
このStackは, 以下の特徴を持ちます.
- std::stack が使用できない状況下でのスタックの使用
- メモリを贅沢に使用しないサイズ固定スタック
- 例外処理に対応していない環境下での使用
サイズ固定の待ち行列ライブラリを紹介します.
このQueueは, 以下の特徴を持ちます.
- std::queue が使用できない状況下での待ち行列の使用
- メモリを贅沢に使用しないサイズ固定待ち行列
- 例外処理に対応していない環境下での使用
GLCDControllerとは、グラフィック液晶SG12864ASLB-GBを操作するものです. GLCDControllerの特徴は以下の通りです.
- 2Dグラフィック操作ライブラリCanvasの利点を受け継ぎ
- 高いフレームレート
このGLCDControllerのメンバ変数としてCanvasがあるのですが, このCanvasが2Dグラフィック操作を簡単にします. Canvasについての特徴はCanvasの特徴を参照してください.
画面の更新速度ですが,最高60fps以上(最高fps85fps, 平均60fps, 全画面更新15fps)まで出せます(ArduinoUno 16Mhzで検証).
GLCDControllerを改良、強化、何でもしてください(;´∀`)
サイズ固定のスタックを扱うライブラリを紹介します.
このStackは, 以下の特徴を持ちます.
- std::stack が使用できない状況下でのスタックの使用
- メモリを贅沢に使用しないサイズ固定スタック
- 例外処理に対応していない環境下での使用
サイズ固定のスタックを扱うライブラリを紹介します.
このStackは, 以下の特徴を持ちます.
- std::stack が使用できない状況下でのスタックの使用
- メモリを贅沢に使用しないサイズ固定スタック
- 例外処理に対応していない環境下での使用
サイズ固定の待ち行列ライブラリを紹介します.
このQueueは, 以下の特徴を持ちます.
- std::queue が使用できない状況下での待ち行列の使用
- メモリを贅沢に使用しないサイズ固定待ち行列
- 例外処理に対応していない環境下での使用
ここでは, Listの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- インクルード
ここでは, Stringの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- インクルード
サイズ固定の待ち行列ライブラリを紹介します.
このQueueは, 以下の特徴を持ちます.
- std::queue が使用できない状況下での待ち行列の使用
- メモリを贅沢に使用しないサイズ固定待ち行列
- 例外処理に対応していない環境下での使用
ここでは, Listの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- インクルード
ここでは, Listの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- インクルード
ここでは, Stringの導入方法を説明します. 説明項目は以下のとおりです.
- ダウンロード
- インクルード