アプリ版:「スタンプのみでお礼する」機能のリリースについて

簡単なシューティングのようなゲームを作成しているのですが
背景画像の上で機体の画像を動かすと、画像の動作が重くなります。

背景をなしに、あるいは色だけにするとスムーズに動作するのですが
やはり背景画像がないとゲームとして寂しいものがあります。
何とかならないでしょうか。

ちなみに自機は下記のような記述で動かしています。

x(y) = Pic.Location.X(Y) + 1
Pic.Location = New Point(x, y)

宜しくお願い致します。

A 回答 (1件)

画像処理、ゲーム系とかはあまり詳しくないのですが、


回答がついてないので少し。

基本的に、Windowsの標準的な(?)描画機能を使うと、処理は重いです。
他の手段としては、DirectX系を除けば、環境などにもよりますが(環境は
書いてくださいね…)以下のようなものがあります。
・VB.NET系なら、PicreBoxに割り当てたメモリ上のBitmapを
 Graphicsクラスを使用して直接操作する
・WindowsAPI BitBltを使用して直接Bitmapを描画
BitBltは、VB.NET系でGraphicsクラスを使用した描画(DrawImageとか)より
高速「らしい」です。
.NET系だとBitmapの定義自体は標準で持っているので、BitBltを使うにしても
比較的 楽なようですが(以前、英語サイトで.NETでBitBltを使うサンプルが
書かれてたのを見ましたが…どこか忘れた(汗))、VB6あたりでやろうとすると
結構面倒です。ここでは書ききれないぐらいの手間が掛かるかと。
ただ、方法さえ知っていれば、Graphicsクラスでの重ね合わせでは透過色とかを
設定できますし、BitBltでは論理演算しながらの合成が可能なので、
うまくすれば綺麗には描画できると思います。

あと、Graphicsクラスを使うにしても、BitBltを使うにしても、描画範囲は
出来るだけ小さくなるようにしないと、結局重いですよ。

BitBltを使用してもスピードが足りないようなら… DirectX関連の使用を
検討するとか、C++の勉強をしてみるとか、踏み込んだ内容が必要になるかと思います。
(私はDirectXもC++も「?」ですが…)
    • good
    • 0
この回答へのお礼

申し訳ありません、こちらの環境を書くのを忘れていました。
.netの方なので、前者のやり方で試してみたいと思います。
有難う御座いました。

お礼日時:2008/07/01 18:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!