まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
先日作ったラスタースクロールを使用したスクロールスクリプトは
非常に重くて、とてもゲームに使える感じではありませんでした。
で、なにか上手い方法はないかと考えて、軽く動作するスクリプトを作ってみました↓
ラスタースクロールを使用したスクロールスクリプト その2
コレを動かすとこんな感じ↓
先日と画面はあまりかわりませんが、FPSは191程度出ています(wait無し)
まず、軽くするにあたって、どれくらいのFPSが出ればよいのか?と考え
普通にスクロールするスクリプトを作ってwait無しで動かしてみると、大体180~200FPS
程度で動作しました。(私のパソコンの場合)
なので、ラスタースクロールスクリプトも目標200FPSを目指す感じで考えました。
で、どうしたかなのですが、最初に考えたのは描画回数を減らせば良いはずだと思って
repeat 480としていたのを240にして、画像を2倍に表示したり、repeat 120にして画像を4倍に
して表示したりしたのですが、それでもFPS60いくかいかないかで
あまり効果はありませんでした。
しかも、画像が荒いので綺麗じゃありませんし。
ここでふと思いついたのは、背景全体の描画を減らせば良いのでは?と言う事です。
今までなら1回のループで1回描画していたのを、2回のループで1回描画する・・・
みたいに出来れば良いだろうと思い、作ってみたのですが
これだと、描画しないときはes_clsでクリアされてしまうので、画面がチカチカして
見れたもんじゃありません。
でも、FPSは劇的に早くなりました。
なんとか、描画していない時も背景を表示させる方法はないものか?と考えて
良い方法を思いつきました。
それがスプライトを使用して描画する方法なんですが
es_set命令で表示した画像と言うのは、画面から消えるかes_killで消すか
新たに同じスプライトナンバーで表示しなおすまで、es_clsでも消える事はありません。
なので、es_set命令で背景を表示して、描画の度にes_setで背景を表示しなおせば
画面がチカチカする事もなく、FPSも早くなり表示する事が出来ました^^
しかし、やはり480回のリピートではFPS 200は無理だったので
リピート回数を240回に減らして、画像を2倍表示に変更するとFPS 200を
達成する事が出来ました^^
もう一台のXPマシンでもFPS 20程度がFPS 120程度まで上がったので
良い感じではないでしょうか。
ただ、画像を2倍表示しているので、ちょっと画面が荒い感じにはなっているのですが
まぁ、これくらいなら問題ないレベルかな?と自分では思っています^^
今回もスクリプトの70、71行目と74、75行目を入れ替えると横揺れに変更できます。
非常に重くて、とてもゲームに使える感じではありませんでした。
で、なにか上手い方法はないかと考えて、軽く動作するスクリプトを作ってみました↓
ラスタースクロールを使用したスクロールスクリプト その2
コレを動かすとこんな感じ↓
先日と画面はあまりかわりませんが、FPSは191程度出ています(wait無し)
まず、軽くするにあたって、どれくらいのFPSが出ればよいのか?と考え
普通にスクロールするスクリプトを作ってwait無しで動かしてみると、大体180~200FPS
程度で動作しました。(私のパソコンの場合)
なので、ラスタースクロールスクリプトも目標200FPSを目指す感じで考えました。
で、どうしたかなのですが、最初に考えたのは描画回数を減らせば良いはずだと思って
repeat 480としていたのを240にして、画像を2倍に表示したり、repeat 120にして画像を4倍に
して表示したりしたのですが、それでもFPS60いくかいかないかで
あまり効果はありませんでした。
しかも、画像が荒いので綺麗じゃありませんし。
ここでふと思いついたのは、背景全体の描画を減らせば良いのでは?と言う事です。
今までなら1回のループで1回描画していたのを、2回のループで1回描画する・・・
みたいに出来れば良いだろうと思い、作ってみたのですが
これだと、描画しないときはes_clsでクリアされてしまうので、画面がチカチカして
見れたもんじゃありません。
でも、FPSは劇的に早くなりました。
なんとか、描画していない時も背景を表示させる方法はないものか?と考えて
良い方法を思いつきました。
それがスプライトを使用して描画する方法なんですが
es_set命令で表示した画像と言うのは、画面から消えるかes_killで消すか
新たに同じスプライトナンバーで表示しなおすまで、es_clsでも消える事はありません。
なので、es_set命令で背景を表示して、描画の度にes_setで背景を表示しなおせば
画面がチカチカする事もなく、FPSも早くなり表示する事が出来ました^^
しかし、やはり480回のリピートではFPS 200は無理だったので
リピート回数を240回に減らして、画像を2倍表示に変更するとFPS 200を
達成する事が出来ました^^
もう一台のXPマシンでもFPS 20程度がFPS 120程度まで上がったので
良い感じではないでしょうか。
ただ、画像を2倍表示しているので、ちょっと画面が荒い感じにはなっているのですが
まぁ、これくらいなら問題ないレベルかな?と自分では思っています^^
今回もスクリプトの70、71行目と74、75行目を入れ替えると横揺れに変更できます。
PR
この記事にコメントする
カレンダー
10 | 2024/11 | 12 |
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/04)
(12/26)
(12/25)
(11/17)
(10/11)
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
最古記事