忍者ブログ
まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

昨日作ったスクロールスクリプトでは動作が重すぎて全く話になりませんでした。
で、どうしたらエエかな〜と思っていたのですが、雲をスプライトで表示してるしマップチップもスプライトで表示したらどうやろ?
と思ってスプライトで表示してみると、なんと!サクサクとFPS60で動いてくれました^^

なんかスプライトを使用するのって結構重たい処理なのかと思っていましたが、es_copyの方が遥かに重いようです。
ちょっと気になったので、スクロールの動作検証スクリプトを作成してみました。
画像なんかが結構あったのでソースファイル付きでダウンロード出来るようにしています↓

スクロール動作検証スクリプト(右クリックで対象をファイルに保存でDLして下さい)
1130.jpg
動作させるとこんな感じです。

es_copy使用とスプライト使用の二つのスクリプトを作成したのですが、es_copyの方は私の環境では激重です^^;
Pentium4 1,7Ghz/RADEON 16MのノートPCでFPS15くらいしか出ません。敵キャラとかのスクリプトは入れていないのに・・・
詳しい検証結果はreadmeに書いておきました。

ただ、ホントにスプライトで背景表示なんてやっても良いのかなぁ?とちょっと不安でもあります。
es_copyを使った方のスクリプトの書き方が間違っていて激重になっているんじゃ・・・とも思うのですが
私が見た限りでは書き方が悪い所はないように思うので、ソースファイルを見て間違っているようでしたら、コソっと教えて下さい^^;
PR
この記事にコメントする
お名前
タイトル
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
無題
こんにちは。
なんか私もes_copyで三重スクロールやってみたのですが、やっぱり重くなりますね。
二重スクロールまでなら余裕なのですが・・・。
ソースファイル参考にさせていただきます。
Leigh 2006/11/30(Thu)08:34:11 編集
無題
ダウンして見てみました^^
私の実力ではソースを読みきれなかったので
原因は解らなかったのですが
一つ問題点を見つけましたので、報告しますね

私のパソコンだと
このサンプルはスプライト使用版のFPS60であっても
スクロールが少しちらつくというか何かが変なんですよ
画面の真中辺りに線も入ります

自分のプログラムのスクロールは普通に動いているので、
グラボの問題だけではないと思われます
やはり、どこか指定している値とかがおかしいのでは
ないでしょうか?

こちらの環境ですが
OSは2000でグラボはRADEON 9100
メモリは512Mです
ふろんてあ 2006/11/30(Thu)23:20:53 編集
無題
Leighさん>
やっぱり重くなるんですね。私だけじゃないとわかって、ホッとしました^^
ソースは参考になるようであれば、ドンドン参考にしてやって下さい〜。

ふろんてあさん>
動作検証して頂き有難う御座います。
指摘の部分の原因を考えてみたのですが、たぶんes_sync16,2のp2の値が悪いんだと思います。
Vsyncを待たない設定にしていたのですが、私の方でもスクロールが、たまに不自然な感じになる時があり気にはなっていたのですが、やはりおかしかったんですね(汗)

なので、es_sync16,0とすれば大丈夫(なはず・・・多分)
とりあえずファイルは差し替えておいたので、良かったらもう一度試してみて下さいm(_ _)m
kt. 2006/12/01(Fri)00:55:45 編集
無題
はじめまして、汎用マップエディタなんぞを作ったりしている者です
自分もSTGでes_copyで強引に多重スクロールを作ったものの
遅すぎて四苦八苦している最中です…

プログラムが下手で、HSPDXのスプライト関係には全く疎いので
以下の考察は勘違いかもしれませんが…

画像コピー使用版は毎回マップデータを読み込んで
画面全体を書き直すという点がネックなのかもしれません
(以前、マップチップ16*16で組んだら非常に重く
32*32に直したら改善したという事がありましたので…)

速度はコピーFPS23 スプライトFPS60でした
環境はAthlon2500+ メモリ1G RADEON9800proです
猫崎晶弥 2006/12/02(Sat)01:58:32 編集
無題
猫崎晶弥さん>
はじめまして!わざわざ検証して頂き有難う御座います。
そんなスペックの高いマシンでもFPS23しか出ないんですね・・・
やはり猫崎晶弥さんのおっしゃる通りデータを読み込みながら画像全体を書き直しているのが悪いんでしょうね・・・
メインルーチンに入る前にマップ全体を読み込んで表示出来たりすれば、もっと軽くなるのかもしれないと思って、今色々と考え中です^^;

と言うか、猫崎晶弥さんってQuoyleの作者さんですよね?
Quoyle、ありがたく使用させて頂いてます(ブログにも勝手に紹介しています。ゴメンナサイ)
非常に使いやすくて大変助かっています^^
今後とも、宜しくお願い致しますm(_ _)m
kt. 2006/12/02(Sat)02:54:50 編集
無題
はじめまして、こういった処に書き込むのは初めてなので上手く書き込めているのか不安ですが気になった所を一つ。
マップチップ描画のes_copyにカウンターを付けてみたところ5万回以上もes_copyが使われていました。
おそらくはマップデータ読み込みルーチンで座標が一つ動く度にマップチップ描画ルーチンが呼び出されているからなのではと思うのですが。
あまりプログラムに詳しいわけでもないので解析が間違っているかもしれませんので1度確認をしてみていただけませんでしょうか?
もし、もう解決されていたのなら蛇足になるなぁと思いつつSTGの完成を期待しております。
それでは。
あり 2006/12/03(Sun)11:54:07 編集
無題
はじめまして!
わざわざ検証して頂き有難う御座いますm(_ _)m
ご指摘の点なのですが、描画ルーチンは(ラベル*liteの所)いっぱいリピートしてるんですがes_copyは、そのリピート内で1回だけ描画するようにしているので、実際には5万回以上es_copyしているわけではないんです。
(正確には221回es_copyで描画しています)
でも、言われてみると1ループで5万回以上repeatしてるのは事実で、この部分をもっとなんとか出来れば良い気もするのですが、なかなか良い方法が思いうかばないんですよね・・・

とりあえず、スプライトを使用した方は上手く動いているので、そちらで進めていこうかと思っています。
わざわざ、ご指摘頂き有難う御座います。
また、何か気づいた点があれば教えて下さい^^
kt. 2006/12/04(Mon)00:37:48 編集
この記事へのトラックバック
この記事にトラックバックする:
Twitter
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
最新コメント
[04/20 kt.]
[04/19 うぇむ]
[11/24 kt.]
[11/21 NONAME]
[11/24 kt.]
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
忍者ブログ [PR]