1 名前:名無しさん@お腹いっぱい。 mailto: [01/11/21 04:33 ID:???] がんばりましょう。
501 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/01/31(土) 12:25:30 ID:nxG0Rhj8] しばらくSGGKで頑張ってみますw こちらはまだ言語の文法理解が足りなくてつまづいてる感じです。 >474で言った「移動先を決める処理を関数みたいにして別ファイルにする」に挑戦中。 >489の手書きメモ見て考え中。
502 名前:436 mailto:sage [2009/02/01(日) 01:22:03 ID:d2a+qgnL] FPSもうヤダー
503 名前: ◆Fp.xSEIREI mailto:sage [2009/02/01(日) 04:11:26 ID:ppxlATZm] >>502 dixq.net/rp/43.html
504 名前:436 mailto:sage [2009/02/02(月) 00:48:40 ID:XcNeBYjh] できた!ありがと〜
505 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/02(月) 22:53:46 ID:+VJz49//] 技術的な話は自分にはまだまだ無理な様ですが、いつかは分かるようになりたいです〜orz 昨日、移動先を決める処理を関数みたいにして別ファイルにしてみたつもりでコンパイルしてみたら、 「Warning: パブリックシンボル _chaseballmover がモジュール XXX\DEBUG\SOCCERGAME.OBJ と XXX\DEBUG\FIELDPLAYERCONTROL.OBJ の両方に定義されている」 という警告文がずらりと出てしまった・・・。 それからずっと考えていてフッと思ったのが、移動処理はクラス化したのでその宣言をヘッダファイルに書いていたけど、今回のは宣言と同時にオブジェクトも定義?したから、 クラス{}オブジェクト; が記述されているヘッダファイルを何箇所かのファイルの先頭にインクルードしてたからかな〜と思い始めた。 このオブジェクトがいわゆる「外部変数」になってるような感じで それを複数箇所にインクルードした事で同じオブジェクトが外部変数として複数定義?されたという事になっていたとすれば、それが警告の原因かも??? 今日はここまででちょっと試せそうにないです。
506 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/02(月) 23:31:37 ID:+VJz49//] と言いつつちょっとだけ書いてみたけどダメだった。 技術だけじゃなく文法的な話もまだ無理みたいな感じです・・・orz
507 名前:436 mailto:sage [2009/02/03(火) 01:26:13 ID:U+3zAauW] アナログパッド入力出来る様になりました。コンフィグファイルから実数値も読み出せる様になりました これによりFPSを0.001フレーム単位で指定という無駄な事が出来ますw FPS関連で解ったんですが、変数型によって有効桁数が当然あって それを考慮せずにあまりに桁が違う数同士を計算すると 情報落ちと言われる物が起こってしまうらしく。 自分の場合、システムカウント(整数)とμs(実数)と言う桁数が違いすぎる変数同士を計算した為 小数点以下の桁が消失して、細かいフレーム調整が出来なくなってました 自分と同じ様な初心者の方は注意です 計算の順序を考慮してコードを組んだらサックリ動きました。勉強になりました その他過程で知った事 ・時間でタイミングを取るよりフレームでタイミングを取る方がいいらしい ・floatよりdoubleの方が容量が大きく処理も早い ・動きの激しいゲームでは、キャラクター座標を内部で256倍とかして管理するといいらしい >>505 オブジェクト指向の話はサッパリワカメです;広範囲に手を加えた後に出るエラーには変な汗が出ますw
508 名前: ◆Fp.xSEIREI mailto:sage [2009/02/03(火) 02:43:01 ID:b4/cfZ4i] オブ…ジェクト…? 変数はint、double、bool、LONGLONGってのを使ってるな(・∀・) 変数ごとの処理速度の差はあんまり考えたこと無かったなー。intにできるとこはintにしてるけど…
509 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/03(火) 23:28:01 ID:6PB7lMIm] >>507 小数点以下の十進数を小数点以下の二進数で一対一で表現する事は出来ないような事を どこかの本で読んだ記憶がありますが、あまり自信は無いですw こうなってくるとコンピュータの勉強も必要なのかもしれませんが、今は手が届きそうに無い状況です・・・orz >>508 自分も変数は、int、float、boolぐらいしか使ってなくて、オブジェクトを変数と言ったのは、 今参考にしてる14歳シリーズのC++わくわくゲームプログラミング教室wにたまた変数と書かれてあった為で、 これもまたあまり自信は無いです。 昨日のバグはなんとか取れた感じ。 今回の移動処理のヘッダファイルをあるヘッダファイルに書くと、そのヘッダファイルもまた別のヘッダファイルに書かれていたりするので 結果的にヘッダファイルがヘッダファイルを呼ぶような状況になっていて思わぬ場所にも書かれていたからかもしれない。 でも、ヘッダファイルの2重呼出し防止策、#ifndef、#define 〜#endifは書いてあったから、これが原因の自信はなくて、 結局、今回書いたヘッダファイルの中にあるクラス宣言と同時に定義したオブジェクトの変数?を必要としているcppファイルがあり、そのcppファイルの先頭だけに 今回作成したヘッダファイルをインクルードして、他にインクルードした所は全部消したら、エラーも警告も出なくなりました。 プログラムも長くなり、かなり危ないシーンがこれからも増えてきそうな予感w
510 名前:436 mailto:sage [2009/02/04(水) 00:56:29 ID:Da4U9lAm] ちょこっとだけ、コードの整頓と、マウス入力をつけました >>508 調べたらfloatが遅かったのは昔の話で、最近ではあまり差は無く、環境の影響のが大きい様で。 FPUによってfloatの方が高速だったりするそうです >>509 解消された様で良かったです〜
511 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/04(水) 22:59:39 ID:0WPinhOQ] かろうじて解消できてる様な感じです〜w 抜き出した移動処理部分をメインループから呼び出せるようにしたつもりが動かず。 エラー20行出た。最初の数行はコンパイラの言ってる意味が分からなかったけど、 分かる所から先に直していったら、その意味不明なエラーもなぜか出てこなくなった。 しかし、プログラムを起動しても選手が動かなくなってしまった。エラーの出ないやっかいなバグ・・・orz
512 名前:436 mailto:sage [2009/02/05(木) 00:48:53 ID:xwepftsp] キー設定ファイルからボタン名を読み込んでキーコードに変換する物を作ってます
513 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/05(木) 23:07:23 ID:O65/6Go1] こちらは昨日から変化無しです〜。 移動処理部にprintfDxを書いてみたら何か適当な数字がずらーっと出てくるので 移動処理部に処理が移っているはずだけど選手は動かない。 という事で気分を変えて本を読む事に・・・。
514 名前:436 mailto:sage [2009/02/06(金) 01:05:54 ID:DkLm7FbZ] >>513 自分も今日は変化なし・・・じっくり構想を練っています
515 名前: ◆Fp.xSEIREI mailto:sage [2009/02/06(金) 07:39:07 ID:kUyKQz9d] 枠作ったりゲームシステム考えたりいろいろ 自機ショットのスムーズに曲がるホーミングレーザーを実装に向けていろいろ
516 名前: ◆Fp.xSEIREI mailto:sage [2009/02/06(金) 12:17:19 ID:kUyKQz9d] エフェクトのクラスいじってたら古すぎワロタ 開発初期のまんまだぜ…8月か…?
517 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/07(土) 00:31:41 ID:xxcJdwT9] 自分もバグ取れたら、構想やゲームシステムを考えてみようかな〜と思ってます。 選手のx、y座標を計算するのに使っている数値をデバッガで見ようと思いついたもののネット見ても方法が分からず断念。 もう1つ気になったのが、式の中にある1フレームあたりの移動量を現す数値をコンストラクタという初期化用関数?で設定していた点。 これをやめて、その式をコンストラクタの外に書いたら動いた。 理由は勉強不足で分からないけど、とりあえずこれで進めてしまう予定。 実はまた別のバグが出たけど今日は時間切れ〜。
518 名前:436 mailto:sage [2009/02/07(土) 01:34:15 ID:EB28/pCl] やる気が激しく低迷中・・・みんな俺にかまわず先に行くんだ・・・!!
519 名前: ◆Fp.xSEIREI mailto:sage [2009/02/07(土) 18:29:46 ID:aA+gcqfk] オーバーフローこわい アイテムの初期化ミスったら音声ファイルハンドルぶっこわれたパネェ
520 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/07(土) 23:35:24 ID:fMJHJAn5] >>518 だ・・・大丈夫!やる気が0にならない限りは大丈夫です〜。 >>519 「C言語 オーバーフロー」で検索してみましたが、む・・・難しそう・・・orz。 昨日の別のバグというのは、 1.Zキー押してないのに選手がマウスカーソルに向かっていく。 2.自分以外の選手全てがボールから離れていってしまう。 今日もあまりやれなくて未解決!!!
521 名前:436 mailto:sage [2009/02/08(日) 01:26:03 ID:q6Hviut/] もう一ヶ月経ったか、早いなぁ >>520 どうも〜 作成は止まってますが、なんだかんだでずっと考え続けてはいます
522 名前: ◆Fp.xSEIREI mailto:sage [2009/02/08(日) 08:19:34 ID:W7UWcBdq] >>520 正確にはオーバーフローじゃないかな?似たようなもんか。うちのは例えると 50個の配列変数をintで確保して、70回ループで初期化してしまいました。はみでた20回分はどこの変数を初期化したのでしょう☆ ってなった。画像や音声のハンドルを保存してるメモリ領域にはみ出てエラいことになったw >>521 やる気が出ないときってあるよな〜 書き出したらキリのいいとこまでとまらなくなるがそこまでが遠い…
523 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/08(日) 23:11:00 ID:DeawIxvP] 時間経つの早いですね〜。2月もあっという間かも・・・。 そういえば自分も画像データを読む時に配列変数1個ずれてプログラム書いてエラーになった経験がありますw バグは>520の2.はなんとかクリア。 選手の座標決める式はおおざっぱに書くと、(次の座標)=(今の座標)+(1フレーム移動量)X(sinまたはcos)で、 その中のsin、cosを算出する式が別にあって、その中で(選手座標)−(ボール座標)としてたのが間違い。 その部分を(ボール座標)−(選手座標)にしたら直ったw
524 名前:436 mailto:sage [2009/02/09(月) 00:59:47 ID:Mr5/Oitn] ちょっと出来そうな案が浮かんだので、ポチポチとやってます >>522 ありがと〜 ここに書き込む事で大分やる気をもらってます >オーバーフロー 自分は文字列を上限超えて格納したら、以降コードを修正してもデバッグが起動不能に・・・w;
525 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/09(月) 23:01:35 ID:77ZsJA8v] >520のバグ1.は未解決です。 >517で言った構想やゲームシステムは、どちらかと言えば「やる事リスト」を考える事になりそうな感じ。 週末までになんとかできれば・・・。
526 名前:436 mailto:sage [2009/02/10(火) 00:42:25 ID:CgwFXK0K] ずぅー っとキーコンフィグの仕組みをイジイジしてます
527 名前: ◆Fp.xSEIREI mailto:sage [2009/02/10(火) 02:20:35 ID:Bgt+PgnG] ゲームのプロセス優先度を変更して実行中のFPSのばらつきをほぼ0に(・∀・) スカイプやってもエンコやっても処理落ちしない!けどフリーズしたらヤバそう
528 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/10(火) 23:45:39 ID:bVQ8HCA1] こちらは、「>520のバグ1.」未解決〜。(間違いなさそうな気がするけどそんなはずないだろうし・・・) こんな時は14歳から・・・の本に目を通してみます。
529 名前:436 mailto:sage [2009/02/11(水) 00:27:47 ID:Up2cQUgT] 今日も今日とてキーコンフィグ 今日も明日もキーコンフィグ >>527 マルチコアならダイジョウブ!
530 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/11(水) 15:14:11 ID:mkWNCyhh] >>527 、529 「ゲームのプロセス優先度を変更」、「マルチコア」で検索〜! む・・・難しい内容でした。 バグの原因発見! 原因のソース部分は内容的には下記の様になっていて、 このelseブロック内では最初以外の選手IDだけ処理される様な気がしていたけど、 良く見れば、Zキーを押さなかった場合、最初の選手のIDについても処理される事に気付いた。w そして最初の選手のmove関数はマウスカーソル追従型にしていたから、 Zキーを押さなくてもmove関数が呼び出されて、選手がマウスカーソルに追従するというワケ。 while(選手IDが最後){ if( (選手IDが最初) && (Zキー押した) ){ (最初の選手データのクラス).move(0,0);//マウスカーソルを目指す関数が設定されている。 } else{ (それ以外の選手データのクラス).move(ボールx座標,ボールy座標);//ボールを目指す関数が設定されている } ID++する。 } 原因は分かったけど、どのように直すかは検討中・・・orz
531 名前:436 mailto:sage [2009/02/12(木) 00:40:35 ID:qdQhKDNX] まだまだキーコンフィグ 一応途中のテストでは動いたものの、見た目が悪いので書き直しと残りの書き足しで、あと一日かかりそう
532 名前:名前は開発中のものです。 [2009/02/12(木) 20:18:47 ID:3ETp66yJ] 皆さん頑張ってますなあ。 僕も頑張らねば……
533 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/12(木) 23:46:17 ID:0sUNNefd] お互い頑張りましょ〜! (>530の続き) else{ と書いてあるところを else if(選手ID != 最初){ としたら直った!!! 次は、やる事リスト作成またはもう少しプログラムを手直しするかのどちらかで行く予定です。
534 名前:436 mailto:sage [2009/02/13(金) 00:58:37 ID:Xaou+w4f] 風邪引いたー最近ちょっと変だったからもしやと思ったけど・・・皆さんも気をつけて まだテスト途中ですが、キーコンフィグ一応完成。アナログだろうがPOVだろうが何でもこいです
535 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/13(金) 23:22:42 ID:NesIqe+1] キーコンフィグ、気になってネットでちょっとだけ調べてみたらやっぱり難解。 もしかしてWindowsプログラミングかも? 自分もWindowsプログラミングにトライする準備勉強してみようかな〜。(まだ早いかもしれないけど) 以前、すぐに挫折した経験ありです・・・orz (それで今はDXライブラリ+主に14歳シリーズ書籍) 風邪の方は、とりあえずマスクを用意してきます〜。 「やる事リスト」はもう少し後にして、まずはボールのバグを直す事にしてみます。
536 名前:436 mailto:sage [2009/02/14(土) 00:35:45 ID:XMi119GB] あ〜何やってんだ自分; 「完成」したのはファイルからボタン名を読み込んだりキーコードに変換したり、各命令にボタンを割り当てる部分で キーコンフィグ画面や設定を保存する処理などまだまだやる事沢山あります。誤解を招く書き込みしてすいません 今日はウィンドウのタゲが他に移って戻った時にFPSがおかしくなるのを修正 >>535 自分は基本DXライブラリのリファレンスとヘッダファイル?と標準関数の説明ページに書かれている事以外は使えません;
537 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/15(日) 00:02:48 ID:jh3k09Ob] >>536 そ・・・そういえば、自分はDXライブラリを説明見てインストールしてしまったら、 もうその時の事を忘れてしまい、なんで動いてるのかを良く知らないで使っている状態になってます。・・・orz (ボールのバグの原因?) 全選手とボールの当たり判定が「当たり」の時に選手のフラグ用メンバ変数をtrueにする。 「Zキー押し」と「フラグ=true」が同時に成立していたら、カウント変数を初期化(=30)し、フラグ=falseにして、 ボールを蹴る選手の移動方向と同方向に移動させる。 カウント変数を毎ループ1ずつ減らし、if(カウンタ>0){ボール移動処理}にしてるので、 カウント0になるとボールは止まる。 これで分かった問題点は・・・、 1.ボールに触れた時にZキーを押さずにボールから離れてもフラグがtrueのままになる。 だから以前4方向移動だった頃、ボールから離れてる時にZキーを押すとボールが動いたと思われる。 今はZキー移動なので、触れた瞬間にボールが蹴られてしまうし、 他選手がボールに自分より先に触れた時に自分がZキーで移動してたら、他選手のフラグ=trueになるので、 他選手もボールが蹴れてしまう。 こ・・・これを直すのは辛そうな感じ。 そのままにしておいて他の事やるかもですw
538 名前:436 mailto:sage [2009/02/15(日) 01:02:19 ID:INXhf2VE] コンフィグ画面を作ってます。やっぱり見た目が変化するとモチベーションが違いますね〜
539 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/15(日) 22:20:49 ID:HE3msbh5] 自分も選手11人出したらモチベーション上がるかもです〜。(もうしばらく先になりそうな感じ) ボールのバグについては、 アタリフラグを当たり判定でONして、ボールを蹴った直後にOFFしてるのがおかしいと思った。 これだとボールに触れても蹴ってない選手がいたら、その選手のアタリフラグはずっとONのままになってしまうから・・・。 という事で、当たり判定の関数内で選手がボールに触れたらON、離れたらOFFするようにしたみた。 そしてZキーは移動用にしてるので、「蹴る」をXキーにしてみた。 コンパイラは通ったけど、ボールに触ってる時にXキー押しても何故かボールは動かない。 原因不明〜。また日数掛かりそうな予感。(一日あたり少ししかやれないので・・・)
540 名前:436 mailto:sage [2009/02/16(月) 01:19:41 ID:/BiYzi6H] う〜むどうもうまい処理の仕方が浮かばないです。引き続きコンフィグ画面を作り中
541 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/16(月) 22:32:50 ID:YITEZ4OH] バグ取れずです。・・・orz if文の後に書いてあるボールの移動処理のブロックにprintfDx("%d",3);を書いても 何も表示されないので、if文の後のボール移動処理ブロックに処理が移ってない感じ。
542 名前: ◆Fp.xSEIREI mailto:sage [2009/02/16(月) 23:27:24 ID:agCOi5px] ブレークポイントつかってる?(・∀・)左の方クリックしたら赤い○つくやつ そこで処理とめて変数の中身見たりできる www.dotup.org/uploda/www.dotup.org14196.jpg
543 名前:436 mailto:sage [2009/02/17(火) 02:43:28 ID:u6gSAOgi] >>542 うわああぁこんな便利な機能を隠し持っていたとは・・・! 今まで変数を全て画面に表示してチェックしてました
544 名前: ◆Fp.xSEIREI mailto:sage [2009/02/17(火) 04:59:49 ID:0pJ8V4zK] クラスのメンバを一気に見たりできるから超便利だぜ(・∀・)
545 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/17(火) 23:52:55 ID:t8GcL2rZ] >>542 ありがとうございます〜!画像も見てみました。 自分のはターボデバッガというのが入ってるのですが、何故かブレークポイントが最初の数行までしか設定できず、 その他いろいろ使いこなせない場面があり、ちょっと放置気味でした・・・orz ネットで調べてもあまり情報が載っていない様なので、情報の多いデバッガを使えるコンパイラがあれば、それに乗り換えが必要かもしれません。 でも、もうしばらく頑張ってみます〜。
546 名前:せいれい mailto:sage [2009/02/18(水) 00:48:38 ID:uhVOawfK] 俺のコンパイラはVC++2008EEだ(・∀・)便利
547 名前:436 mailto:sage [2009/02/18(水) 01:08:38 ID:4Q2oRHHM] 今日はサボってしまた。。。明日がんばります
548 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/18(水) 23:47:13 ID:GV05nuHS] 自分も今日はあまりできませんでした。・・・orz VC++2008EE、検討してみます。(今度の土日で試してみるかも) ターボデバッガ、何故か画面右上の「HELP」をクリックしても 何も表示されないので以前から放置して諦めてたけど、偶然解決。 自分はデバッガ画面をかなり縦長に初期設定していてたらしく、 実はHELP画面はその一番下側に表示されていて普段は隠れている格好になっていて、 スクロールしない限り見ることができなかったのが原因。 でも、肝心のブレークポイントの問題解決に繋がる説明は見つからず・・・orz やっぱり、VC++2008EEに切り替えてそっちのデバッガでも同じ問題が出るかを 確認した方が早く解決するかも・・・?
549 名前:436 mailto:sage [2009/02/19(木) 00:40:29 ID:+d/NyJF6] ゲーム内のウィンドウ単位で関数化してみれば管理が楽かも・・・と思い立ち、試しに組み立て中 >>548 自分もVC++2008EEです。トゥルースペースといい、無料で使っていいなんてマイクロソフトは太っ腹すねえ
550 名前:せいれい mailto:sage [2009/02/19(木) 02:56:23 ID:TWrN13Aa] そろそろいつか投げてたレーザーの処理をきちんと片付けておこうと思ったり ある点Pが一辺の中点として存在する高さa幅bの矩形がr度回転している時の角ABCDの求め方って公式とかあるのかな このゆとり脳をフル回転させると 点Pからr+90度方向にb/2進んだ座標に点A、-90度方向にb/2進んだ座標に点B、点Aから-90度方向にa進んだ座標に点D、点Bから+90度方向にa進んだ座標に点Cを取れば矩形が描けるはず…!! 自作の「角度と移動量を入れたら座標を返す関数」を駆使すれば余☆裕☆DA フハハハハハ
551 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/19(木) 23:27:19 ID:l2on3TGr] >>549 現在はボーランドC++5.5コンパイラとBCCデベロッパーを使用(14歳シリーズC++がこれを使っていた為)していますが、 土日といわず今からでもと思いVC++2008EEをインストール中。今日はインストールまでで終わりそうです。 >>550 回転そのものの公式の存在については今の自分では見つかりませんでした。 やっぱり距離とsin、cosで1点ずつ位置を計算するかな〜と思いますorz
552 名前:436 mailto:sage [2009/02/20(金) 00:15:20 ID:BeiHPfXO] 引き続きウィンドウの関数化 >>550 >>551 数学苦手な自分にはさっぱりっす;
553 名前: ◆Fp.xSEIREI mailto:sage [2009/02/20(金) 02:06:24 ID:DwKgvB67] 矩形回転についていろいろ(・∀・) 拡張性を求めて試行錯誤
554 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/20(金) 23:59:53 ID:6hmoFzm5] DXライブラリのサイトにある説明に従ってコンパイラを設定し、 プロジェクトの新規作成までで今日は終了。orz 土日前にここまでやっておいて良かったかもしれないけど、ややこしい〜。
555 名前: ◆Fp.xSEIREI mailto:sage [2009/02/21(土) 00:52:09 ID:hRYbf/Bl] レーザー見た目だけ実装(・∀・)当たり判定はまだ files.uploadr.net/11030196b9/WS000851.JPG
556 名前:436 mailto:sage [2009/02/21(土) 01:09:18 ID:qlEwaizd] 今日も今日とて部品作り >>555 おぉぉすげ〜
557 名前:名前は開発中のものです。 [2009/02/21(土) 23:36:37 ID:lLbQtoox] >>555 うぉ!弾の絵が短い状態から細長く変化するという事は何か技がありそうな感じ。 こちらはバグが25箇所も出て、現在お手上げ状態〜orz ボーランドC++でやってた時はバグなかったのに・・・。
558 名前:436 mailto:sage [2009/02/22(日) 01:36:36 ID:LjZlw/rK] ボタンの入力系統ごとの処理をかきかき 十字キーを押すと左アナログからも数値が返ってくる・・・ 連動してるなんてしらなんだ
559 名前: ◆Fp.xSEIREI mailto:sage [2009/02/22(日) 02:04:08 ID:RhTsgzZG] 予告線から発生するタイプも実装(・∀・) www.dotup.org/uploda/www.dotup.org23879.jpg オプションにくっつけて回転させながら撃たせてみた あとは当たり判定つけるだけ(・∀・)
560 名前:名前は開発中のものです。 mailto:sage [2009/02/22(日) 03:20:53 ID:vuKwEEMt] >ボーランドC++でやってた時はバグなかったのに・・・。 それはバグっつーかコンパイラの仕様の違いでは……。
561 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/22(日) 22:01:00 ID:Iti7a7GO] >>558 、559 みなさん進んでますね〜。 こちらはバグが取れず当分の間足踏み状態が続きそうな予感です〜。 >>560 仕様が違うとコンパイラってこんなにも違うものなのかと痛感してます。 昨日のエラーは最後の3行、残りはワーニング(警告)。 エラー内容は、言葉忘れたけど、同じ定義が他にもされているという類のもの。 以前、staticメンバ変数は外部に実体の定義が必要らしいと知り、それをたまたまヘッダファイルの中で定義してたから、 そのヘッダファイルが何箇所かで呼ばれてるのがいけないんだろうと思い、 定義の部分をcppファイルに移したら、コンパイルが進み、「おっ!?」と思ったら ウインドウが出た直後に英文だけのエラーメッセージウィンドウが表示されて停止。 ワーニングも71個に増えた。・・・orz
562 名前:436 mailto:sage [2009/02/23(月) 01:09:18 ID:6s8IHBJl] 選択画面でのキーとパッド入力に対する挙動が出来た 今はマウスとホイールの分を組み立て中 >>561 コンパイラごとに書き方変えなくちゃ駄目って事ですか? 不便だー
563 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/23(月) 23:10:38 ID:ScQiYH5A] >>562 ボーランドC++で通ったなら、VC++2008EEでもいけると思ったけどダメでした。 VC++2008EEの方が何故かチェック厳しい感じ。 VC++2008EEで結構書き直ししてしまったので、もう一度ボーランドC++で書いて動いていた時の状態から 違う考えの修正をしてみようとボーランドC++のソースを見たら何故かVC++2008EEで今まで書き直してきた内容と同じになっていた。 VC++2008EEのプロジェクト?へのソース組み込み方法が分からなかったので、ソースをプロジェクトファイルのツリー画面に ドラッグドロップして操作してたのが原因らしい。どうりでプロジェクトファイルのフォルダを開いてもソースファイルが無いワケだ。 もう戻れない〜orz
564 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 00:28:26 ID:S/Istr7/] 関数内で使われてない変数があるだけでもVCは文句言ってくるしな。 GCCは気にしないでくれるのにw
565 名前:436 mailto:sage [2009/02/24(火) 01:55:47 ID:bo0/H7dJ] 引き続きマウスの入力分をかきこき >>563 あわわ;チェック厳しいのも場合によりますね ユーザ側でゆるめられる設定とかあればいいんですが
566 名前: ◆Fp.xSEIREI mailto:sage [2009/02/24(火) 03:18:11 ID:5+X9BMJV] 関数に構造体ポインタの渡し方がよくわからない(・∀・) というか構造体ポインタの宣言?がよくわkあああああああああ 構造体が配列になってる時はどうすればいいんだろう(・∀・)
567 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 06:03:45 ID:uqndkdFp] /* 何がわからないのか知らんが! */ #include "stdio.h" #define MS "z'goku" /* 構造体とその別名の定義 */ typedef struct tagS { char the_red_comet; } S; /* 構造体のポインタをとる関数 ポインタ経由の場合「->」で要素にアクセス */ void func1(S *ps){ ps->the_red_comet = '3'; } /* 構造体の配列をとる関数 関数に渡すとサイズの情報が欠落するので 渡す配列のサイズ(要素数)を一緒に渡す */ void func2(S ps[], int num){ int i; for (i=0; i<num; i++) ps[i].the_red_comet = MS[i]; } int main(void){ S s, as[sizeof MS]; int i; func1(&s); /* &で変数のアドレス(ポインタ) */ printf("%c\n", s.the_red_comet); func2(as, sizeof as/sizeof as[0]); for (i=0; i<sizeof as/sizeof as[0]; i++) printf("%c", as[i].the_red_comet); return 0; }
568 名前: ◆Fp.xSEIREI mailto:sage [2009/02/24(火) 11:51:58 ID:5+X9BMJV] うぉぉ(・∀・)こんなに難解なのか… もうちょっとがんばってみる ともかくd
569 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 14:01:41 ID:cPcauKWt] >>568 あー、いや、そんなむずいもんじゃないにょ。 多分俺の書き方が悪い。ぶっちゃけズゴックって言いたかっただけ。 構造体に限らず、変数はメモリのどっか特定のアドレスに格納される。 変数のアドレスは変数名の前に&付けると取り出せて、ポインタ変数へ保存できる。 int *pi;でint型のポインタ変数piが作れるように、S *ps;でS型のポインタ変数psが作れる。 int ai[num];でint型num個の配列aiが作れるように、 S as[num];でS型num個の配列asが作れる。 構造体のメンバにポインタ経由でアクセスする時は「.」じゃなく「->」。 構造体配列sのi番目の要素のメンバにアクセスする時はs[i].member。 >>567 のtypedefのとこは純C用の書き方。C++ならふつーにstruct S{char the_red_comet};でいい。 ちなみにfunc2(S ps[], int num)のとこは実際はfunc2(S *ps, int num)と同じだったりする。 配列にsizeof使うと配列全体のサイズが取れるけど、関数に渡した場合その中では 配列じゃなくポインタが正体なんで、sizeof使ってもポインタのサイズしか取れないのに注意。 配列の名前は単体で使うと先頭要素のアドレスを指すポインタになるんで、 呼ぶ時にfunc2(&as[0], sizeof as/sizeof as[0])としても同じ。 (関数に配列渡してる訳じゃなく、ポインタを渡してる) うん、確かに自分で言ってて難解な気がしてきた。俺は説明が下手だ。 このへんは構造体の話というより配列とポインタの話やね。 細かいこと気にせず動きゃいーんだの精神でがんがれ!
570 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 14:16:53 ID:cPcauKWt] う、よく見返したら'\0'まで出力してんな。恥ずっ。
571 名前: ◆Fp.xSEIREI mailto:sage [2009/02/24(火) 14:28:51 ID:5+X9BMJV] >>569 MSとかズゴックがCの関数か何かかと思った俺は うちのソース風にやりたいこと書くと 〜〜ヘッダー〜〜〜〜〜〜 typedef struct{ char the_red_comet; } S; void func1(ぽいんたっぽい引数){うんたら}; 〜〜〜〜〜〜〜〜〜〜〜〜 〜〜別のソースファイル〜〜 extern void func1(ぽいんたっぽい引数); extern S MOBILE_SUIT[100]; void func2{ int i; for(i=0;i<100;i++){ funk1 (ここにMOBILE_SUIT[i]のthe_red_cometのポインタをあげたい); } } こんな感じ。ちなみにmainとかは行数の都合により省略。mainは別のファイルにあるよっ あとDXライブラリだからstdio.hは入れられないんだ
572 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 15:27:17 ID:cPcauKWt] >>571 ↓こんな感じ。 void func1(char *p) { /* 何かの処理 */ } void func2(void) { int i; for (i=0; i<100; i++) { func1( &(MOBILE_SUIT[i].the_red_comet) ); } } アドレス取得の「&」よりメンバ選択の「.」が優先度低い演算子なので、 括弧で順序を指定してやる必要がある。 takagi.in/modules/bwiki/index.php?%B1%E9%BB%BB%BB%D2
573 名前: ◆Fp.xSEIREI mailto:sage [2009/02/24(火) 15:37:15 ID:5+X9BMJV] >>572 うおおおおおおおおおおおお!!!?コンパイル通ったwwwwwwwwwきちんと動いたSUGEEEEEEEEEEEEEEEEEEEEEE できたうっひょおおおおおおおおおおおおおおおおおぴょおおおおおおおおおおお 某関数がシンプルになったぜええええええええええええええええええええええYEAAAAAAAAAAAAAAAA ありがとう、ありがとうズゴック先生(;∀;) てか->とか * とか考えなくても &つけりゃよかったのねorz
574 名前: ◆Fp.xSEIREI mailto:sage [2009/02/24(火) 15:45:04 ID:5+X9BMJV] www.dotup.org/uploda/www.dotup.org2320.jpg ここに使われますた ポインタって便利だね
575 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/24(火) 23:16:12 ID:AWriAbTE] >>564-565 チェック厳しいですが、なんとかVC++2008EEでやってみようと思います。 ソース上書きしてしまって直前の内容には戻れなくなったしw >>566-574 ポインタっていつ見てもややこしいですね〜。勉強してる時はなんとなく分かった感じになっても しばらくして自分で書こうとするとまた分からなくなってしまってたりする・・・w 今日もコンパイラの使い方で足踏み状態。 既にあるソースをコンパイルに含める方法はわかったので、もう前のバージョンに上書きされる事は無くなった。 プロジェクトファイルのフォルダにソースをコピーしてから、「新しい項目の追加」の▼押して「既存項目の追加」で出来る。 処理がどこで止まっているかわからないので、画面右下の「呼び出し履歴」を表示させたいが、 デバッグでプログラムが止まった時に出るエラー画面でデバッグの「中止」を押すと、「呼び出し履歴」が消えてしまう。 これはエラー画面でデバッグの「再試行」を押し、次に出る画面で「中断」を押せば、「呼び出し履歴」が残る。 履歴は上からじゃなく下から上に向かっている事に気付くのに時間掛かった。 とりあえず、ゴールのデータを初期化する所で止まっているらしい。 ちなみにエラー画面の英文は、イテレータがどうのこうのという感じの内容でよく分からなかったけど、 たしかにそういうのを使っているので、その辺が原因かも?というところまで来てマス。
576 名前:436 mailto:sage [2009/02/25(水) 01:06:52 ID:ueY3gPVj] マウスとホイールの挙動も大体出来て、今はコンフィグ画面を組み立て中
577 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/25(水) 23:02:59 ID:yn9MVXN6] バグ変化無し・・・。 一行ずつ実行させようとすると勝手にWinMain関数から始まり、内部の関数を呼ぶところで 「現在の場所のソースコードを記述できません」と表示され先に進まず。 それならばと思い、昨日問題があると思ったゴール関係の処理関数内部一行目にブレークポイントを設定し、デバッグ開始し、 ブレークポイントで止まったところからF11キーを押して一行ずつ実行させてみたら いつの間にかエディタ画面内に「list」というタブが付いた画面が表示され、 その画面中身は見覚えのない理解不能なソースが書かれていて、何故か一行実行がこの画面に移ってしまっている・・・orz ちなみにエラー文は、「Experssion:list iterator not dereferencable」 一応検索してみたけど、自分に分かりそうなのは見つからず・・・。 気持ちを切り替えた方がいいと思い、今日はここで終了。
578 名前:名前は開発中のものです。 mailto:sage [2009/02/25(水) 23:18:59 ID:M83kTzla] リリースモードでやって、逆アセの画面みてるとかw MOV AX,BXとかそういうんあった?
579 名前:436 mailto:sage [2009/02/26(木) 01:18:57 ID:F2EPEs+N] 引き続きコンフィグ画面を〜
580 名前:名前は開発中のものです。 mailto:sage [2009/02/26(木) 04:04:36 ID:qHLjortN] >>577 ひょっとしてiteratorを++とかやってたり
581 名前:名前は開発中のものです。 mailto:sage [2009/02/26(木) 04:13:26 ID:qHLjortN] いや、ちがうなんだっけ えーとstd::list.iterator itr とかしたとき何かができなかったような…
582 名前: ◆Fp.xSEIREI mailto:sage [2009/02/26(木) 10:02:19 ID:0TSvd06Q] 二次元上での物体の自由落下についていろいろ(・∀・) 既存の関数を利用してそれっぽいのなら作れそう
583 名前: ◆Fp.xSEIREI mailto:sage [2009/02/26(木) 11:43:11 ID:EbeM2R2x] 矩形の4点座標を計算する関数に便利機能をつけたら引数14個のアホみたいな関数になってしまった
584 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/26(木) 22:12:21 ID:1SuK1bkP] >>578 確認したところデバッグモードでした。listというタブと逆アセンブルというタブの付いたウィンドウが出てきて デバッグを中断すると見れます。MOVとかは逆アセンブルの方に出ていて listのウィンドウは、 #if _HAS_ITERATOR_DEBUGGING if (this->_Mycont == 0 || _Ptr == 0 || _Ptr == ((_Myt *)this->_Mycont)->_Myhead) { _DEBUG_ERROR("list iterator not dereferencable"); _SCL_SECURE_TRAITS_OUT_OF_RANGE; } #else ・・・のような感じで意味不明な文が延々と1300行近く出力されます・・・。 >>579 早くバグを取って自分も先に進みたいです。w >>580 、581 iteratorをあまり理解しないうちにプログラムを書いていたら、 やっぱりそういうところがバグになって現れてしまうみたいです。 iteratorはプログラム内のあちこちで使ってるので大変ですが、 とりあえず本当にすべてのiteratorを使っているところでバグになるのか 切り分けをしてみようと考えてます。 >>582 ,583 自分もいつか選手にジャンプ&自由落下させてみたいけれど、バグが・・・w
585 名前:436 mailto:sage [2009/02/27(金) 00:36:41 ID:JFxOaYgu] まだまだコンフィグ画面 項目をオンマウスでアクティブ、から、オンマウス+クリックでアクティブ、に変更 たったそれだけの変更でもあちこち書き換えなきゃならない羽目に 仕様は予め細部まで熟考しとく事!>自分
586 名前: ◆Fp.xSEIREI mailto:sage [2009/02/27(金) 02:03:40 ID:gp2A0UAm] >>584 俺はそんなことなったこと無いなぁ…難しいことしてないからかもしれないけど レーザーの幅と長さに対する倍率で当たり判定のサイズを指定できるようにしてみた 長さ0.9倍、幅0.5倍を当たり判定に指定するとこの赤い四角が当たり判定に(・∀・)一枚目:最大時 二枚目:消滅時 きちんとレーザーの状態に合わせて自動で当たり判定のサイズも変わる便利仕様 www.dotup.org/uploda/www.dotup.org0283.jpg
587 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/27(金) 23:24:49 ID:U/xgHr9a] >>585 なんだか自分も仕様について考えてみたくなってきました。w >525の頃に言っていた「やる事リスト」の前に仕様決めた方がいいのかも・・・。 >>586 製作中は当たり判定表示した方が便利そうですね〜。(引数が15個に増えてる〜!) 自分もバグ取れたらちょっと考えてみたいです。 バグはまだ取れないけど、iteratorを使っている関数(選手、ボール、ゴールの初期化、 選手、ボール、ゴールの移動、当たり判定)の内、コンパイラで停止した関数がゴール関係だったので、 とりあえずゴールの初期化と移動の関数を呼び出す行に // をつけて注釈文にしたら、画面が表示された! なので、ゴール関係関数と他の関数でのiteratorの使い方に違いが無いか見比べてみるつもり。
588 名前:436 mailto:sage [2009/02/28(土) 01:22:18 ID:BN0uPU4y] そう、コンフィグです、今日も >>586 複雑そう・・・自分には無理だ; >>587 おぉ復活しつつあるようで、ひとまずホッとしました
589 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/02/28(土) 23:41:24 ID:6cM45uPX] なんとかコンパイルできるようになりました。 初期化関数については、元々上手くいってる選手やボールの初期化関数ではiteratorを使ってませんでした。 ゴール関係初期化関数だけiteratorを何故か使ってしまっていてそれがプログラム実行中のエラーになっていたらしい。 結局>577のエラーメッセージの意味は分からなかったので、先がちょっと不安な感じ。 何故か移動用関数内では、(*it). で要素にアクセスできているので不思議〜。 これでやっと>539のバグ取りに戻れる・・・orz (プログラム実行時エラーになる書き方、詳細は略) init(){ goallist.clear(); //GoalData型(ゴール関係のデータが入ってるクラス)のリストgoallistの要素を空にする。 list<GoalData>::iterator it; //GoalData型リストgoallistのどれかを指定するためのiteratorを設定 it=goaldata.begin; //iteratorをGoalData型リストgoallistの先頭を指すようにする (データの数だけループ){ (*it).x1=10; //GoalData型の要素に初期データを代入する (*it).x2=50; ++it; //iteratorを1つ上げて次のGoalData型の要素を指すようにする。 } (プログラムが無事実行できた書き方、詳細は略) init(){ GoalData gd; //GoalData 型データ1個分を仮保存するためのローカル変数gdを定義 (データの数だけループ){ gd.x1=10; //GoalData型の要素に初期データを代入する gd.x2=50; goallist.push_back(gd); //gdに仮保存したgoallistの要素一個分のデータをまとめてgoallistの最後尾の要素に登録 }
590 名前:436 mailto:sage [2009/03/01(日) 02:02:50 ID:fK/bT0En] >>589 お〜おめでとうございます 自分は停滞気味・・・
591 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/03/01(日) 22:35:05 ID:4AGEbIXn] >>590 ありがとうございます〜。 今日はほとんど進みませんでした。orz この数日のバグ取りの反動かもw
592 名前:436 mailto:sage [2009/03/02(月) 01:26:59 ID:yUGCkh1E] マウスオン+クリックで選択できる様に変更 もう3月!今年も残り10ヶ月を切ったぞーいそげいそげ
593 名前: ◆Fp.xSEIREI mailto:sage [2009/03/02(月) 17:23:38 ID:O2JzSRpM] list<GoalData>::iterator it; こ…これはいったい何をしているんだ…俺にはわからない…/(^o^)\ ゲームシステムについていろいろ(・∀・) 面白くするにはどうすればいいか、を考えてみる クソゲーを観察してみるのも勉強になるみたいね
594 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/03/02(月) 23:46:06 ID:MvrVI/rB] >>592 そういえばもう3月ですね〜、時間の流れが速すぎる〜。 >>593 C++で、配列みたいに複数のデータを管理できるコンテナクラスというのが標準でいろいろ用意されていて、 そのひとつにlistクラスというのがあり、そのlistクラスでGoalData型(←これは自分でプログラムの中で宣言して作った型)のデータを複数管理したいので、 どのGoalData型かを指し示す為にイテレータit(←配列変数の要素にアクセスするための添え字みたいなやつ)というものを宣言しますみたいな感じで自分は理解していますが、 自信はあまり無いです・・・orz ボール動かないバグ取れないですね〜。 if(ボール蹴る時のキーが押されてる)&&(ボールと選手の当たり判定用フラグ変数==true)の条件部分が真になっていない感じ。 ボールと選手の当たり判定用フラグ変数が、当たり判定関数で当たり=1と成っていても if文に来る直前でprintfDX()使って表示させて確認してみると何故か0になってる。 プログラム中では同じ変数名で書いていても中身は違うとなると 変数のスコープ(有効範囲みたいなやつ?)をよく分かっていなくてそれが原因なのかもしれないというのが思いついたけど それを確かめる方法が無い・・・orz
595 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 00:53:43 ID:j/EdIaTK] ひょっとして「押されている」と思ってるのが「押されたとき」だったり 【ハウツー】最初にマスターしたいVisual Studioのデバッグ機能 - 基本編 (1) ブレークポイント | エンタープライズ | マイコミジャーナル ttp://journal.mycom.co.jp/articles/2008/08/18/debug/index.html
596 名前:436 mailto:sage [2009/03/03(火) 01:13:26 ID:B6hdHZko] ウィンドウモード変更・表示倍率変更・フレームレート変更・FPS表示切替を選択できる様になりました >>593 面白く・・・最大の問題すなぁ・・・
597 名前: ◆Fp.xSEIREI mailto:sage [2009/03/03(火) 21:05:59 ID:9wM7nouk] www.dotup.org/uploda/www.dotup.org4085.jpg 回転行列による矩形と点の当たり判定実装(・∀・)
598 名前:SGGK ◆6pZCoAtaxk mailto:sage [2009/03/03(火) 22:56:23 ID:vs8eMq8g] >>595 ありがとうございます〜。デバッグは機能が色々ある様なので少しずつ覚えていこうと思います。 キー入力の状態については、実は自分はまだよく理解できぬままプログラムやってます・・・orz >>596 かなり順調にいっててうらやましいですー。 >>597 回転行列を当たり判定に使う・・・、む・・・難しそうな世界。 ボール動かないバグの原因なんとなく見えた。 フラグ用変数のスコープが違ってて名前は同じでもアドレスが異なっている別々の変数を それぞれの関数内で操作してるのではないかと思ったけど、どうもそうではなさそう。 ボールが選手に当たっている状態を表すフラグの立て方に原因があったと思われる。 これを説明するには一週間分の書き込みスペースを使ってしまいそうな感じ。
599 名前:436 mailto:sage [2009/03/04(水) 01:23:23 ID:+kKOKlkp] フルスクリーンから復帰すると古い方の拡大率になってたのに気付いて修正 マウスで窓枠ドラッグした時の拡大率を取得出来る様にした 今になってもっとシンプルなインタフェイスを思いつく・・・あ〜全体的に作り直したい >>595 勉強になります >>598 一つの結果が出るまでのスパンというか下ごしらえが段々長く大変になってきました;
600 名前:せいれい mailto:sage [2009/03/04(水) 21:55:43 ID:1TDttkKc] もうちょっと調整したらゲームシステム部分の作成に移れそう そろそろ背景やファイル入出力もいじらねば(・∀・)