わくわくプログラミング自習室 Blogs
Direct2Dは凄い
- 2010-03-09 (火)
- C言語(Windows)
「初級編」のサンプル「宇宙戦艦ディフェンスゲーム」をDirect2Dに移植してみました。
http://i-libro.net/game/playroom/showgame.php?gameid=84
※Windows XPでは動作しません。7かVista SP2が必要です。
速くてしかも軽いです。左画像がGDI+版、右画像がDirect2D版ですが、倍の25fpsで動かしてもCPU使用率が15~20%程度に収まってしまい、クロックダウンしてしまっています。50fpsでも使用率25%程度。ただし、GPUには負荷がかかっているらしく、ゲームの実行中はウィンドウを動かすなどのデスクトップ操作がガタつくことがありました。
また、60fpsではゲームがまともに動かず、終了させるのも不安定な状態になりましたが、これはプログラムの作り方の問題か(ムリヤリ改造したので)、パソコンのスペック不足かもしれません。
テスト環境はCore 2 Duo2.0GHz、GPUはIntel 965チップセット内蔵という一昔前のビジネスノートなので、それでこれだけ動くなら大したものだと思います。Windows XPで動かないのが最大のネックですが、最近になってようやく脱XPが進み始めたようなので、Direct2Dを使ったソフトが色々出るといいですね。
- Comments: 0
- Trackbacks: 0
GDI+でどこまでできるか
- 2010-03-06 (土)
- C言語(Windows)
4月に『13歳からはじめる ゼロからのC言語ゲームプログラミング教室 初級編』という新刊が出るのですが、そこではDXライブラリやDirect3Dを使わず、GDI+だけでゲームを作成しています。GDI+を選んだのは、単に「Windows APIの解説書だから」というのが一番の理由なのですが、「カジュアルゲームならGDI+でも大丈夫なんじゃないのか」という読みもありました。
というのは……
- Comments: 0
- Trackbacks: 0
[ActionScript3]Adobe AIRのドラッグアンドドロップのバグ?
- 2009-10-28 (水)
- ActionScript
別件でFlex Builder 3を使ってAdobe AIRアプリを作っていたのですが、あれ所々WindowsとMacで動作が違うのですよね。そのひとつでようやく動作がだいたい掴めたことがあるのでメモしておきます。
ドラッグでオブジェクトを動かすプログラムで、Winでまともに動いたものをMacで動かすと微妙に位置がずれます(逆の言い方もできますが)。どうやらドラッグドロップ時に各イベントハンドラに返されるマウス座標の値が、WinとMacで違うようです。どっちかがおかしいのかと思ったのですがどっちもマニュアルの記述と少しずつ違うような……?
- Comments: 0
- Trackbacks: 0
【告知】ゲームアップローダーをテスト公開!
- 2009-10-15 (木)
- 運営
前々から進めておりましたゲームアップローダーをテスト公開しました。
http://www.i-libro.net/game/gameupload/
・専用のファイル管理ウィンドウを用意しました。
・アップロードしたゲームは、iリブロの投稿ゲーム一覧で公開されます。
・Java Web Startでは、面倒なJNLPファイルを自動生成します。
・Java Appletに対応しました。
今後実装を予定している機能は以下の通りです。
・ゲームを分類するタグ機能
・ゲームを任意のブログやWebページに貼り付ける埋め込みリンク作成機能
・投稿ゲーム一覧で名前などで並べ替える機能
疑問点やご要望がありましたら、この記事にコメントをお寄せください。
- Comments: 6
- Trackbacks: 0
【ActionScript】ゲームアップローダとFileReferenceクラス
- 2009-10-06 (火)
- ActionScript | サーバ管理
かなり前に予告したゲームアップローダの制作を少しずつ進めています。
これまでのブログのプラグインを使用したものに比べて、ファイルをアップロードや設定がかなり楽になるはずです。また、アップロードしたゲームは自習室のトップで公開されるだけでなく、iframeタグを使って他のサイトやブログに貼れるようにする(Google MapやYotubeのようにする)予定です。
さてこのアップローダは、フロントエンドをAdobe Flex 3で、バックエンドをPHPで作っている――たとえば「アップロード」ボタンを押すと、ActionScirptでuploadfile.phpを呼び出して処理させる仕組み――のですが、ファイルのダウンロードの部分だけがなぜかAdobeのドキュメント通りに動かなかったため、ここにメモしておきます。
- Comments: 0
- Trackbacks: 0
[雑記]Google App Engine
- 2009-07-20 (月)
- Misc
管理人です。
ここ2ヶ月ほど本業のほうが殺人的に忙しく、音信不通になっておりました。
ところで、先日Google App Engine(以下GAE)関連の原稿を読む機会があったのですが、なかなか興味深いです。GAEというのはWebアプリ(高機能なWebサイト)の開発&公開環境。現状、レンタルサーバを借りてPHPやPerlで作っているシステムの代替になるわけですね。
- Comments: 0
- Trackbacks: 0
[告知]リニューアル中です
- 2009-05-20 (水)
- 運営
お気づきの方もいると思いますが、自習室トップページをリニューアル中です。
作業中、予想外のトラブルでご迷惑をおかけするかもしれませんがご容赦ください。
リニューアルによる主な変更点は次のとおりです。
1.「無料会員」の追加
これまで自習室のソースコードやマニュアルは『オンラインゲームプログラミング教室』シリーズの読者のみに公開していましたが、読者以外でも無料会員に登録することでそれらを利用できるようになります。「書籍を読まなくてもソースコードを理解できる」自信がある人向けのサービスです。読者の方で「ブログは要らない」という人にもおすすめです。
2.「ゲームアップローダ」の追加
これはもうしばらく先になりますが、ブログを使わずにゲームを投稿できるアップローダを追加します。ブログ付属のものよりも使いやすく、また多くの人に見つけてもらいやすくなる予定です。ゲームアップローダは読者会員専用サービスです(アップローダや対戦サーバはコストや手間がかかる部分なので無料はいささか難しく……)。
3.ブログのSNS化
BuddyPressというWordPress用プラグインの導入を検討しています。グループ(コミュニティ)の作成といったSNS的な機能が追加されるようです。
- Comments: 0
- Trackbacks: 0
[PHP]アップローダと文字化け
ご無沙汰しております。管理人です。
GW前はプチ年末進行なので厳しい日々が続いておりまして、色々手が打てずにおります。Wordpress MUにブログを追加するwpmu_create_blog関数を見つけたので、GW前に会員登録システムを自動化するつもりだったのですが、1日の余裕も取れませんでした。デザインの更新やら記事やら色々やりたいことはあるのですが……。
ところで先日、取引先とのファイルやりとり用にPHPでちょっとしたアップローダを作成したのですが、その際に引っかかった日本語ファイルの扱いについて書きます。
日本語のファイル名を一覧に表示するときは、普通そのWebページのエンコードに合わせてEUCかUTF-8にします。しかし、そのままサーバ側のフォルダやブラウザのファイルダイアログに渡すと、文字化けして「ファイルが存在しないエラー」になってしまうのです。
結論から言うとサーバやブラウザに渡すときはSJIS(シフトJIS)に変換しなければならないようです。
- Comments: 0
- Trackbacks: 0
[PHP]Firefoxのブラウザキャッシュ
- 2009-04-13 (月)
- サーバ管理
自習室は基本全ページPHPなのですが、最初の頃にひっかかったのが「Firefoxだけスクロール位置が記憶されない」現象でした。マニュアルなどの長めのページを見ている途中で別のページに移動し、その後「戻る」ボタンで戻ると、IEやChromeでは最後に見ていたときのスクロール位置が維持されるのに、Firefoxだけページ先頭に戻ってしまうのです。
色々調べた結果、セッション(複数ページに渡る処理を行うために一時的にサーバサイドにデータを記憶させるしくみ)を使っているとFirefoxではページがキャッシュされずに毎回リロードされ、その結果スクロール位置も初期化されてしまうということがわかりました。
- Comments: 0
- Trackbacks: 0
[ActionScript]Flashの不思議な軽さ
- 2009-04-07 (火)
- ActionScript
「魔法のきのきの」のActionScript版への移植とソースコードの公開が完了しました。3つの言語のソースコードを見比べてみると、なかなか面白いのではないかと思います(クラスの概念を持たないC言語版をベースにしているので、Java版とAS版は1クラスにほとんどの処理が詰め込まれていて少々読みにくいですが……)。
JavaからActionScriptへ移植する工程はメモを取ってあるので、こちらもいずれ整理して公開する予定です。
ところでActionScript版でも実行中の負荷を簡単に調べてみましたが、記憶の通りかなり軽いことがわかりました。前回の記事と比べてみるとC言語版・Java版との差に驚かれると思います。
- Comments: 0
- Trackbacks: 0
- Search
- Feeds
- Meta