その3 マッピングの概念(キャラクターを歩かせる)

プログラミングを始めてみると
プログラムは計算式の実行
であることに気付くと思います



ゲームのプレイ画面では
キャラクターがマップ上を
歩いたりしているのに・・


プログラムには
足したり引いたり
ループしたりの計算式しか無いし・・

マップ上を歩かせる計算式なんて
存在しないじゃん・・



計算式ばかり覚えても
ゲームが作れるとは思えないんだけど・・



そんなことは無いんです
概念(考え方)アルゴリズム(手順)
さえ分かれば
計算式の応用でゲームは作れます




じゃあ一体・・
どういう仕組み
キャラクターはマップを移動しているの??







 概念(考え方)

キャラクターは
マップに見える数字の上を移動しています



その数字とは
地形の種類や高さ
通れる通れないなどを判断する数字です




実際にキャラクターの周囲を数値化してみましょう・・

キャラクターの座標(現在いる場所)を
中心として

上下左右の地形が
進める場所なら
進めない場所ならとします







この場合、キャラクターは
上のと右の
進むことができます

左のと下のには
進むことができません



この数字を
は壁、は平地など・・
画像で表示したものが
マップになります




ゲームでは
このように数字が並べられたマップ上
キャラクターが歩いていたり
配置されたりします








 アルゴリズム(手順)

考え方について少し理解できたら
次はアルゴリズムです



たとえば平地をという数字
壁をという数字
何も存在しない場所をとします


00000000
222222
1111
1111
1111
221122
00000000


このように数字を並べてみたものを
適当な画像で表示してみます



ん・・?

はむはむ♪の家の中じゃないの・・?



そうです
数字の羅列を画像表示したもの
ゲーム画面になるのです


見せ方を変えると・・


house


こんな感じになります


ちなみにどちらの画像も
数字の配列は同じものです




数字を配列化し
マップとして認識できるものにすることを
このコンテンツではマッピングと呼びます






先ほどの数字配列に
キャラクターをとして配置します


00000000
222222
11
1111
1111
221122
00000000


キャラクター
x座標(左から数えて)
y座標(上から数えて)
に居ることになります



キャラクターのx、y座標の位置を変えることによって
キャラクターはマップ上を歩くのです



・数字を配列化してマッピング
・キャラクター位置を指定
・進む際の条件式を作る



これらが揃えばマップの上にいる
キャラクターを歩行させることができます





マップを進む条件式の簡単な説明としては ・・


キャラクターのy座標(上から数えた場所)
が、1減るとその先は壁なので進めない
よって1減らさない


x座標1増えると
平地なので進めるのでx座標を1足す


という感じになります





以上がマッピングと
キャラクターがマップ上を歩くためのアルゴリズムです


この動画は
この章の解説を出来るだけ分かりやすく示したものです


実際のゲームでキャラクターが
数値化されたマップの上を歩く様子も
動画に収録しています




その3-2では
このコーナーで解説したものを
実際にプログラムに組み込む方法

プログラムへの実装について解説します!