忍者ブログ
Profile
HN:gp-hss

職業:高校生

趣味:3DCG

言語:C全般

環境:VC++ 2008 EE

3DCG:Softimage Mod Tool

自己紹介:
ゲームプログラマー目指して勉強している者です。
現在 C++ 修得にむけて頑張っています。

Began study since 2009/8/21

Latest CM
[06/28 soulmorning]
Latest TB
1  2 
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

author : gp-hss ×

ball_yoke(.c)
ball_yoke(.exe)
制作時間:5時間

今回の課題は2つの独立した動作の実現。
○が上から降ってくる動作とプレイヤーの●が移動する動作。
(スコアなど衝突判定は流れ作業的にやっているので独立しているとは言えません。)
結局試行錯誤していろいろ試したのだが実現することはできませんでした。
それぞれの動作が独立できればものすごくいろんなことができるようになるのに・・・。
問題なのは入力待ちのときにボールが降らないこと。
入力を自動化できれば話は別なのだが。
例えばこのプログラムで言えば、入力待ちの状態が0.5秒続いたらコンピュータが自動的にスペースを入力するようにして、そこにプレイヤーが矢印キーのどれかを入力することでプレイヤーの移動を実現する。
これでプレイヤーが何も入力しなくてもボールが落ちてきて、矢印キーを入力すればプレイヤーは移動するということになります。
矢印キーが押されてもボールが落ちる動作は続行するようプログラミングしているのでその辺は大丈夫です。
それにしてもなぜなのかわからないのだが、矢印キーによるボール降下をするとなぜか y 座標2つ分ボールが降下するのだが・・・。
よく見直してみたのだがわからなかった・・・・。
入力の自動化ができないのでとりあえずプレイヤーにスペースを押しっぱなしにしてもらっているのだが、そこに矢印キーを入力すると入力が上書きされるみたいで矢印キーを離してももう一度スペースを押さないとスペースが入力されないのだ。
これだとカクカクしてせっかくの爽快感がなくなってしまうしかなり面倒になる。
どうにかできないものだろうか。
しかもこいつにはまだまだ問題があるのだ。
○(敵球)の x 座標値が奇数のときに生じる問題や、敵の球はそこにいっても消えません。
まぁ消えるようにするのは簡単だけど。
それ以外にも結構問題いがあるので見つけれるひとはすごいと思います。

まぁ~こいつは未来の僕に託してあるので、より高度なプログラミングができるようになったらまた作り直してみたいと思っている。
でもそんときにこんなわかりにくいプログラムのしくみがわかるのだろうか。
まぁいいか。「作り直す」んだし。
ではまた今度。
(そういえばまだ○×の解説してなかったな・・・・・)

拍手[0回]

PR
author : gp-hss ×
○×ゲーム(exe)
ソースファイル(.c)

「猫でもわかるプログラミング」で○×ゲームを作ってみるというようなものがあるのだが、これは僕でも自力で作れるなと思い作ってみた。
作ったって言っても結構前だけど。
上記ファイルの実行はコマンドプロプトの画面(?)で実行することができます。
詳しくは「覚書」の実行環境導入の仕方で解説するつもりです。
まだまだ初心者な身なのでちゃんとした作品みたいにはつくれません。
申し訳ない。
あとソースファイルをみていただければ分かるのだがカーソル位置の取得にエスケープシーケンスは使っていないので詳しくは「猫でもわかるプログラミング」で見ていただきたい。

ソースファイルはカスなので分析してみようとなんて思わないでください。
ていうか参考にもならないぐらい分かりづらいと思います。
なので「覚書」で改めて解説をするつもりなのでそれを参考にしてください。

カーソル位置取得などはじめてのことが多かったので初めのうちはなかなか思いどおりにならなかったです。
結局7時間ぐらいかかってしまった・・・・。
でもこれでカーソル位置取得などこのプログラミングで得られる知識は完璧に理解できたので結果的には勉強になったかな。
それにしても何なんだ GetStdHnadle(・・・・・) など SetConsoleCursorPosition など長い!
幸いなことにタイピングは得意だったのでそれほど苦にならなかったが長いな~。
ただ意味がちゃんとあるのですぐに覚えることができたので良かった。

ちなみにゲーム中は数値を入力するごとにENTERを押してくれって書いているのだが、実はスペースで区切って入力してもちゃんと動作するのだ。
なぜだかわかりますか?
ぼくも曖昧にしかわかっていないのだがたぶん scanf  関数の性質だと思う。
この辺も「覚書」でいろいろと書くつもりです。
似たような関数がいっぱいあるからねぇ~。
putchar , putc , getchar , getc , gets , puts それぞれに仕様が違うので覚えると結構強みになります。
あくまでも初心者の僕にとってはですが・・・。

まぁ~そんなこんなでいろいろやっていくつもりなのでよろしくお願いします。
(・・・・・あぁ、大丈夫なのかなぁ。こんなことやって勉強が疎かにでもなったりしたら・・・・・・・・・・。)

拍手[0回]

author : gp-hss ×
忍者ブログ | [PR]
 | PAGE TOP
write | reply | admin