まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
とりあえず動くようになった自機。でもキーボードでしか操作出来ないのは
シューティングゲームとしては話になりません。
でもHSPの基本命令にはジョイスティックに対応した命令がないんですよね。
しかし外部プラグインを導入する事によってジョイスティック対応にする事ができる。
色々探してみるとジョイスティック対応プラグインも数種類ある事が判明。
その中で使いやすいと言うか、初心者でもわかりやすかったのがCYBER STATION 200Xさんで公開している
CK_JOYFORCE DLLでした。
このプラグインだと、stick命令をck_joystickと書き換えるだけでジョイスティックに対応出来て超簡単。
後はプログラムの最初に#include "CK_JOYFORCE.AS"と記述すればOK。
これだけでジョイスティックに対応出来るなんて、開発者の人に感謝ですね^^
それと昨日のスプリクトでは、左を押しても右を押しても傾かなかったので傾くようにしてみた。
まず、自機の表示はgcopy 1,0,0,64,64で行っています。
この命令の意味はバッファ1のx軸0、y軸0から縦横64×64の画像をコピーと言う意味です。
なので、キーを押している時にx軸をずらす事が出来れば傾く事が出来そう。
早速実行してみる。まず、自機の傾きの変数をpkとして、初期数は0。
で、キー入力判断の部分 if ky&1 :px-=8 :if px<0 :px=0の所にpk=64
if ky&4 :px+=8 :if px>416 :px=416の所にpk=128を足してみた。
これで左を押している時はpkに64、右を押している時はpkに128が入力される事になる
そして、gcopy 1,0,0,64,64をgcopy 1,pk,0,64,64に書き換えれば自機が傾くはず。
上記部分を書き換えたスプリクトがコレ↓太字が書き換えた部分
*************************************
;初期設定
#include "CK_JOYFORCE.AS"
buffer 1 ;ウィンドウ1をバッファ画面として用意
picload "stg.gif";画像をバッファに読み込み
screen 0,480,640,0,0,0;メイン画面(ウィンドウ0を480*640で用意)
px=224:py=576;自機の初期位置
color 0,0,0;色に黒を指定
boxf 0,0,480,640;画面を黒で塗りつぶす
;メインループ
*main
redraw 0;仮想画面を指定
color 0,0,0;色に黒を指定
boxf 0,0,480,640;仮想画面を黒で塗りつぶす
pk=0 ;自機の傾きの為の変数
ck_joystick ky,15;キーボードのチェック
if ky&1 :px-=8 :pk=64 :if px<0 :px=0;カーソルキー左(←)を押した時pxより-8を引く:画面からはみ出さないようにpxが0以下にならないようにする
if ky&4 :px+=8 :pk=128 :if px>416 :px=416
if ky&2 :py-=8 :if py<0 :py=0
if ky&8 :py+=8 :if py>576 :py=576
pos px,py;自機の座標指定
gcopy 1,pk,0,64,64;バッファ画面(ウィンドウ1)より自機画像をコピー
redraw 1;メイン画面を更新
wait 1;これを入れないとパソコンが固まる
goto *main;*mainに戻る
*************************************
HSP3.0使用 画像は4月27日の自機画像を使用 CK_JOYFORCE.DLL使用
実行してみると・・・
ちゃんと傾いて動いてくれました!
シューティングゲームとしては話になりません。
でもHSPの基本命令にはジョイスティックに対応した命令がないんですよね。
しかし外部プラグインを導入する事によってジョイスティック対応にする事ができる。
色々探してみるとジョイスティック対応プラグインも数種類ある事が判明。
その中で使いやすいと言うか、初心者でもわかりやすかったのがCYBER STATION 200Xさんで公開している
CK_JOYFORCE DLLでした。
このプラグインだと、stick命令をck_joystickと書き換えるだけでジョイスティックに対応出来て超簡単。
後はプログラムの最初に#include "CK_JOYFORCE.AS"と記述すればOK。
これだけでジョイスティックに対応出来るなんて、開発者の人に感謝ですね^^
それと昨日のスプリクトでは、左を押しても右を押しても傾かなかったので傾くようにしてみた。
まず、自機の表示はgcopy 1,0,0,64,64で行っています。
この命令の意味はバッファ1のx軸0、y軸0から縦横64×64の画像をコピーと言う意味です。
なので、キーを押している時にx軸をずらす事が出来れば傾く事が出来そう。
早速実行してみる。まず、自機の傾きの変数をpkとして、初期数は0。
で、キー入力判断の部分 if ky&1 :px-=8 :if px<0 :px=0の所にpk=64
if ky&4 :px+=8 :if px>416 :px=416の所にpk=128を足してみた。
これで左を押している時はpkに64、右を押している時はpkに128が入力される事になる
そして、gcopy 1,0,0,64,64をgcopy 1,pk,0,64,64に書き換えれば自機が傾くはず。
上記部分を書き換えたスプリクトがコレ↓太字が書き換えた部分
*************************************
;初期設定
#include "CK_JOYFORCE.AS"
buffer 1 ;ウィンドウ1をバッファ画面として用意
picload "stg.gif";画像をバッファに読み込み
screen 0,480,640,0,0,0;メイン画面(ウィンドウ0を480*640で用意)
px=224:py=576;自機の初期位置
color 0,0,0;色に黒を指定
boxf 0,0,480,640;画面を黒で塗りつぶす
;メインループ
*main
redraw 0;仮想画面を指定
color 0,0,0;色に黒を指定
boxf 0,0,480,640;仮想画面を黒で塗りつぶす
pk=0 ;自機の傾きの為の変数
ck_joystick ky,15;キーボードのチェック
if ky&1 :px-=8 :pk=64 :if px<0 :px=0;カーソルキー左(←)を押した時pxより-8を引く:画面からはみ出さないようにpxが0以下にならないようにする
if ky&4 :px+=8 :pk=128 :if px>416 :px=416
if ky&2 :py-=8 :if py<0 :py=0
if ky&8 :py+=8 :if py>576 :py=576
pos px,py;自機の座標指定
gcopy 1,pk,0,64,64;バッファ画面(ウィンドウ1)より自機画像をコピー
redraw 1;メイン画面を更新
wait 1;これを入れないとパソコンが固まる
goto *main;*mainに戻る
*************************************
HSP3.0使用 画像は4月27日の自機画像を使用 CK_JOYFORCE.DLL使用
実行してみると・・・
ちゃんと傾いて動いてくれました!
PR
この記事にコメントする
カレンダー
12 | 2025/01 | 02 |
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 | 31 |
リンク
カテゴリー
最新記事
(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が特に好きで、並木学氏は最高!
ブログ内検索
最古記事