アクションゲーム講座...

32
アクションゲーム講座 第一回

Upload: others

Post on 20-Feb-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

アクションゲーム講座第一回

Page 2: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

この講座は

•マリオのような簡単な2Dアクションゲームを

製作します。

Page 3: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

この講座は

•今までの講座と違い、

ソースコードを配布してその中身の解説を行う

•自分で読み込んで、自由に改変してみよう!

•ソースコードをもらっていない人はここで挙手!

Page 4: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

本日のメニュー

•2Dマップについて

•ジャンプについて

•当たり判定(衝突修正)について

Page 5: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

その前に!

•C言語講座の内容は覚えていますか?

•関数自作、プロトタイプ宣言、配列etc…

•ソースコードや過去の講座資料を見ながら

よく復習しましょう。

Page 6: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

2Dマップについて

Page 7: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

まあ、まずは動かしてみて•配布したZIPを解凍→action_kouza1.slnを開く

• そのままCtrl+F5でコンパイルして実行!

•左右キーとZキーで操作、ジョニー君が動く!

• DXライブラリの初期設定は要らないヨ

Page 8: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

map.cppに注目!• プロジェクトの中のmap.cppを開いてみよう!

•気持ち悪い二次配列が拝めます

Page 9: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

マップはゲームの基本のキ•配列の0と1がゲームのマップに対応しています!

• ここを変えると自分の好きなマップができる!

• RPGでも使うのでよく覚えておこう!

対応

Page 10: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

マップチップのサイズ•今回のマップは1マスが32x32ピクセルのサイズでできています。

• この1マスをマップチップなんて言ったりします。

• ジョニー君はこのマップチップと当たり判定をしています。

Page 11: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

マップまとめ

配列を使ってマップを作る!アクション以外にも使えます

Page 12: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

ジャンプについて

Page 13: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

ちょっと復習• DXライブラリのウインドウの原点は左上です!

• DXライブラリはY軸の正負の方向が反転しています!

Page 14: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

ジョニー君のジャンプの流れ①Zボタンが押されるとY軸の上方向(負の方向)に移動量が増加

JUMPFLAGが1になり、飛んでる間はジャンプできないようにする。

Page 15: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

ジョニー君のジャンプの流れ②飛んでいる間は重力が加えられ、上方向への移動量が減っていく

Page 16: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

ジョニー君のジャンプの流れ③そのうち移動方向が上から下になる

Page 17: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

ジョニー君のジャンプの流れ④地面に着地すると移動量が0になり、重力も加えられなくなる。

JUMPFLAGが0になり、またジャンプできるようになる。

Page 18: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

ジョニー君のジャンプの流れジョニー君の頭がマップチップにぶつかると、その時点で移動量が

0になる。

(でもJUMPFLAGは1なので、重力は加え続けられるよ!)

Page 19: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

ジャンプまとめ

ジャンプをするときは重力を使う!

アクションゲームに重力は不可欠です!

Page 20: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

当たり判定(衝突修正)について

Page 21: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

ジョニー君の動きは少し複雑

• ジョニー君はこれまでの丸や四角のようにただ動いているわけではありません。

•相当ビビりながら動いてます。

Page 22: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

ジョニー君の動き

①ジョニー君はまず上下方向から動きます。

Y軸方向の移動量に従って仮移動します。

Page 23: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

ジョニー君の動き

②仮移動したところで、ジョニー君の四角の四隅がマップチップに

当たっていないかを調べます。

Page 24: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

ジョニー君の動き

③当たっていれば、然るべき場所に移ります。

当たっていなければそのままです。

Page 25: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

ジョニー君の動き

④次にそこから左右方向に仮移動します。

Page 26: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

ジョニー君の動き

④仮移動したところで、再びジョニー君の四角の四隅がマップチップに

当たっていないかを調べます。

Page 27: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

ジョニー君の動き

⑤当たっていれば、然るべき場所に移ります。

当たっていなければそのままです。

Page 28: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

なんで四隅で判定するの?

•片方だけ接触している場合があるから

•比べるものより自分が大きい場合、すり抜けることもあるので、

その時は、方法を変える必要がある。

Page 29: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

条件式の+1とか-1とかって何?

•判定基準が四角の内側になるので、そのための補正。

•左上ならX方向に+1、Y方向に+1、右上ならX方向に-1、Y方向に+1

左下ならX方向に+1、Y方向に-1、左下ならX方向に-1、Y方向に-1

の座標で当たり判定を行う

Q.もしも+1と-1を取っ払ってしまうと・・・?

Q.何で判定基準が内側になるのか、考えてみよう

Page 30: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

当たり判定まとめ

当たり判定は四隅で!

条件式に要注意!

Page 31: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

ただし注意

• この方法はマップチップもプレーヤーも四角の時のみ有効

→キャラの形が変わったり地形が複雑になると

条件がまるっきり変わってしまうので気を付けよう!

Page 32: アクションゲーム講座 第一回softmedia.sakura.ne.jp/w/images/c/c7/2015アクション...本日のメニュー •2Dマップについて •ジャンプについて •当たり判定(衝突修正)について

次回予告

マップ移動について

次回は9月6日です

後日今回のソースコード詳細解説を載せます