まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
敵も出てきたし、今度は敵弾だーと思ってたんですが、ちょっと疲れてきたのと
背景があまりにも寂しいので、先に背景を作ってみようって事で作ってみました。
と言っても素材を借りてきて、ほんのちょっと加工しただけですが(汗)
素材はデジタル素材の部屋さんから借りました。ここの素材はカッコイイのばかりで見てるだけでも楽しくなってきます^^
で肝心のスクロール処理なんですが、買った本にスプリクトは載ってたんですが(STGゲームごと)肝心の処理の部分については
殆ど説明が載ってなかったので理解するのに苦しみました。
そのスプリクトを見ながら、スクロールの部分を抜き出したのがコレ↓
*************************************
;背景のスクロール
buffer 2 ;ウィンドウ2をバッファ画面として用意
picload "s397.jpg" ;画像をバッファに読み込み
ssp=645 ;スクロール速度
wxs=480 :wys=640 ;メイン画面の変数
screen 0,wxs,wys ;メイン画面(ウィンドウ0)を480×640ドットで出す
*main
redraw 0 ; 画面に反映しない(仮想画面は書き換わる)
gmode 1 ; ノーマルコピーモード
scr=(scr+ssp)¥wys ;スクロール速度決定。(¥は割り算のあまり。)
pos 0,scr :gcopy 2,0,0,wxs,wys-scr ;下側の背景のコピー座標とコピーする画像の大きさを決めてコピー
if scr!0 { pos 0,0 ;
gcopy 2,0,wys-scr,wxs,scr ;
} ;上側の背景のコピー座標と画像の大きさを決めてコピー
redraw 1 ;メイン画面を更新
await 1 ;これを入れないとパソコンが固まる
goto *main ;*mainに戻る
*************************************
hsp3.0使用 画像は上の画像を使用
処理としては、まず画像をメイン画面よりちょっと下に表示して、上の空いた部分に
画像の下の部分をもってきて表示。
で、更にもうちょっと下に画像を表示して、上の空いた部分に画像の下の部分を持ってきて表示ってのを延々繰り返しています。
スプリクトをみれば、大体なにをしているか?ってのはわかるんですが、一からコレを作れと言われると、とても思いつきそうにありません(汗)
実は、このスプリクトも本には「ssp=645」の部分が「ssp=ginfo_winy-wys」となっていて
この部分が何をしているのか全く理解出来ていません。
特にginfo_winyというのが何なのか?(ヘルプを見るとシステム変数/現在の操作先ウィンドウの初期化Yサイズが代入されています。)
って書いてあるんだけど、んじゃ640-640で0じゃないの?って思うんですが違うんでしょうね・・・そもそもシステム変数ってなんだ?
まだまだ修行が足りないようです。
一応、ginfo_winyってのを使わなくてもスクロールはするので、解らない事は後回しにしときます。
上記スプリクトを実行すると・・・
無事スクロールしてくれました^^
ssp=645の数字を増やすと超高速スクロールも可能です。
背景があまりにも寂しいので、先に背景を作ってみようって事で作ってみました。
と言っても素材を借りてきて、ほんのちょっと加工しただけですが(汗)
素材はデジタル素材の部屋さんから借りました。ここの素材はカッコイイのばかりで見てるだけでも楽しくなってきます^^
で肝心のスクロール処理なんですが、買った本にスプリクトは載ってたんですが(STGゲームごと)肝心の処理の部分については
殆ど説明が載ってなかったので理解するのに苦しみました。
そのスプリクトを見ながら、スクロールの部分を抜き出したのがコレ↓
*************************************
;背景のスクロール
buffer 2 ;ウィンドウ2をバッファ画面として用意
picload "s397.jpg" ;画像をバッファに読み込み
ssp=645 ;スクロール速度
wxs=480 :wys=640 ;メイン画面の変数
screen 0,wxs,wys ;メイン画面(ウィンドウ0)を480×640ドットで出す
*main
redraw 0 ; 画面に反映しない(仮想画面は書き換わる)
gmode 1 ; ノーマルコピーモード
scr=(scr+ssp)¥wys ;スクロール速度決定。(¥は割り算のあまり。)
pos 0,scr :gcopy 2,0,0,wxs,wys-scr ;下側の背景のコピー座標とコピーする画像の大きさを決めてコピー
if scr!0 { pos 0,0 ;
gcopy 2,0,wys-scr,wxs,scr ;
} ;上側の背景のコピー座標と画像の大きさを決めてコピー
redraw 1 ;メイン画面を更新
await 1 ;これを入れないとパソコンが固まる
goto *main ;*mainに戻る
*************************************
hsp3.0使用 画像は上の画像を使用
処理としては、まず画像をメイン画面よりちょっと下に表示して、上の空いた部分に
画像の下の部分をもってきて表示。
で、更にもうちょっと下に画像を表示して、上の空いた部分に画像の下の部分を持ってきて表示ってのを延々繰り返しています。
スプリクトをみれば、大体なにをしているか?ってのはわかるんですが、一からコレを作れと言われると、とても思いつきそうにありません(汗)
実は、このスプリクトも本には「ssp=645」の部分が「ssp=ginfo_winy-wys」となっていて
この部分が何をしているのか全く理解出来ていません。
特にginfo_winyというのが何なのか?(ヘルプを見るとシステム変数/現在の操作先ウィンドウの初期化Yサイズが代入されています。)
って書いてあるんだけど、んじゃ640-640で0じゃないの?って思うんですが違うんでしょうね・・・そもそもシステム変数ってなんだ?
まだまだ修行が足りないようです。
一応、ginfo_winyってのを使わなくてもスクロールはするので、解らない事は後回しにしときます。
上記スプリクトを実行すると・・・
無事スクロールしてくれました^^
ssp=645の数字を増やすと超高速スクロールも可能です。
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が特に好きで、並木学氏は最高!
ブログ内検索
最古記事