「Gamemakerでゲームを作って見よう」
ということで、作業メモっぽい使い方をする予定。
愚痴なんかが多くなるかも・・・
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
キャラの基本動作に関してはほぼ固まったので、基本出ない動きというものを作ってみました。
1.二段ジャンプ
空中でもう一回ジャンプ出来るようにしたい!!
ということでやってみました。
まず、ジャンプ回数を表すcount_jumpという変数と、最大ジャンプ数を表すMAX_jumpという変数を作ります。
count_jump=MAX_jump;
MAX_jump=2;
これでMAX_jumpをいじるだけでジャンプ回数をいじることができます。
そして、ジャンプの処理の部分を
if(move == 1 && keyboard_check_pressed(global.k_jump))
{
vspeed=-jump_speed;
}
から
if(move == 1 && keyboard_check_pressed(global.k_jump))
{
if(count_jump > 0){vspeed = -jump_speed;}
count_jump -= 1;
}
とします。
青い部分が追加分です。
ジャンプが実行されるたびにcount_jumpを-1し、0になるまでジャンプさせることができるようにしました。
2.空を飛ぶ
空を自由に飛びたいな~♪
ということで飛ばしましょう(照れ)
やりたいことは
ジャンプボタン押しっぱなしで一定時間浮力を与え続ける
ということです。
コードは長くなる上に飛び飛びになってしまうので省きますが、考え方としては
①ジャンプキーが押しっぱなしになったらboost_flgを1にする。
②boost_flgが1の時、count_boost(浮力を与えられる時間の上限)を減らし続け、vspeedを与える
③count_boostが0以下の時にboost_flgを0にし、vspeedを0にする。
④キャラが着地したらcount_boostを元の値に戻す。
ということをしています。
count_boostはいわばロケットの燃料のようなもので、この値が多ければ、浮いていられる時間が増えます。
3.吹っ飛ぶ
ダメージを受けた時にキャラを吹っ飛ばすという処理です。
まず、ステップイベントに
if(place_free(x+wspeed,y+vspeed))x+=wspeed;
というコードを書きます。
また、クリエイトイベントでは
wspeed = 0;
とします。
この段階ではwspeedによるキャラへの影響は一切ありません。
一方、コリジョンイベントを作ります。
敵にぶつかった場合を想定し、colllision obj_enemy というものにします。
そこに以下のコードを書きます。
vspeed = -4
if(other.x-x >= 0)wspeed = -2;
if(other.x-x < 0)wspeed = 2;
敵が自分より左にいるか、右にいるかで吹っ飛ぶ方向を変えています。(敵と逆側に飛ぶようにしています)
ステップイベントの最初に書いたコードにより、キャラが壁、地面にぶつかることでwspeedが0となるので吹っ飛びも終わります。
これにアラームイベントを組み合わせることで、無敵状態を作ったりもできます。
キャラに関してはロックマンのスライディングのようなものを追加できたらな~
と試行錯誤中でございます。
また、現段階では見せられたもんではありませんが、メニュー画面とポーズの実装がうまくいきそうです。
本日は以上です。
1.二段ジャンプ
空中でもう一回ジャンプ出来るようにしたい!!
ということでやってみました。
まず、ジャンプ回数を表すcount_jumpという変数と、最大ジャンプ数を表すMAX_jumpという変数を作ります。
count_jump=MAX_jump;
MAX_jump=2;
これでMAX_jumpをいじるだけでジャンプ回数をいじることができます。
そして、ジャンプの処理の部分を
if(move == 1 && keyboard_check_pressed(global.k_jump))
{
vspeed=-jump_speed;
}
から
if(move == 1 && keyboard_check_pressed(global.k_jump))
{
if(count_jump > 0){vspeed = -jump_speed;}
count_jump -= 1;
}
とします。
青い部分が追加分です。
ジャンプが実行されるたびにcount_jumpを-1し、0になるまでジャンプさせることができるようにしました。
2.空を飛ぶ
空を自由に飛びたいな~♪
ということで飛ばしましょう(照れ)
やりたいことは
ジャンプボタン押しっぱなしで一定時間浮力を与え続ける
ということです。
コードは長くなる上に飛び飛びになってしまうので省きますが、考え方としては
①ジャンプキーが押しっぱなしになったらboost_flgを1にする。
②boost_flgが1の時、count_boost(浮力を与えられる時間の上限)を減らし続け、vspeedを与える
③count_boostが0以下の時にboost_flgを0にし、vspeedを0にする。
④キャラが着地したらcount_boostを元の値に戻す。
ということをしています。
count_boostはいわばロケットの燃料のようなもので、この値が多ければ、浮いていられる時間が増えます。
3.吹っ飛ぶ
ダメージを受けた時にキャラを吹っ飛ばすという処理です。
まず、ステップイベントに
if(place_free(x+wspeed,y+vspeed))x+=wspeed;
というコードを書きます。
また、クリエイトイベントでは
wspeed = 0;
とします。
この段階ではwspeedによるキャラへの影響は一切ありません。
一方、コリジョンイベントを作ります。
敵にぶつかった場合を想定し、colllision obj_enemy というものにします。
そこに以下のコードを書きます。
vspeed = -4
if(other.x-x >= 0)wspeed = -2;
if(other.x-x < 0)wspeed = 2;
敵が自分より左にいるか、右にいるかで吹っ飛ぶ方向を変えています。(敵と逆側に飛ぶようにしています)
ステップイベントの最初に書いたコードにより、キャラが壁、地面にぶつかることでwspeedが0となるので吹っ飛びも終わります。
これにアラームイベントを組み合わせることで、無敵状態を作ったりもできます。
キャラに関してはロックマンのスライディングのようなものを追加できたらな~
と試行錯誤中でございます。
また、現段階では見せられたもんではありませんが、メニュー画面とポーズの実装がうまくいきそうです。
本日は以上です。
PR
アクセスカウンター
プロフィール
HN:
岩
性別:
男性
趣味:
読書・ゲーム
自己紹介:
・好きな作家
夢枕獏/綾辻行人/椎名誠/北杜夫/スティーブンキング
・ハマったゲーム
R-TYPE/WILD ARMSシリーズ/イースシリーズ/九龍妖魔学園紀/SIREN/ぐわんげ/プロギアの嵐/エスプレイド/エスプガルーダ/式神の城
夢枕獏/綾辻行人/椎名誠/北杜夫/スティーブンキング
・ハマったゲーム
R-TYPE/WILD ARMSシリーズ/イースシリーズ/九龍妖魔学園紀/SIREN/ぐわんげ/プロギアの嵐/エスプレイド/エスプガルーダ/式神の城
カレンダー
ブログ内検索
最新記事
(03/21)
(01/17)
(10/05)
(08/05)
(07/27)
忍者アナライズ