学校

普通に学校行って帰ってきました。
今日はバイトが無いので
4限の実験、1時間延長してやってました。
高木に助けてもらいながら何とかクリア。
これで再来週は何もすることが無いぞっと。
いやー、実験って面白い。
で、帰ってきてゲームプログラミングの勉強。
なんだか同じ研究室のどんちゃんが
基本情報受かった勢いで
テクニカルエンジニアセキュリティの勉強初めてたし
これは負けていられないいいいいいい!!!
ちなみに上記の資格は国家資格なんですけど
レベル的には基本情報の2個上です。
本当は1個上に高木が受けたソフトウェア開発技術者
が、あるんですけど
多分、受からないだろうけどとりあえず
本買ったのかなあ。
学生でテクニカルエンジニア持ってたら凄いです。
さて、俺の勉強の方はというと・・・
まだまだ初歩の初歩、アルゴリズムの勉強中。
どの言語使ってゲーム作るかはまだ決めてません。
恐らくC++とDirectX
初めのうちは+DXライブラリを使おうかと思います。
簡単に説明すると・・・
C++でウィンドウズのプログラムを作り
ゲーム専用の処理をDirectXで書いて
(C++のコードにそのままかける)
DirectXの面倒くさい処理の場所を関数化してある
DXライブラリで何とかするって感じです。
本当はDXライブラリ使わないで書ければ
立派なゲームプログラマーなんですけどね。
何はともあれ、まずは何か作りたい・・・!
で、今日はキャラクタの移動について学習。
2Dの移動なら簡単なんですよ。
ドラクエみたいなのは縦横にマスがあって
移動がきっちり分かれてます。
最近のゲームやスタオーなんかも
マス目をものすごく小さくしてやれば
結構なめらか?に動いてくれます。
しかし!しかしですよ・・・
3Dのマップがあるんです。
↓こういうの

3Dじゃないな・・・2.5Dって奴?
このマップで2Dの設定のままきゃらを動かすと
奥に行っても手前に来ても大きさが同じで
不自然です。
奥に行けばキャラが小さくなるように
すればいいんです。
例えば
if( y <= 150){キャラの描画サイズ0.5の処理}
if(150 < y && y >= 200){キャラの描画サイズ等倍}
if(200 < y){キャラの描画サイズ1.2倍}
かなり簡単に書きましたがこんな感じで・・・。
これならマップの上方なら小さく、下方なら大きく
なるかもしれません。
でもさらに移動速度の関係もあります。
それはまたさっきと同じで
if( y <= 150){キャラの移動速度(間隔)小}
if(150 < y && y >= 200){キャラの移動速度(間隔)中}
if(200 < y){キャラの移動速度(間隔)大}
これでキャラの大きさの変化、速度の変化
には対応できました(無理やり)
そして問題は・・・
2次元のマップデータ(進入可能不可能データ)
を↑の画像に当てはめると
奥の方の左右が足りなくならない・・・・?
奥の方の右端と左端が進入可能だったとしても
二次元の
00000
01110
01110
00100
00000
こういうデータを埋め込むと右端、左端には進めない。
どうしたら解決できるか思案中です。
もっかいスタオーでもやりながら検討してみようかと
思ってます。
・・・そしてまた遊びの方向へ・・・orz


Posted

in

by

Tags:

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です