HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0627
SqOc背景とキャラの画像の表示方法5未解決


SqOc

リンク

2015/6/27(Sat) 01:42:02|NO.69864

今、ゲームを作っていて、画像の表示に関して悩んでいます。
キャラクターを動かすたんびに画像を一回消して、描き直すという
表示方法になっています。
ですが、そうとなると、キャラクターの画像に加えて、
毎回動いてもいないのに、背景の画像も表示しなおす必要があります。
ですが、それはどう考えても処理の無駄だと思うのと、何だか気持ち悪いです。
背景はずっと表示し続けて、キャラクターの画像だけを描き直す事って
できないんですか?
どなたかわかる方、教えてください!!
お願いします!!



この記事に返信する


スペース

リンク

2015/6/27(Sat) 03:53:30|NO.69865

確かに無駄ですが、現状其の方法しかないですね。
強いて言えば全体を書き換えするのではなく、必要最低限の範囲だけを書き換え、
redrawも最低範囲だけで行うことで、かなり高速化出来ます。
特にredrawは更新するピクセル数がもろ処理時間に影響するので、かなり重要です。

少し無理やりだと、HGIMG4で3D空間上に画像を表示する方法ですが、処理の管理が面倒。



ミント

リンク

2015/6/27(Sat) 09:25:26|NO.69866

画像を毎回書き直すのはプログラム上やむおえない処理ですね。

if文を使って邪魔な画像は表示させないとかどうでしょうか?
どういうゲームなのかわかりませんが、敵を倒したらその敵の配列番号のフラグをいじくれば表示させないことはできます。
全ての敵を倒したら、そのフラグをいじくっている処理自体の前に、
if文とかでいかせないようにすれば、少し処理が早くなるかもしれません。



窓月らら

リンク

2015/6/27(Sat) 14:02:08|NO.69868

> 背景はずっと表示し続けて、キャラクターの画像だけを描き直す事って
> できないんですか?

昔のハードウェアのようにスプライト面があるわけじゃないので、
ハードウェアの仕組上できません。よってHSP以外でも同様です。

> 毎回動いてもいないのに

背景をバッファに入れておいて
前回のキャラの位置とサイズ分だけ背景バッファからコピーして消す方法もあります。
これならVRAM上のコピーは減らせますが、実行速度的には悪化するかもしれません。
(キャラの数だけ、消す処理が増える)
キャラが少ないゲームであれば有効だと思われます。



SqOc

リンク

2015/6/27(Sat) 14:59:51|NO.69869

結局、一番処理が早いのは、最初の方法になっちゃうんですかね?



ZAP

リンク

2015/6/27(Sat) 15:36:13|NO.69871

素直に毎フレームごとに全部描画するのが標準的な方法。
Windowsの場合そうせざるを得ない。
殆どのソフトは普通に全部描画してると思う。

高速化を図りたいのであれば、いかに流れの中で無駄な処理を減らすか。
そこを考えるのがプログラムを組むことの醍醐味ですよ。

HSPで組むこと自体に速度的な限界を感じているのであれば、
他の言語に挑戦すべき。
他言語に行っても描画の基本的な考え方は一緒だけど、高速化は図れる。



ONION software Copyright 1997-2023(c) All rights reserved.