[過去ログ] 1人でゲームが作れるように修行します。 (984レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
779(1): 弾幕シュー単独製作 ◆Fp.xSEIREI 2009/06/10(水)16:40 ID:EqJP7EkH(1) AAS
図を見たがクラスがよくわからん俺の脳は溶けた
俺も形から入るタイプ?なのかな
とにかくソースコピペしてきて動かして説明見ながら数値いじってどれがどんな意味を持っているのかを理解しながらで今まで来た
今は図は描いてないけど頭の中でコースに敵が配置されて、それぞれが行動して、弾を発射して、それぞれの弾が動いて…をそれぞれのオブジェクト単位でイメージしてる
こ、これがオブジェクト指向かっ!?
780: SGGK ◆6pZCoAtaxk 2009/06/10(水)23:54 ID:0H3uzG7E(1) AAS
>>778
!!!。 も・・・もしかして最初のスレの頃からとか・・・?
そういえばあの頃から今年の8月末で制作活動2年経過・・・orz
そう考えると今は確かに手の届く範囲でいいから、2年経つまでにもう少し制作を進めたい感じデス。
>>779
オブジェクト指向といえば、以前自分はこの本で勉強した事があります。
「憂鬱なプログラマのためのオブジェクト指向開発講座」図のルールは、ちょっと古くなっているかもしれません。
省2
781: SGGK ◆6pZCoAtaxk 2009/06/11(木)00:15 ID:wFQjkK8D(1) AAS
で・・・でもこの本、C++の理解にはかなり役立ったので捕捉しておきます。
(では、就寝〜)
782(1): SGGK ◆6pZCoAtaxk 2009/06/11(木)23:53 ID:tsBzZsmm(1) AAS
(就寝〜)と書くのはやめる事にします。後で見ると恥ずかしい気がしてきたので、書き込み無ければ、それが就寝という事にしておきマス・・・。
とりあえず、
1.ボールの動きに関するプログラムを状態遷移図を参考に書き直す。(switch文か(その7)のCでやる予定)
2.必要なオブジェクトを考えて動かなくてもいいから一通り書きそろえる。(例えば、レーダー、得点や経過時間の表示)
を8月末くらいを目標にやる予定。(またしばらくの間、潜伏状態気味になるかも・・・)
783: 弾幕厨◇せいれい 2009/06/17(水)01:53 ID:oeAllobB(1) AAS
最近はCの勉強から離れて絵の練習メイン
一面ボス予定
外部リンク:imepita.jp
784: SGGK ◆6pZCoAtaxk 2009/06/18(木)00:09 ID:rAYGKFc7(1) AAS
画像見れました。以前うpされてた一面に合ってる感じでいいですね〜。(森のイメージかも?)
こ・・・こちらも次週こそは頑張らねば!(汗;)。
785: 弾幕◇規制中 2009/06/22(月)02:05 ID:N4D7tCzn(1) AAS
おお!イメージが伝わっているようで何より〜
エフェクト関係の処理を書き直し中ー
786: 弾幕シュー単独製作 ◆Fp.xSEIREI 2009/06/29(月)20:07 ID:+JGJQUIm(1) AAS
そして誰もいなくなった(・∀・)
787: SGGK ◆6pZCoAtaxk 2009/07/02(木)23:03 ID:b+wN0Brh(1) AAS
ご無沙汰してます〜。
こちらは全然進んでないので書き込みし辛かったといった感じ・・・orz
まとまった時間が取れない、自分にスキル無い、そもそも出来るんだろうか・・・等
言い訳ばかり思いついてしまって・・・(汗;)
でもやっぱり一番の原因はちょっと休んでしまった事かも?
長距離走も途中で休むとまた走り出すのが大変だし、それと似た感じ。
毎日5分でもいいからコンパイラ開いて2〜3行の変更でもいいから続けるような感じで制作を習慣化する事をとりあえずの目標にして、
省1
788: 2009/07/03(金)00:06 ID:JaV45M/k(1) AAS
switch一杯になって見ずらくなると思うから
こんな風にしてみては
#define HITO_MAX;
enum HITO_NAME =
{
P_GK,
P_FW,
省5
789: 2009/07/03(金)00:22 ID:fzfQVmFk(1) AAS
あー、ゴメン読み込みか
790: SGGK ◆6pZCoAtaxk 2009/07/03(金)23:52 ID:e0JtKd5o(1) AAS
ありがとうございます〜。そ・・・そうです。実は読み込み用なので
FW1,FW2,MF1,MF2,MF3,MF4,MF5,DF1,DF2,DF3,GKに1〜11を割り当てて
switchでデータ読み込みを区別するつもりです。
でも、これでは選手のポジションが分からないので、選手のメンバ変数に
FW1・・・GKを持たせて、判別出来るようにする予定。
今日はノートに手書きでフィールド書いて選手の初期座標の大体の見当を付けたのみ。
結局出来るのだろうか〜?という不安が常につきまとう〜・・・orz
791(1): SGGK ◆6pZCoAtaxk 2009/07/06(月)23:23 ID:/XAahswg(1) AAS
選手データ初期化の箇所に(cx,cy)、(px、py)、(x,y)とあり、
(cx,cy)はカメラ座標を選手クラスの各オブジェクトに保持する為、(px、py)はプレイヤー座標として使用するつもりだったが、
結局カメラでview関数を実行し、カメラに見えているものを表示する時点でカメラ座標原点を基準に座標計算していたはずだからたぶん(cx,cy)、(px、py)はどこにも使っていないはずだな〜と思い、
(cx,cy)、(px、py)を思い切って削除したが一応動いたので他に影響が無いか心配だけどこれでよしとする・・・orz(時間ないので)
選手はまだ8人だけど、switch読み込み用の番号は定義しなおしてしまってるのでFW、MF、DF、GKからFW1、MF1、DF1、GKに変えたら
選手がボールに接近しなくなった・・・orz
番号が飛んでるからかな〜という感じがするものの時間切れ。
792: SGGK ◆6pZCoAtaxk 2009/07/10(金)00:07 ID:mqP/JGqP(1) AAS
間違ってるのは分かってるので、本来ならばそれを直して先に進めばいいんだけど、
その間違ってる場合にはこのような結果になっているはずだ・・・という自分の予想と
実際の結果が異なっていてそれが何故なのか分からず、足踏み状態。
793: 2009/07/10(金)02:07 ID:YvH8VYH4(1) AAS
>その間違ってる場合にはこのような結果になっているはずだ・・・という自分の予想
そういう思い込みはデバッグの敵だ。
確実にひとつひとつしらみつぶしにチェックしていくのが遠回りのようで実は近道。
794: SGGK ◆6pZCoAtaxk 2009/07/11(土)00:22 ID:imCs8e9D(1) AAS
確かにどこかに思い込みがあって気付いてないところがあるのだと思います・・・。
表示される選手の敵味方の数が自分の予想と違うだけなんだけど、これは気になるので
もう少しだけ粘って原因について考えてみるつもり。今日はあまり時間取れず・・・orz
795: SGGK ◆6pZCoAtaxk 2009/07/15(水)22:47 ID:XDxoUqmF(1) AAS
色々考えてみた結果、switch文の理解が間違っていた感じ。
(8回ループ){switch(i){case1,2,3,4,5,6,7,8} push_back() }
switch文の中で各選手ごとに仮のメンバ変数にデータを入力し、switch文を抜けた直後に本当のメンバ変数にまとめてpush_back()で初期化データを入力していた場合は問題なく8人分初期化出来ていたけど、
今回>791で番号を22人分用意したのにまだ8人分しかデータ用意してなかったので、
とりあえず8人分のFW1、MF1、DF1、GK、FW1+4、MF1+4、DF1+4、GK+4でswitch分岐させたら
それは、
(8回ループ){ switch(i){case1,3,8,11,5,7,12,15} push_back() } だから、
省6
796: SGGK ◆6pZCoAtaxk 2009/07/18(土)00:17 ID:8Y4VDd7Y(1) AAS
(cx,cy)は、カメラの見えてる範囲を基準にした時の選手等のオブジェクトの座標。
(px,py)は、1ループ(1フレームとも言うのだろうか?)前の各オブジェクトの座標。
いずれも計算した直後にしか使わない数値だからメンバ変数にしなくてもいいかなと思っていたし、
改めてプログラムを見直しても削除による問題は見当たらなかった・・・。(どこか勘違いしてるかもしれないけど。)
時間掛かりすぎなので、少し前の内容で保存したプログラムファイルからやり直してみる事にする。
797(2): SGGK ◆6pZCoAtaxk 2009/07/21(火)22:16 ID:ekT8uXxV(1) AAS
原因が分かったような気がしてきた。(cx,cy)、(px、py)の削除はたぶん関係なさそう。
選手8人分のデータはリスト(配列みたいなやつ)に入ってるので、デバッガで見れないのかと思ってたけど、
ブレークポイントの位置を色々変えてみたら見れた。
呼び出す移動関数のアドレスがコンストラクタで0にセットされてたのが原因。(コンストラクタについてはあまり理解してません。)
switch文の中で選手データ初期値を一時的に保持する為のオブジェクトをループを繰り返す度に定義していたので、
その時にコンストラクタが呼ばれて初期化されたと予想。
caseに該当してればすぐに代入されるから問題ないけど、
省4
798(2): 2009/07/23(木)01:43 ID:h4mdjihR(1) AAS
>>797
久々に見にきてみたが、言っている事が意味不明だぜ
リストってstd::listかな?
最初は素直に固定長の配列使った方がいいと思うよ。
何をしたら何の値がどう変わるのかは把握しておくべき。
あと、switch云々の部分は、
おそらく選手リストの作成時の話だと思って話を進めると、
省20
799(1): 弾幕シュー単独製作 ◆Fp.xSEIREI 2009/07/23(木)05:27 ID:iEcpjkyc(1) AAS
俺もクラスについてはさっぱりだぜ
800(1): SGGK ◆6pZCoAtaxk 2009/07/23(木)23:50 ID:c0RlO6Zq(1) AAS
>>798
ほ・・・ほとんどその通りです〜。
ソースのところは、まるで14歳のC++を読んだのではと思うほどに的中してます。
>「選手8人分のデータリスト」
これは、最初はcaseを8通り用意していた(このときはswitch(i)とcaseがちゃんと対応してなかった)のを
22通り用意して22人分にして(今度はswitch(i)とcaseが必ず対応する様に直した)やり直したという事です。
た・・・確かに躓くことが多くなってきたので、自信は無いけどリストは使わないで配列で書き直すかもしれないです〜。
省6
801(1): 2009/07/24(金)02:04 ID:mfAIyrph(1) AAS
>>800
>>798です。
なるほど、理解できました。酔っ払った状態で考えるもんじゃないね、ごめんw
現状思い通りに動いてるなら無理にCに書き直す必要もないかと思うけど。。。
まぁごちゃごちゃ口出ししてしまうと、色々とよろしくない事になりそうなのでこの辺にしておきます。
がんばってー
802: SGGK ◆6pZCoAtaxk 2009/07/25(土)22:55 ID:VqHxa0v9(1) AAS
>>801
ど〜もですぅ〜。
で・・・では、次にまたバグったらCの配列でデータを持つ方法を検討する等、その時の状況で判断してみます〜。
とりあえず、レーダー実装に挑戦の予定。自機の動きがおかしいバグも直さねば(汗;)
803(1): SGGK ◆6pZCoAtaxk 2009/08/01(土)00:53 ID:ohNFcHAR(1) AAS
暑過ぎてソース読むとさらに暑くなって何も出来ない・・・orz
もうすぐ2年経つのでなんとか区切り付けたい気持ちだけが先走ってて、そう言う割には何も進まない状況に気付く。
「 区切り 」などという妙なこだわりがあったかもしれないけど、そんなこだわりは捨てて、別に時間掛かってもいいんだし、またまた方針変更。(心が揺れ動き過ぎるけどw)
とりあえずC++特有の標準ライブラリっぽい機能(list、vectorとか他にも色々・・・)やC++のややこしいデザインパターンがどうのこうのというのを無くし、
配列で書き直せないか検討してみる事にした。クラスの枠組みだけは残して、クラスの中身をCのみで書けないかな〜と妄想。
でもC++を勉強したからC++のゲーム本も多少は読めるようになったのだし、無駄ではなかったと自分で自分をフォロー・・・orz
C変更、出来るかどうかもわからないのにやると言ってしまった(汗;)
省1
804: 2009/08/01(土)12:46 ID:kMjIc7hq(1) AAS
vectorだけでも覚えておけば便利だよ
配列でやりたいことはだいたいそれが機能持ってる
805(1): SGGK ◆6pZCoAtaxk 2009/08/02(日)00:45 ID:WarO0L28(1) AAS
vectorの場合、配列の最大数をオーバーして呼び出す心配がないと自分では解釈してたので、確かに便利だと思います。
>803では、vectorを使わずにCでpush_back関数を作るような事を意味してるようなモノなので、むしろCでやる方が
関数を色々自前で用意する工数が増えるので、そのための勉強も必要だろうし、かなり難しい事になって相当時間が掛かりそう。
「昨日はCと言って今日はC++か!?」と言われそうなので、その辺は触れないでおく事にしマス。
昨日気持ちがCの方にググッと傾いたのは、ブラックボックスとして使っていた画像関係の処理が入ってるクラスの中に
push_back(要素のクラスのコンストラクタ())というのがあり、コンストラクタには戻り値無いはずなのに何故push_back()の引数に戻り値のないコンストラクタを入れる事ができるのか分からず、
「Cで勉強しなおした方が・・・」というのもあったのですが、Cで自前関数を作って・・・というのも確かに難しい話。
省4
806(1): SGGK ◆6pZCoAtaxk 2009/08/02(日)21:44 ID:IrQ+hIeg(1) AAS
自分の書き込みを振り返ってみると、なんだか誤解されそうな気がしたので補足しておきます。
CとC++とを比較してどちらがイイとか悪いとかいうつもりは無いです〜。
今日はレーダーのヘッダファイルを作成。(まだコンパイルしてないので何とも言えないw)
関数の実体の定義ファイルは時間かかるかもしれない。
今まで書いたファイルを流用して一部書き換える程度に思ってても、
何度も繰り返しやってないと結構忘れてしまってる・・・orz
807(1): 2009/08/05(水)01:33 ID:p7gkHmD/(1) AAS
>>806
コンストラクタをpush_backの引数に・・・の話は、
ちょっと自信ないんだけど、こういうことなんじゃないかな
class Player;
std::vector<Player> players;
とあるとき、
players.push_back(Player());
省4
808(1): SGGK ◆6pZCoAtaxk 2009/08/05(水)23:03 ID:Hg0flzg1(1) AAS
>>807
ありがとうございます〜。
>805の文がそのまま伝わったような感じでなんだかスゴイです。
これはもう
>players.push_back(Player());
>は
>Player player;
省7
809: SGGK ◆6pZCoAtaxk 2009/08/06(木)23:06 ID:BKyuQu8I(1) AAS
座標初期化用関数、init()には選手全ての座標とボールの座標を引数に与えなければいけないんだけど書き方を忘れてしまっていた。
ソース内の似た箇所を探して、init(list<FieldPlayer> *,BallData *)だろうな〜という所までたどり着いて終了。←これは関数宣言用の書き方のつもり。
今日の作業はこの一行だけ・・・orz
810: ひややっこ 2009/08/07(金)23:19 ID:XlX/eGfK(1) AAS
なんかできたんで投下してみる
外部リンク[html]:hiyayakko.sarashi.com
811(2): ひややっこ 2009/08/08(土)21:27 ID:OnpPfR8B(1) AAS
VIPのプログラムスレにも晒して、ダウンロード50人ぐらい。
反応なし。
反応欲しければクソースでも晒すべきだったか。
今日はまだ何もしてない。
「ゲームのための3D数学」ちょっとページめくったけど、
胸を張って自慢できるぐらい全く頭に入ってない。
812(1): 2009/08/08(土)21:43 ID:7XsnXJy4(1) AAS
>>811
今時だとコンソールゲームは反応薄いかもね
それと突出したアイデアが盛り込まれてるというわけでもない
(もしかしたらあったのかも知れないけど・・・)ので、
ゲームの感想としてコメントできることはあまり無いかな
個人的にはちゃんとゲームになってるという点でよくできてると思った
調子に乗ってたらマーマンにやられてたんだぜ。。。
813(1): SGGK ◆6pZCoAtaxk 2009/08/08(土)23:13 ID:EWQBFfNa(1) AAS
>>811
VC++でしょうか。コンソールでグラフィック描画関係処理が無くても
プログラムには他にも必要な処理が色々とありそうなのでそれを完成できてるところがイイ!と思います。
こちらは座標初期化用関数がうまく行かず・・・orz
814(2): ひややっこ 2009/08/09(日)23:38 ID:4cX2q8XV(1) AAS
なんとなくサッカーゲームに手を伸ばしてみる。
1日で挫折の気配濃厚。
外部リンク:hiyayakkoprog.blog.shinobi.jp
画像リンク[png]:file.hiyayakkoprog.blog.shinobi.jp
>>812-813
その一言で報われた気分。
行ったり来たりの経験値稼ぎ、壁だったモンスターに勝つ喜びと次の壁の挫折感のバランスは
省4
815: SGGK ◆6pZCoAtaxk 2009/08/10(月)23:20 ID:2XNdx7FC(1) AAS
>>814
リンク先、拝見しました。サッカーゲーム制作、お互い頑張りましょ〜!
こちらは超スロー進捗でやってますが、年月かかっても2Dまではなんとか形にしたいな〜と思ってマス。
816: ひややっこ 2009/08/11(火)00:09 ID:SWc0L4T5(1) AAS
こっちも超スローペース。
VIPの画像スレでダウンロードに2時間ほどかけてる。低速回線たのしいなあ。
今日はベタ置きでプレイヤーキャラの配置と、位置指定したらそこに向かって動くように。
ぷるぷるするのは、場所がうまく定まらないんだろう。
距離計算いれて、3以内ならごまかすとか処理入れないと。
外部リンク[html]:hiyayakko.sarashi.com
817: SGGK ◆6pZCoAtaxk 2009/08/11(火)23:47 ID:+Oy8L6sE(1) AAS
1日でもう画面が出来上がって動いてるとは凄いです〜!。しかもグラフィックデータ無しで出来てる!
こちらは14歳シリーズの真似が限界なので、まるで進捗が止まってるかのように見える(実は止まってるorz)かもしれませんが、頑張りマス。
レーダーで選手を示す点の座標は初期化するときにスタート時に画面外で見えない座標(例えば、フィールドの隅っこ)にしておいて、
ゲームが始まったら、ループを繰り返す度に選手座標を取得してその座標を何倍かして、平行移動させてレーダーの範囲に収まるようにしようかと思ったところで終了。
今まで悩んでたのは、レーダーの各点がどの選手の点なのかを対応付ける必要があると思ってて、
そうするとレーダーの点も<list>で22個用意して、選手の<list>と常に1対1で対応させなければならなくなるので
それをやるのは自分には難しいと思ったから・・・orz
省1
818(1): SGGK ◆6pZCoAtaxk 2009/08/18(火)23:24 ID:/ICzDcow(1) AAS
夏期休暇終わったけど、何も出来ず・・・orz
初期化関数作成は停止状態。
>808で出来たかなと思っていた「レーダーの画像をロードする処理関数」に気になる点があったので見直し。
フィールドは、184x120が1枚 ← LoadGraph でメモリに読み込む。
選手は、3x3の赤と青を連結した3x6が1枚 ← LoadDivGraph でメモリに読み込む。
ボールは、5x5の白が1枚 ← LoadGraph でメモリに読み込む。
ように書き直すつもり。
省2
819(1): 2009/08/19(水)10:23 ID:eeA5WlNS(1) AAS
いや、一枚にできるなら一枚にして、切り出したほうがいいよ。
それと画像のサイズは256とか512とかのように2の乗数にする。
(たとえば512×256とか128×1024とか)
不要な部分が増えるけど気にしない。
今作ってる規模のものならほとんど関係ないだろうけど、
そうした方が処理早いんだってさ。
820(1): ひややっこ 2009/08/19(水)20:59 ID:lzem/ePR(1) AAS
規制明け。ここまでできた。
俺がこのスレ潰したんじゃないかと内心ドキドキしてた。
画面SS 画像リンク[png]:hiyayakko.sarashi.com
最新DL 外部リンク[zip]:hiyayakko.sarashi.com
何が起こったのかは、>>814のブログエントリから追っていってくれい。
説明が必要なら、したらばで受け付ける。
したらば・ひややっこ掲示板 したらば板:computer_42268
821(1): SGGK ◆6pZCoAtaxk 2009/08/19(水)23:37 ID:xQhLYDwc(1) AAS
>>819
ありがとうございます〜。
DXライブラリには、一枚の画像から異なる何種類かの大きさで切り抜く関数が無いようなので、
例えば32x32を4枚結合させて、
1枚目は、レーダーフィールド用、これを横6回x縦4回=24回分タイルを並べるような表示で192x128を表現する。
2枚目は、選手の赤3x3を左上に書いて残りを黒く塗って透過色を指定できたと思うので、これで表現。
3枚目は、選手の青3x3を(以下2枚目と同様)
省6
822(2): 2009/08/20(木)01:27 ID:rq/ethCb(1) AAS
>>821
宣言 int DerivationGraph( int SrcX, int SrcY, int Width, int Height, int SrcGraphHandle ) ;
概略 指定のグラフィックの指定部分だけを抜き出して新たなグラフィックを作成する
引数 int SrcX, int SrcY : グラフィック中の抜き出したい矩形の左上座標
int Width, int Height : 抜き出すグラフィックのサイズ
int SrcGraphHandle : 抜き出したいグラフィックのハンドル
戻り値 −1:エラー発生
省5
823: SGGK ◆6pZCoAtaxk 2009/08/20(木)23:54 ID:P8XU97EC(1) AAS
>>822
DXライブラリの関数リファレンスページで探していたにも関わらずこの関数に気付いてませんでした・・・。
これなら>818で考えてた画像を1枚に詰め込んでおいて、その1枚の四辺を2の乗数にし、
このDerivationGraph関数を4回使えば出来そうな気がしてきました。
これでちょっとやってみます。ありがとうございました〜。
824: 2009/08/21(金)01:25 ID:7KwnoiNd(1) AAS
俺もはっきりと解ってるわけじゃないけど、今まで俺が得た情報では
「元の画像」が2の乗数のサイズなら
切り出した画像のサイズはどうでもいいみたいだよ。
俺が誤解してるのかも知れんけど、俺はそう認識してる。
もっとも、切り出した方の画像も2の乗数サイズにしてしまえば
誤解か誤解でないかは気にする必要もなくなるけどね。
825(1): SGGK ◆6pZCoAtaxk 2009/08/22(土)00:03 ID:RiVKwg/q(1) AAS
>「元の画像」が2の乗数のサイズなら
>「切り出した画像のサイズはどうでもいいみたいだよ。
自分もその認識で明日、画像データを作って、プログラムを直してみようと思います〜。
826(1): ひややっこ 2009/08/27(木)22:19 ID:GmqjVtRm(1) AAS
規制明け。
ごめん飽きた。
プレイヤーを動かす前提のところまでは作って、
さてこれから敵AI、盤面評価に取り掛かろうかという土台作りのところまで。
ここまででもクソース晒してるんだから、穴が開くまで視姦して必要なもの盗んでくれ。
レーダーの実装は、レーダー用に別座標を用意するんじゃなく、座標一元管理して
割り算とかで描画ごとに計算して求めるのがスジ。
省7
827: SGGK ◆6pZCoAtaxk 2009/08/28(金)23:27 ID:sBvEqBOX(1) AAS
>>826
お・・・お疲れ様です〜。でも再開の時には何時でもまた戻って来てください〜。
色々頂いたヒントもいつか活用できるようになれるよう修行は細々と続けていこうと思ってます(超ゆっくりですが)。
>782や>825で自分で言った事がまだ出来ずの状態・・・orz
一応822氏の関数で画像データ読み込みの関数は書き直し、座標の初期化関数はいらないかもしれないので保留。
レーダーのクラス内にviewという名前のメンバ関数でも用意して表示しようかなと思ってるけど、物凄く作業が遅いので完成予想言えずな状態・・・orz。
828: SGGK ◆6pZCoAtaxk 2009/09/05(土)00:16 ID:mpLRq1Zr(1) AAS
レーダー画像読込、表示位置初期化、描画の関数を書いてコンパイル。
ヘッダファイルの書き忘れ、関数の定義と宣言での変数の個数不一致、メンバ変数のアクセス範囲間違い、
グラフィックハンドル4個欲しかったのにgh[3]と定義してgh[0]〜[3]あるような思い込み間違い。(gh[4]で定義したら直った。)
その他色々直してコンパイルは通ったものの、
1.選手を動かすとレーダーのフィールドが微妙に動く。
2.レーダーの点が1個しか出なくて、しかもボールが表示されない。
という現象が残ってるので、ゆっくりと考える・・・予定デス。
829(1): 2009/09/05(土)01:22 ID:em7bUaop(1) AAS
あてずっぽな勘
>1.選手を動かすとレーダーのフィールドが微妙に動く。
動き方によるが、除算した時に端数が出て余計な事をしてるのかも。
>2.レーダーの点が1個しか出なくて、しかもボールが表示されない。
全部表示させるつもりが一個しか表示してなかった、とか
全ての点が計算間違いによって一箇所に重なってしまってるか、
一個を除いて画面外に出てしまってるのか、で原因を絞り込むのがいいかも。
830: SGGK ◆6pZCoAtaxk 2009/09/06(日)00:42 ID:PMabGNkj(1) AAS
>>829
レーダー付きました〜。
原因は、描画する時に指定するレーダーのグラフィックハンドルと選手やボールのグラフィックハンドルの指定が入れ替わっていた事。
レーダーは、自分がコントロールできる選手の動きにあわせて動こうとしてしまい、選手やボールはレーダーの座標左上に全部重なって表示されていた・・・orz
>全ての点が計算間違いによって一箇所に重なってしまってるか、 ← が原因。ありがとうございました〜♪
次は、>>760で言っていた所を直す予定。3ヶ月以上過ぎて忘れかけてますが、
原因は分かってるのでどのようにプログラムを書くかを考えていく予定〜。
831(1): SGGK ◆6pZCoAtaxk 2009/09/17(木)22:24 ID:ujPBRvzy(1) AAS
>>760の問題は3日程で解決したけど、今度はボールが動かない問題発生。良く見ると、ボールが微妙に振動している。
とりあえず、>>760については、
選手の移動関数が、1.静止、2.マウス位置に向かう、3.ボール位置に向かう、4(x、y)に向かう、の4種類切り替えるようにしてあるのに対し、
呼び出された関数側でDXライブラリのGetMousePoint関数でマウス位置を得るようにしているため、移動関数側で「2.マウス位置に向かう」関数だけがカメラの座標を得られるようにして、cx+mx、cy+my
の変換をする必要があるけど、それだと関数1〜4を共通に呼び出して、呼び出された側で1〜4を切り替えるしくみが崩れるので今の自分では出来そうにない。
結局、選手の移動関数を呼び出す側でカメラの座標を読み出せるようにして、GetMousePoint関数も選手の移動関数を呼び出す側で使い、(cx+mx、cy+my)を「(x、y)に向かう」関数に渡して解決。
ボールが動かない問題については、昨日やっと原因に気が付いたけど、正解かどうかは未確認なので、後日の予定。
832: SGGK ◆6pZCoAtaxk 2009/09/19(土)00:22 ID:TwF/0L0P(1) AAS
うpに備えてフォルダをコピーしてそのフォルダと主要なファイルの番号を1つ上げる。
>>831のボールが動かず微妙に振動してる問題が解決。
ボールが画面端に来た時に反射するためのif文の範囲が(0,0)〜(640、480)になっていた。
ボールの初期位置はフィールドの範囲(0,0)〜(1696,1088)での座標(848,544)にしていたので
このif文だと常に条件に引っ掛かりループ毎に向きが反転して、1ループでの微小な移動しかしてない状態で向きが反転するので
振動しているように見えたのが原因。
ボール反転のif文の範囲を(0,0)〜(1696,1088)にして解決!
省2
833: SGGK ◆6pZCoAtaxk 2009/09/19(土)00:40 ID:5Ck1thZ0(1/2) AAS
原因は、ボールの移動関数の中で、選手が蹴る瞬間のx、y方向を計算する為の毎ループ更新されてる数値を
呼び出してるのだけど、その数値は選手の移動位置を計算する時にループ毎に更新され、選手のメンバ変数に入力しておかなければ
ならないけど、その計算式が入ってなかった為、x方向、y方向ともに初期値の1が使われ続けていたから。
が、それを直しても何故か動かない。・・・orz
相当悩んだが、ふと「コンパイルされてないのでは?」と思い、フォルダ内のobjファイルを見ると日付が古い!更新されてない?
良く見ると、選手の移動関数は、ヘッダファイルに宣言、定義、オブジェクト(インスタンス?)の生成処理がまとめて記述してあり、
これを修正したのに何も反映されてない事に気付く。(printfDX入れても変化無いのでおかしいと思った。)
省2
834(3): SGGK ◆6pZCoAtaxk 2009/09/19(土)01:06 ID:5Ck1thZ0(2/2) AAS
ここで区切りを付けてうp
外部リンク[html]:gamdev4.hp.infoseek.co.jp
835(1): STG ◆Fp.xSEIREI 2009/09/21(月)09:21 ID:EUcZHdoo(1) AAS
こちらのスレには久々の出没。エターナったわけではない
PC移行した直後に新PCのマザー死んだり規制巻き込まれたり散々だぜー
クラスの使い方というか便利さがやっと理解できたのでソースを1から書き直す。スパゲティを解消するためでもありより良い処理を実装するためであり
クラス便利すぎワロタ
>>834
問題なく動いたー
ボールか操作キャラを追いかけるように自動でカメラ動かすとサッカーゲームっぽくなりそう
省1
836(1): SGGK ◆6pZCoAtaxk 2009/09/22(火)00:48 ID:we6NkNm8(1) AAS
>>835
PC移行、規制解除おめです〜!
>ボールか操作キャラを追いかけるように自動でカメラ動かす
な・・・なるほど!難しそうだけど次はこれ(↑)を目標にしてみます〜!。
837: SGGK ◆6pZCoAtaxk 2009/10/02(金)00:25 ID:qUjxUVKo(1) AAS
改めて見ると自分の書き込み口調が2ちゃん的になりつつあるような気が・・・orz
それにしても時間の流れのなんと早いこと・・・、作り始めて約2年と1ヶ月半程でこの進み具合では
諦めるのが普通なのかもしれないし、続けるべきか悩むところ。
>836の課題はまだ出来ず・・・orz
カメラ(画面)の中心がボールを追いかける方法でやろうとしたのに対し、カメラ(画面)はボールのある方向とは異なる方向に向かってしまう。
838(1): 2009/10/02(金)01:19 ID:LvKXbccb(1) AAS
>カメラ(画面)の中心がボールを追いかける方法でやろうとしたのに対し、
>カメラ(画面)はボールのある方向とは異なる方向に向かってしまう。
カメラの位置ってのはカメラの位置として独立したものでしょう?
そのカメラの座標に、プレイヤーが操作したキャラクターを中心とした座標を入れるか、
ボールを中心とした座標を入れるか、の違いでしかないでしょう?
もしそこが正しくできているのに違う方向に動いてるのだとしたら
それは入れる座標そのものが間違ってるとしか考えられません。
省1
839: SGGK ◆6pZCoAtaxk 2009/10/03(土)00:20 ID:tUVDaRpM(1) AAS
>>834でうpした時のデータで作業していて上書きしてしまった事に気付く・・・orz
>>838
助言ありがとうございます〜。
1日おいて目を皿にしてソースを見たところ、間違い発見。
>それは入れる座標そのものが間違ってるとしか考えられません。
↑どうやらこれが原因のようです。
ボールの座標とカメラ中央座標の距離を出す式の中でカメラ中央座標はフィールド全体で見た座標にしなければいけなかったのに、
省8
840(1): STG ◆Fp.xSEIREI 2009/10/05(月)22:58 ID:avu8M6ED(1) AAS
画像リンク[jpg]:www.dotup.org
左の壁にボール押し込んで遊んでたらボール増えたw
当たり判定は無い模様
841: STG ◆Fp.xSEIREI 2009/10/06(火)06:13 ID:l/SEN5NP(1/2) AAS
テンプレートを覚えた!
SUGEEEEEEEEEEEEEEEEEEEEEEE
型自由って何てチート
多態勢によって適切なオーバーロード関数が呼び出される!
842(1): 2009/10/06(火)11:48 ID:LS2z0sEa(1) AAS
その分余計にメモり食うけどねー
843(1): 2009/10/06(火)21:10 ID:YLRyQOlh(1) AAS
>>834の時点でボール分裂するよ
って言おうとしたら、>>SGGK氏じゃなく>>せいれい氏だった(笑)
テンプレートやオーバーロード・オーバーライドは意味不明バグの温床になるからなあ。
理解はしててもイマイチ使う気になれない。
テンプレ推奨のSTLとかは使うけど。
ゲームプログラムならば、ソースがキレイになるならメモリや実行速度程度は許容範囲。
844: STG ◆Fp.xSEIREI 2009/10/06(火)21:36 ID:l/SEN5NP(2/2) AAS
>>842
なるほどー、やっぱりデメリットもあるのね
>>843
SGGK氏は気づいてるのかな
強力で便利な機能だけど危険だよなぁ
STLはやりたいことが微妙にできそうに無かったから似たようなのを自作
一年前のCを始めたころのソースはひどくてとても手直しできそうに無いから
省1
845: SGGK ◆6pZCoAtaxk 2009/10/07(水)00:02 ID:6L6MNmu7(1) AAS
>>840
ありがとうございます〜。これは気付いてませんでした。(汗;)
>左の壁にボール押し込んで
↑このコメントがヒントになってるような気がするので調べてみます。
画面に出るオブジェクトの移動計算と描画を別々の関数にしたときに何か見落としがあったのかもしれません。
原因がわかるまで日数かかりそうな予感・・・orz
846: SGGK ◆6pZCoAtaxk 2009/10/18(日)21:33 ID:MJjq88tM(1) AAS
2、3日しか経っていないような気がするのに、実際は10日以上過ぎてた。orz
ボールの表示は1個になった感じ。
自分のプログラムのメインループは順序がおかしいかもしれないけど次のようになっていて、、
(1)カメラ画面の座標計算
(2)カメラの見ている範囲にあるもの全ての描画
(3)選手の座標計算
(4)ボールの座標計算
省8
847: SGGK ◆6pZCoAtaxk 2009/10/19(月)23:02 ID:HC3YJnG/(1) AAS
今日は画面の切り替え(スタート画面、ゲーム画面と終了画面)が出来る様にしようと思ったものの、
やり方をすっかり忘れてしまってる(忘れるのはものすごく早い)ので、
14歳からはじめるC++の該当部分を読むつもり。(今日はあと30分くらいしかないorz)
画面の切り替えは元々参考にしていたソースに残っていたのに当時は画面遷移処理があるとソースが理解しにくいので削除してしまっていた・・・orz
結局それをまた元に戻そうというのは時間の無駄だったかも・・・。
本当はこのスレで一時期いろんなHPで調べてた「状態遷移の考え」を使いたかったけど、
14歳ソース復活の方がたぶん作業が早く進むと思うのでこちらを選択。
省1
848: STG ◆Fp.xSEIREI 2009/10/25(日)06:58 ID:0L4tr0A8(1) AAS
キーコンフィグ関係をざくっと組んだー
ここに来て初めてビット演算を勉強
849: SGGK 2009/10/29(木)00:23 ID:WOQZyTTw(1) AAS
パソコンが不調でコテハンの番号が見つからず、復帰に時間がかかりそうなので生存報告〜。
「ビット演算 ゲームプログラム」で検索!
難しそうなページがいろいろヒットしましたが、ひとつの変数でいろいろな
状態をチェックするテクニックみたいなものかも・・・。
いまやろうとしている「状態遷移」での判定にも応用できそうな感じ。
・・・と言ってる状況なので実はまだ画面の遷移はできてませんorz
時間の過ぎるのはアッという間だけど、今はまだあきらめないつもり。
850(2): 2010/01/16(土)13:32 ID:h9+5xWTR(1) AAS
すっかり書き込みなくなったけど、やってるかな〜。
851(1): 2010/01/16(土)21:05 ID:1E+5//pv(1) AAS
>>850
久々に来たかと思ったら違ったw
もう辞めちゃったかもね。。。
852(1): STG ◆Fp.xSEIREI 2010/01/17(日)00:17 ID:SItBpq9Q(1) AAS
俺は生きてるぞー
他の人は知らんww
853(1): 436 2010/01/17(日)02:33 ID:n4iFgyhw(1) AAS
すいません、すっかり怠けとります・・・俺は駄目な人間です
ストーリーや設定のアイディアだけが溜まっていく駄目進行・・・
854: SGGK ◆6pZCoAtaxk 2010/01/19(火)00:15 ID:fX0Gghpg(1) AAS
パソコンの不具合はなんとかなり、コテハン番号も無事見つかった。
書き込み規制が昨年末から続いていたけどやっと解除されたので久々に書き込み〜。
>>850
かなり休んでしまいましたが、まだ諦めてはいないです〜。
>>851
諦めてはいないけど、これ以上先にいけるか微妙に思ってます・・・。
>>852
省4
855(1): 2010/01/19(火)01:18 ID:KBTIDtQy(1) AAS
プログラムなんて小さな目標の積み重ねだと思うけどなぁ。
「画像表示させてみよう……できた」
「動かしてみよう……できた」
「操作してみよう……できた」
「動ける範囲制限してみよう……できた」
「背景つけてみよう……できた」
(中略)
省1
856(1): 2010/01/19(火)01:49 ID:c3+27muf(1) AAS
おお、意外にも(ごめんw)みんな生きてる
久々に自分も何か作ろうかしら
857: SGGK ◆6pZCoAtaxk 2010/01/20(水)23:55 ID:rGiwGeCw(1) AAS
>>855
書いた直後に自分も(大きな)は(小さな)だよな〜と思いましたw
まずは小目標として、昨年止まっていた画面の状態遷移の実装を今月中に出来るよう急ごうと思ってます。
>>856
自分は昨年末頃から制作継続が微妙な感じでしたが、なんとか戻ってきましたw
たぶん制作カモ〜ン!だと思いますよ〜。
858: 2010/01/27(水)22:19 ID:Dt03y0tk(1) AAS
なんとなくぼちぼちやってる。
タワーディフェンス系って、勝利の快感が薄いんだよなあ。
ボロボロになるまで攻められて虫の息でも守りきったという事実への達成感がどうにも実感できない。
859: SGGK ◆6pZCoAtaxk 2010/01/31(日)21:37 ID:i2sNFclZ(1) AAS
タワーディフェンス系といえば過去にコマンド&コンカーみたいなゲームをプレイしたことがあって、
資源採掘、武器生産、建築、防衛、侵攻、その他などのバランスを取るのが難しくてなかなか勝てなかった記憶があります。
こちらは昨年のパソコン不具合でソフト全部入れ直したのがうまくいってないようで、
問題無かったはずのプログラムがなぜかコンパイルエラー・・・orz
本(14歳シリーズ)の設定見直してコンパイラがDXライブラリを認識してくれるようにはなったみたいだけど、
ある変数が初期化されてないというエラーが残ってて、これをどう初期化すればよいのかわからずSTOP。
適当な数字入れると画面がものすごくちらついたり、画面が上下に2分割して画像が入れ替わったりする。
省2
上下前次1-新書関写板覧索設栞歴
あと 125 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.028s