Graphics_2D
2D graphicsのページ
ツール
ベクタ画像
- Illustrator
- Flash
フィルタ
- Photoshop
- Gimp
プログラム
GUI作成
- デザイナ(C#とか)
- WPF
- Flash(ActionScript)
- HTML/CSS
描画の高速化・安定化
- ダブルバッファリング
ゲームループ中に大量の描画を行う場合、描画の過程が目についてチラつく。このため、実際の画面とは別の画面(画像)に一度描画し、その内容を画面に一気に反映させる(ループと画面への描画を1:1対応にする)ことでこの現象を解消することができる。フレームワークによっては勝手にこの処理を行ってくれたりもする(.netやAndroid)
- フォームの問題
- ループ処理とブロッキング
- プログラム中で時間がかかる処理を行うと、描画処理を解決できないのでGUIが固まる。解決方法としては、マルチスレッドにするか、処理の最中にイベント(クリックやキー入力など)の取得+その動作処理を行う部分を挟むかのどちらかになる。後者は、C#であればApplication.DoEventメソッドを呼び出せばよい。
- マルチスレッドでの問題
- 多くの場合、GUI用のクラスはスレッドセーフ(定義したスレッドと別のスレッドで操作可能)ではない。そのため、メインスレッドとは別のスレッドで行った処理をGUIに反映させるには、一時的にメインスレッドで操作を行うような命令を出す必要がある。例としては、BeginInvoke(C#)、Handler(java:Android)など。ゲームループ型のプログラムであれば、スレッドセーフなパラメータを操作して、メインループの中でその値の変化をチェックして反映させればよいため、特に面倒なことはないが、イベント型の場合は注意。
Copyright(C) by 芝浦工業大学 工学部通信工学科, 森野研究室. All Rights Reserved.