« C言語において次に学習せねばならぬこと | メイン | ゲームっぽい物 »

2005年01月20日

とにかくC言語

まだ、try&errorで先に進める段階なのです。
むしろ進めない段階に早く到達したい。到達できるのか

文字列とファイル操作と前の日記に書きましたが、やはり物凄く必要です。とにかく必要
しかし、あれです。今日は「フィールドを歩く」プログラムです。
なぜなら、そっちの方が楽しそうだったから。
突っ込んで書くと、上の二つはまともに取り組むと勉強になってしまい試験期間にやるには少しヘビーです。息抜きの遊びなのに

http://misp.s4.xrea.com/b/mydata/move_on_map.c
http://misp.s4.xrea.com/b/mydata/move_on_map.exe

例によってwasdで移動、スペースキーで終了です。
壁を通り抜ける事はできず、穴に触れると死にます。
全体的に関数化の仕方がスマートではなく、拡張性が低いです。
つまり現在の形では次にこれをベースにしたコードが組みにくいです。
が、基本的な考え方を引き継いで作る事は可能そうです。
とりあえず、基本となるマップデータとリアルタイムに変動する表示用マップデータを分離すべきですね。
そうしないと、上を通れるセルを作ったとして、通り抜けるとデータが消えてしまいますから。

しかし、夢が広がりますよ。
このコードのままだと辛い物がありますが、しかし色々なゲームに応用できそうです。
もっとも、今のままだとかなり限られてくるので、以下の機能を付け加える必要があります。

・画面のスクロール
・プレイヤーキャラクター以外の動く物体 ← プレイヤーキャラクターのコードを増殖させればよろしいかと

しかし、改めてみるとリアルタイムに画面を再描画する機能が全く不要ですね、これ。
この前の3目並べと同じ事しかやっていません(汗
もう少し何か考えればよかった……。

*いつもの*
中国語 Λ||Λ
情報社会論 まあ。
金曜日に向けて言語学の試験勉強

投稿者 miff : 2005年01月20日 03:25

コメント

キャラが動く時だけ画面を再描画すればよいのではないでしょうか。
他にも動くキャラが出てくるならば
1.自機動く(データ上だけ。画面更新なし)
2.敵機動く(同上)
3.画面更新(動きが無ければ更新しない)
というのを毎ターン行えばよいのでは。
もっと突き詰めるとFPSがどうのとかいう話になっていく気配。

> Try&Error
連鎖した構造体をデバッガで追いかけると無限に
中身が追いかけられる罠。
助けてえらいひとー。(しくしく

投稿者 : 2005年01月20日 13:00

アドバイスを参考にして改良してみました。

http://misp.s4.xrea.com/b/mydata/move_on_map_smart.c
http://misp.s4.xrea.com/b/mydata/move_on_map_smart.exe

投稿者 miff : 2005年01月20日 22:37



XREAAD