まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
久々の更新です^^;
ずっとゲームのシステムを考えていたのですが、どうも煮詰まってしまって先に勧めない感じなんですよね。
ゲームシステムはなるべくシンプルなのが良いのですが(出来れば十字キー+2ボタン)
作りたいのは怒首領蜂大往生みたいなの弾幕STGなので、シンプルにすると、なんかそのままになってしまうんですよね・・・
などと色々考えていたのですが、そもそも筆者に技術がないのに考えるよりも作っていった方が良いのでは?と思ってきたので
CAVEリスペクトでも良いかーって感じで、とりあえず作って行こうと思ってます。
で、今まで使っていたスプリクトでは自機の傾きが、ぎこちない感じだったので、まずスムーズに傾くようにしました。
スプリクトは↓コチラ
*************************************
*start
#include "hspdxfix.as"
;■ DirectX 初期化&チェック
dialog "fullscreenで起動しますか?「はい」を選択した場合、画面解像度を640×480に変更します。",2,"Config"
if stat=6:screenmode=0
if stat=7:screenmode=1
es_ini 2048,1024,360;スプライト最大数2048,キャラクタ最大数1024,角度360度
es_screen 640,480,16,0,screenmode,1;directX使用時の解像度640*480
if stat=1 : goto *dxerr1
if stat=2 : goto *dxerr2
goto *setup
*dxerr1
dialog "DirectXの初期化に失敗しました。",1 : end
*dxerr2
dialog "スクリーンの初期化に失敗しました。",1 : end
*dxerr3
es_bye : wait 100
dialog "VRAMの容量が不足しています。",1 : end
*setup
;■ バッファへ画像の読みこみ
buffer 2,640,480,0 ;バッファ作成
pos 0,0 : picload "jiki10.gif",1 ;バッファへ読み込み
es_buffer 0,0 ;オフスクリーンバッファへの転送
if stat=1 : goto *dxerr3
;自機0-9
es_size 32,32,10,0
repeat 9 : es_pat cnt,32*cnt,0 : loop
;■スプライト登録
es_window 0,0,640,480 ;スプライト描写範囲設定
es_area -64,-64,640,480 ;スプライト有効範囲設定
es_set 2000,px,py,4 ;自機スプライト登録(1)
es_type 2000,4 ;自機Type値設定(1)
gsel 0
es_cls
es_sync
wait 100
*gamesetup
ship=4;自機傾きの為の変数
px=304:py=448 ;自機の初期位置
move=4 ;自機速度
gtime=0 ;フレーム数
;■ メインルーチン
*main
es_cls;画面クリア
gosub *jikimove
es_draw;スプライト描画
gosub *kabehyouji
gosub *fpshyouji
await 0
es_sync 16
getkey syuryo,27:if syuryo=1:end;ESCを押すと強制終了
gtime=gtime+1 ;タイムテーブルの為の変数
goto *main
*jikimove;自機移動処理
stick ky,15;キーボードのチェック,非トリガータイプ設定
xv=(ky>>2&1)-(ky&1);x軸移動処理
yv=(ky>>3&1)-(ky>>1&1);y軸移動処理
px=xv*move+px : py=yv*move+py;自機移動処理
;画面からはみ出さない為の処理
if px<160 :px=160
if px>448 :px=448
if py<0 :py=0
if py>448 :py=448
;傾きの為の処理
if gtime¥4=0:if (ky=0)&(ship<4) :ship++;キーを押していない時で傾いている時は戻す
if gtime¥4=0:if (ky=0)&(ship>4) :ship--;キーを押していない時で傾いている時は戻す
if gtime¥4=0:if (ky=2)&(ship<4) :ship++;↑キーのみを押している時で傾いている時は戻す
if gtime¥4=0:if (ky=2)&(ship>4) :ship--
if gtime¥4=0:if (ky=8)&(ship<4) :ship++;↓キーのみを押している時で傾いている時は戻す
if gtime¥4=0:if (ky=8)&(ship>4) :ship--
if gtime¥4=0:if xv=1 :if ship!8 :ship++;キーを押した時で傾向ききってない時は傾ける
if gtime¥4=0:if xv=-1 :if ship!0:ship--;キーを押した時で傾向ききってない時は傾ける
es_chr 2000,ship;キャラクタNO変更
es_pos 2000,px,py;スプライト表示(バッファ画面)
return
*kabehyouji
color 0,0,50
es_boxf 0,0,160,480;画面左をを塗り潰す
es_boxf 480,0,640,480;画面右をを塗り潰す
return
*fpshyouji
;fps表示
font "msgothic",18,0
es_getfps fps
color 255,255,255
pos 10,460
es_fmes "Fps "+fps
pos 0,0
es_fmes"It cancels with Esc"
return
*************************************
HSP3.0使用 hspdxfix.DLL使用 画像は↓を使用
今までも変数を使って傾かせていたのですが、それを生かして4フレームに一回傾かせて行くようにしました。
動かすとこんな感じです。
すげー寂しい画面ですが、自機はスムーズに傾きます。
画像を増やせばもっと綺麗に動くんですが、この画像作るだけでも相当時間かかりました(汗)
もっと絵心があれば・・・と思う今日この頃です^^;
ずっとゲームのシステムを考えていたのですが、どうも煮詰まってしまって先に勧めない感じなんですよね。
ゲームシステムはなるべくシンプルなのが良いのですが(出来れば十字キー+2ボタン)
作りたいのは怒首領蜂大往生みたいなの弾幕STGなので、シンプルにすると、なんかそのままになってしまうんですよね・・・
などと色々考えていたのですが、そもそも筆者に技術がないのに考えるよりも作っていった方が良いのでは?と思ってきたので
CAVEリスペクトでも良いかーって感じで、とりあえず作って行こうと思ってます。
で、今まで使っていたスプリクトでは自機の傾きが、ぎこちない感じだったので、まずスムーズに傾くようにしました。
スプリクトは↓コチラ
*************************************
*start
#include "hspdxfix.as"
;■ DirectX 初期化&チェック
dialog "fullscreenで起動しますか?「はい」を選択した場合、画面解像度を640×480に変更します。",2,"Config"
if stat=6:screenmode=0
if stat=7:screenmode=1
es_ini 2048,1024,360;スプライト最大数2048,キャラクタ最大数1024,角度360度
es_screen 640,480,16,0,screenmode,1;directX使用時の解像度640*480
if stat=1 : goto *dxerr1
if stat=2 : goto *dxerr2
goto *setup
*dxerr1
dialog "DirectXの初期化に失敗しました。",1 : end
*dxerr2
dialog "スクリーンの初期化に失敗しました。",1 : end
*dxerr3
es_bye : wait 100
dialog "VRAMの容量が不足しています。",1 : end
*setup
;■ バッファへ画像の読みこみ
buffer 2,640,480,0 ;バッファ作成
pos 0,0 : picload "jiki10.gif",1 ;バッファへ読み込み
es_buffer 0,0 ;オフスクリーンバッファへの転送
if stat=1 : goto *dxerr3
;自機0-9
es_size 32,32,10,0
repeat 9 : es_pat cnt,32*cnt,0 : loop
;■スプライト登録
es_window 0,0,640,480 ;スプライト描写範囲設定
es_area -64,-64,640,480 ;スプライト有効範囲設定
es_set 2000,px,py,4 ;自機スプライト登録(1)
es_type 2000,4 ;自機Type値設定(1)
gsel 0
es_cls
es_sync
wait 100
*gamesetup
ship=4;自機傾きの為の変数
px=304:py=448 ;自機の初期位置
move=4 ;自機速度
gtime=0 ;フレーム数
;■ メインルーチン
*main
es_cls;画面クリア
gosub *jikimove
es_draw;スプライト描画
gosub *kabehyouji
gosub *fpshyouji
await 0
es_sync 16
getkey syuryo,27:if syuryo=1:end;ESCを押すと強制終了
gtime=gtime+1 ;タイムテーブルの為の変数
goto *main
*jikimove;自機移動処理
stick ky,15;キーボードのチェック,非トリガータイプ設定
xv=(ky>>2&1)-(ky&1);x軸移動処理
yv=(ky>>3&1)-(ky>>1&1);y軸移動処理
px=xv*move+px : py=yv*move+py;自機移動処理
;画面からはみ出さない為の処理
if px<160 :px=160
if px>448 :px=448
if py<0 :py=0
if py>448 :py=448
;傾きの為の処理
if gtime¥4=0:if (ky=0)&(ship<4) :ship++;キーを押していない時で傾いている時は戻す
if gtime¥4=0:if (ky=0)&(ship>4) :ship--;キーを押していない時で傾いている時は戻す
if gtime¥4=0:if (ky=2)&(ship<4) :ship++;↑キーのみを押している時で傾いている時は戻す
if gtime¥4=0:if (ky=2)&(ship>4) :ship--
if gtime¥4=0:if (ky=8)&(ship<4) :ship++;↓キーのみを押している時で傾いている時は戻す
if gtime¥4=0:if (ky=8)&(ship>4) :ship--
if gtime¥4=0:if xv=1 :if ship!8 :ship++;キーを押した時で傾向ききってない時は傾ける
if gtime¥4=0:if xv=-1 :if ship!0:ship--;キーを押した時で傾向ききってない時は傾ける
es_chr 2000,ship;キャラクタNO変更
es_pos 2000,px,py;スプライト表示(バッファ画面)
return
*kabehyouji
color 0,0,50
es_boxf 0,0,160,480;画面左をを塗り潰す
es_boxf 480,0,640,480;画面右をを塗り潰す
return
*fpshyouji
;fps表示
font "msgothic",18,0
es_getfps fps
color 255,255,255
pos 10,460
es_fmes "Fps "+fps
pos 0,0
es_fmes"It cancels with Esc"
return
*************************************
HSP3.0使用 hspdxfix.DLL使用 画像は↓を使用
今までも変数を使って傾かせていたのですが、それを生かして4フレームに一回傾かせて行くようにしました。
動かすとこんな感じです。
すげー寂しい画面ですが、自機はスムーズに傾きます。
画像を増やせばもっと綺麗に動くんですが、この画像作るだけでも相当時間かかりました(汗)
もっと絵心があれば・・・と思う今日この頃です^^;
PR
この記事にコメントする
無題
おおっ^^ 着々と進んでますね
こちらは昨日プログラムいじったら
ますます動作不安定となりまして、完全に迷走状態です^^;
>CAVEリスペクト
ははは^^
こちらもですよ
いまさら弾幕減らしてあたり判定大きくしても
今のSTGプレイヤーは喜ばないと思いますしね
ところでktさんのサンプルだと
カーソルキーで操作になっていますよね
これはサンプルなので当然の処置だと
思いますが、実際のゲームはどうします?
私はカーソル非対応でパッド必須にしてしまおうかと
考えているんですよ
パッドがない人は結構いると思うんですが
カーソルでも避け続けれるような難易調整で
良いのかと思いいましてね
カーソルでのプレイを推奨しないのであれば
いっそ切ってしまった方がスマートじゃないかと・・
もちろんアーケードよりは簡単にしますが
その辺りで、かなり悩んでます^^;
>絵心
自機の傾きを綺麗に描くのは大変です
謙遜してらっしゃいますが
実は'描ける人'とお見受けしました^^
こちらは昨日プログラムいじったら
ますます動作不安定となりまして、完全に迷走状態です^^;
>CAVEリスペクト
ははは^^
こちらもですよ
いまさら弾幕減らしてあたり判定大きくしても
今のSTGプレイヤーは喜ばないと思いますしね
ところでktさんのサンプルだと
カーソルキーで操作になっていますよね
これはサンプルなので当然の処置だと
思いますが、実際のゲームはどうします?
私はカーソル非対応でパッド必須にしてしまおうかと
考えているんですよ
パッドがない人は結構いると思うんですが
カーソルでも避け続けれるような難易調整で
良いのかと思いいましてね
カーソルでのプレイを推奨しないのであれば
いっそ切ってしまった方がスマートじゃないかと・・
もちろんアーケードよりは簡単にしますが
その辺りで、かなり悩んでます^^;
>絵心
自機の傾きを綺麗に描くのは大変です
謙遜してらっしゃいますが
実は'描ける人'とお見受けしました^^
無題
自分の予想外の動きをすると、ホント悩みますよね・・・
私は考えてる時はタバコの本数が異常に増えます^^;
でも原因がわかった時は、頭の中で勝手にドラクエのレベルアップ音が鳴ってますよ(笑)
自機の操作はキーボードとジョイスティックに対応する予定です。
と言うのも、普段使ってるマシンがノートなのでジョイスティックは使う時だけ取り付けるんですよね。
なので、いちいち取り付けるのがめんどくさい時はキーボードでプレイするんですよ。
ただ、確かにキーボードでちゃんとプレイするのは現実的じゃないと思いますし
パッドのみ対応の方がスマートだと思いますので、難易度はパッド使用で調整して、
非公式にキーボード対応。とかで良いんじゃないでしょうか?
なんかパッドのみ対応だと、それだけで遊んでくれなくなる人がいるような予感がします^^;
キャラデザインはDO-GAあっての物ですよ。コレがなかったら傾いた自機なんて絶対作れませんよ・・・
しかしHPのデータとんじゃったんですね。色々大変だとは思いますが頑張って下さいm(_ _)m
私は考えてる時はタバコの本数が異常に増えます^^;
でも原因がわかった時は、頭の中で勝手にドラクエのレベルアップ音が鳴ってますよ(笑)
自機の操作はキーボードとジョイスティックに対応する予定です。
と言うのも、普段使ってるマシンがノートなのでジョイスティックは使う時だけ取り付けるんですよね。
なので、いちいち取り付けるのがめんどくさい時はキーボードでプレイするんですよ。
ただ、確かにキーボードでちゃんとプレイするのは現実的じゃないと思いますし
パッドのみ対応の方がスマートだと思いますので、難易度はパッド使用で調整して、
非公式にキーボード対応。とかで良いんじゃないでしょうか?
なんかパッドのみ対応だと、それだけで遊んでくれなくなる人がいるような予感がします^^;
キャラデザインはDO-GAあっての物ですよ。コレがなかったら傾いた自機なんて絶対作れませんよ・・・
しかしHPのデータとんじゃったんですね。色々大変だとは思いますが頑張って下さいm(_ _)m
カレンダー
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が特に好きで、並木学氏は最高!
ブログ内検索
最古記事