がんばりましょう。
がんばりましょうね。
そやねぇ。
でも、センスとかあるしね。
絵やる人とか。
シナリオ。
プログラム。
あと音楽。
すべて一人でこなせるのは、飯野賢治くらい?(爆)
当然使用ハードから自作だろうな
ひとりでも、いいゲーム作れる人は作れる。
…というか、同人ゲーだとイイと思ったものほど製作人数が実質的に一人
(HP運営とかのレベルでちょこちょこ関わってる人がいる場合が多いので)
である可能性が高い気がする。
まぁ代わりに、時間は際限なく食われているようですがw
>>4 非電源系はスレ違いカエレ!!と思われ
つーかココってテレビゲームオンリーだよね?
(電池つきゲームは昔夏休みの工作でつくったぞ!)
初心者の集まりならば
1人より多人数で作るほうが難しいぞ。
口だけ出されて、みんな何も
やってくれないっていう事もよくある
修行するぞ修行するぞ
今、プログラムと3dCGしかできないんだけど次は何の修行すべき?
でも修行といっても
どのくらいのゲームならゲームが作れるようになった
っていうんだ?
>6
いえ、PCゲーム(同人)OKです。
>9
プランナーの修行。
人材集め、感情(喜怒哀楽)とか精神論の勉強。
いいゲームを作るには人の心をつかまなきゃね!
>10
テトリスとかタイピングとか。
行動を起こして得点がでてレベルがあって。
ミニゲームでまともに遊べればゲーム。
とりあえず、どんなことがあっても不愉快な顔しなければ
対人関係はほぼクリアだよ。
それでまともにゲームができるかどうかは別の問題ではあるが。
14 :
はっせー:01/11/23 11:43 ID:wLcl02So
>>6 まぁ鉱石さがしからやるのは大変だろうから
ロジックICつかうぐらいからで許してやる。
16 :
名前は開発中のものです。:01/11/24 08:35 ID:yV+oLHxa
一人で作るといえば……
びんぼうソフトはまだ生きているのだろうか?
17 :
名前は開発中のものです。:01/11/24 11:06 ID:waQVIUw7
一人で作るならプログラムだろうが絵だろうが
徹底的に効率化するしかないだろうな。
19 :
ひろちゃんはゲーム開発するの?:01/11/24 11:38 ID:UZUQcH76
1から15まで一人で一生懸命にジグザグ運動してるよ.
うぅ〜ん.こりゃぁ〜年は25才ぐらいのヒトですなぁ〜ッ.(ウプッ♪)
20 :
文章は開発中のものです.:01/11/24 11:43 ID:UZUQcH76
★企画力や先見の目,営業も見捨てられんゾぃ,坊や. ガンバレよ.(ウプッ♪)
最初から賞賛されるゲームを作ろうとするな。
0点のゲームから作れ。
ゲーム作りの楽しさが見つかればあとは時間が解決する。
>>11 アンタに聞いてるんじゃないと思うが・・・。
誰なんだよこいつ。
23 :
かのん:01/11/24 13:59 ID:???
当方ひとりで作っています。
ひとりの方が気楽でいいね。
でもたまに寂しくなってちょこちょこ手伝ってもらったりは
するけれど。
>11
P/ECE関係に出没してます。
よろしく^^
25 :
名前は開発中のものです。:01/11/24 23:43 ID:MOx9UTTW
>>18 まー効率化って言うか、プログラムが出来ればそれほど問題でもないと思う。
たいてい、絵や音楽なんて一番最後でいいんよ。
音楽はどっかからパクったものをとりあえず入れておき、
絵は2Dなら「人」「壁」とか文字でもいいし、3Dなら単純な立方体で十分。
ここまで出来ればあとは、絵と音楽を作る作業のみになる。
自分に絵と音楽の技術がなければ、ネットで担当してくれる人を募集すれば
たいてい何とかなる。
26 :
25:01/11/24 23:47 ID:???
それが、効率化って事かも(w
>>27 PC-6001版やPC-8801版のスペースハリアーを思い出しターヨ
1人ゲー作の手始めにC++を勉強することにした。
ポインタがよくわからなかった。
やっぱ時代はデルファイだな、と思った。
Delphiもポインタは存在するよ。
あまり使う機会も無いし、意識させにくい設計になってはいるが。
ポインタは避けて通れぬ道だから、じっくり取り組もう。
C++の前に、まずはCをマスターしよう。
>>29 Delphiでもポインタ有りますし
終わったね
>>29 つか、C++の前にCでつまづいていてますよ。それ。
33 :
32:01/11/25 23:51 ID:???
被った、スマソ。リロードしないで書いてもた。
あああlfjだじぇおあぴおpらpポインタfkぁhfdかさ
ポインタdふあうぢあすfぢぱl;;!!
どうせやるならCやります。やっぱC最高!
ポインタでつまづいている人は、コンピュータのハードウェアの基礎の基礎
ビット・バイト・ワードなどとアドレス、データのメモリへの格納の仕方
といったところから勉強してみましょう。
その辺の基礎が判っていないから、つまづくのだと思う。
一度気分転換にアセンブラを学んでみるといいかもしれない。
>>36 そっから始めるのが最良と言えば最良かもね。
でも疲れるよね。
本読んで分からなかったら、それ関係のサンプルを
とことんイジってみればよろし。
メモリエラーで半日ぐらい悩めば嫌でも理解すると思うYO!
仕上げで、本で理屈を叩き込めばもっといい。
>>38 しかし、それをすると
問題があるのに一見正しく動き、いきなりフリーズするという問題の出る
諸刃の剣 素人にはお勧めできない。
って一瞬思ってしまったが。
とりあえず、メモリー周りしっかりしてる環境で作れば問題ないのかなぁ
40 :
6:01/11/26 03:12 ID:???
>>15 ハンドアセンブルしたのロムライタで焼いたけどゲームまではいけなかったよ。
マニュアルみてサンプル弄るので時間なくなっちゃった。
41 :
ひとりごと:01/11/27 09:56 ID:DyR1sy6B
作るぞ作るぞつる
トモダチイナインダネ...
>42
( ゚o゚)ハッ!それだけは言ってはいけない。
ま、1の決意表明スレってことで。
GBAで修行するのもいいかもよ。
46 :
名前は開発中のものです。:01/12/01 19:03 ID:dC1zT3zw
>45
なんでやねん
GBAにRPGツクールさしてが抜けてるのではないの?
>45
48 :
名前は開発中のものです。:01/12/10 20:34 ID:BhQ3wIA9
いょぅし!やる気になってきた!
まずは絵でもかくか
GBAのゲームを作ったとして、実機で動作確認できるの?
できるってばよ
>>48 絵から作ると(特にキャラ)、失敗する事が多かったり(笑
やっぱり、企画からがお勧め。
修行してるうちにシナリオ全然書けなくなりました。
プログラムと3DCGを習得したけどこれじゃ意味ねえ。
俺も2D絵とシナリオの修行をしているうちにプログラムが書けなくなりました。
困った。
57 :
名前は開発中のものです。:01/12/13 21:17 ID:jvOEPZip
せめて半年ぐらい、引っ張れる企画はないものか・・・。
>54-56
ワロタ。てゆか、54と55が組んで、さらにDTMの修行をしている
うちに3DCGが作れなくなったやつが一人加われば最強だな。
俺も最近絵かいてないな…
プログラムと絵の修行ばかりしてたら、
友達がいなくなりました。
それはしかたありません。
あきらめましょう。
ストーリーは毎日コツコツネタ書き溜めてなきゃ肝心なときに書けないし、
絵は毎日手を動かして練習してなきゃ目に見えて腕が鈍るし、
プログラムは毎日やってないと技術革新に乗り遅れる。
友達はちょくちょく会わないと疎遠になる。
>>61 くっ・・・全て当てはまる(だから完成しないのか)。
でも正直、友達は同じようにゲーム作ってる奴なら全然平気だし、
意見もらえたりして、楽しい。
それ以外の友達は、割とどーでもいい方々だったり(お互いにとって)。
63 :
名前は開発中のものです。:01/12/14 15:53 ID:vCBclBkv
>61
そだねぇ。
最低4人でチーム組まないと良いゲームができない理論だね。
一人はさすがに時間かかるしね。
ま、このスレは「1人でゲームが作れるように修行する」スレなので、
何とか1人でこなす手段を考えようや。
絵とストーリーは完成してしまえば、腕が鈍ってネタが尽きてもOKかな。
65 :
名前は開発中のものです。:01/12/14 19:46 ID:vCBclBkv
だとすればアドベンチャーがおすすめなんやろなぁ。
シナリオ書いて絵があればOKだし。
>>65 実際、近頃氾濫してるしね。しかしどれもイマイチ・・・
ゲームと言い張るからにはもう少し面白くして欲しいのぅ。
67 :
名前は開発中のものです。:01/12/14 22:09 ID:vCBclBkv
しやーないんちゃうかなぁ・・・。
そういうツールばっかりあるのもたしかやし。
絵は自分で描こう。シナリオとか企画もまぁ自分でやろう。
プログラムはなんかツールにたよるとして、
問題はサウンドなんだよなーくそ!
71 :
名前は開発中のものです。:01/12/15 03:57 ID:yXCgvtwm
72 :
名前は開発中のものです。:01/12/15 07:40 ID:qm5140pQ
>>61 絵もシナリオも、描かなきゃ鈍るほどの腕じゃないな(w
それに、技術革新なんて、どーでも良いようなゲーム作ってるし(w
つーか、ウチのゲームは、ネタとしては、レトロ技術だし(w
ただねぇ、レトロ技術もなかなか大変なんよ……
余計な処理とかイッパイ入れてるし(ふぅ)
>>72 PC-9801のMS-DOSでプログラム作っていたのだが、
しばらくプログラムサボっていて、ふと気がついたらWindowsの時世になっていた、
俺と比べれば多分マシ。
気が付いたらOS変わってたなんてのは、
コンシューマの気がついたらハード変わってたとか、
元のスタッフいなくなってたとか、会社なくなってたとかに比べればかわいいものかもしれん。
結論、ハード、OSの技術革新には常に気を配ろう。
>会社なくなってたとかに比べればかわいいものかもしれん。
今は亡き、ライトスタッフ……(黙祷)
77 :
名前は開発中のものです。:01/12/18 01:06 ID:LIZOnyyI
唯一出来ないのがプログラム。
自分の在籍している学校を考えると実に鬱な事実だ。
78 :
名前は開発中のものです。:01/12/18 01:15 ID:PlyDR1kj
これから10年以内を目標に一人で3D FPSを開発します。
79 :
名前は開発中のものです。:01/12/18 04:07 ID:0krI6WT3
>>1 毎日・ジグザグ運動している若干25才の青坊.夢に向かって走れやぁ!
>>78 10年? エンジンでも作るのか?
せめて、1年で形にしろYO!
81 :
名前は開発中のものです。:01/12/19 01:01 ID:M0synkAa
いや・・・一ヶ月だろ。
それ以上かかるならやってないのも同じ。
本気になれば3週間くらいで1つのジャンル作れるはず。
一人でゲームが作れるように修行するスレw
82 :
名前は開発中のものです。:01/12/19 01:11 ID:T7sgcZ7+
いや、ジャンルによるだろ
初心者がARPGやSLGに手を出すと、地獄を見る
85 :
名前は開発中のものです:01/12/20 22:57 ID:LiEsruVI
>>81 シ〜ッ!
そんなことバレたら、今後の見積もりに影響するから、黙っててくれ!
86 :
初心者:01/12/21 16:12 ID:waJQSuTl
VB6で自作ゲーム作っています。
配布の時に「VB6ランタイムを別途入手してください」と
書くのが嫌なのです。
VC++を使ってミックスド・ランゲージ・プログラムとして
VBで作ったものをVC++で作ったようにランタイム込みで
配布できるものなのでしょうか?
ここの板の年齢層はどれくらいだYO?
>>76 ライトスタッフって倒産したんですか?
ちょっと鬱になったり〜
89 :
名前は開発中のものです。:01/12/22 20:48 ID:1nXRjykv
19歳から33歳まで。
91 :
名前は開発中のものです。:01/12/22 23:19 ID:tPh5lsjd
92 :
名前は開発中のものです。:01/12/23 04:10 ID:VfQ560Zi
>91
一人でゲームが作れるように修行してるのか?
・・・なら訂正しよう。
13歳から33歳までだ。
上が33ってのも怪しいな。
33歳って自分の年齢じゃないのか
漏れ
濡れ
97 :
名前は開発中のものです。:01/12/23 13:52 ID:Ovst2/Ph
99 :
名前は開発中のものです。:01/12/25 03:36 ID:VBibKGAs
>98
激しくワラエナイ
100 :
名前は開発中のものです。:01/12/25 12:14 ID:7ZBk+YLQ
15歳、受験生(中3)
2作品作りました。見てください、お願いします。
使用言語:HSP
忍者(一応本に載りました)
www.geocities.co.jp/Bookend-Akiko/3101/souko/ninja.lzh
侍(最近?作りました)
www.geocities.co.jp/Bookend-Akiko/3101/souko/samurai.zip
>>100 凡 駄 糞 鬱
|-----|-----|-----|
△フリキレタ
102 :
ななし:01/12/25 13:49 ID:DpJhSU0p
>100
もしかして20年前から
タイムスリップしてきたのでしょうか?
>>100 くだらなすぎてワラタよー。
とりあえず、HSPを使ってる時点でゲンナリ。
>>100 というか君のホムペはちょっとアレだな。
>103
ゲンナリですか…。
>104
ホームページは気にしないでください…。
>>100 とりあえず「侍」の方しか実行できませんでしたが…。
ちょっち「ゲーム」と言うには厳しい…というか、グラフィックが無く、
高い集中力が無いと勝てない(=疲れる)、勝ってもやられても
結果を不条理に感じてしまう…というシステムになっているあたり、
やろうとする人はかなり限定されてしまうと思われマス。
要するに、プレイヤーに要求するコスト(集中力とか)が大きい割りに
このゲームをさせるための要素(単純に考えればキレーなグラフィックとか
カッチョイーキャラクターとかですな)がないんですわ。
とりあえず、いっかい操作的には「普通」のゲームを造って見てはどうですか?
(まぁ、これはそういうゲームってことなんだろうけど。つまりは)
参考になる意見、大変感謝致します。
>疲れる
次は爽快感を追求します。
すごいですね…同年代とは思えない…俺も頑張らないと…。
VBは簡単ですから…。
HSPはどうですか(移行する気はありませんが)?
難しそうですが…。
というか、やっぱり、誉めてもらえるとうれしい。
こうやってお互いに刺激し合うのは良いよね。
やる気も出てくるし。ガムバレー。
正直、あきまさや100にはがんばってもらいたい。
ガムバリます。
VB簡単ですか…俺もVBに鬱ろっかな(爆
ま、俺も頑張ります(つーか高校受験が近い…うぐぅ
あまり関係ないですが、エローゲ好きです(核氏
エローゲの曲って(・∀・)イイ!のが多いよ。
音楽担当にはオススメ(よく分からんが。
なんか、葉鍵系の曲を聞いてるみたいです。
ていうか、いつもエロゲをプレイしてるとか逝ってたような…。
自分はエロゲのことはよく知りませんが…。
あと、
このスレはだんだん関係無いほうに進んで逝ってるような…。
119 :
名前は開発中のものです。:01/12/27 03:28 ID:Ne80+gDQ
あげ
そいつとは仲良くなれそうだよw
あ、オタは禁止ね。
俺も音楽は作れるんだけどな〜。
今度俺が作ったのUPする?ヘボいけど…。
エロゲをやってる時点でヲタだと思うけど…。
まぁ、自分はパソヲタだけど。
自分はパソコンとかそういうのしか趣味が無い…。
あと、音楽作ってるなら是非揚げてほしいなぁ。
音楽作れる人間は尊敬するYO。
自分もModplugTrackerで音楽作ってみようかなぁなんて思ってやったことがあるんだけど、
みごと挫折した。
自分は音楽は聞くに限るね。
あと、音楽を作るのもイイけどプログラムも作ってYO!
しんどいけど。
あげ。俺もオタっすか鬱だ氏脳。
www.geocities.co.jp/Bookend-Akiko/3101/souko/JungleIlusion.mid
ちなみに音楽ツクール+です。題名は適当、友達が付けた。
>プログラム
音楽を使ったゲーム作ろうと思ってる。
つーか、ゲームを作ってる時点でヲタの頭領だと思うケドね。
ヲタを気にする事はないよ。
嫌われるヲタは基本的に、電波厨房だし。
電波厨房ですが何か?
まぁ、一番ヤヴァイのは自覚が無いヲタだと思いますね…(100さんは自覚していると信じて)。
自分はパソヲタ。
これ、揺るぎ無い事実。
あと、音楽を聞かせてもらいましたが、
音楽を作れるっていうのはイイですねぇ。
自分はこればかりは時間もかかるし、知識も無いので無理。
音楽を使ったゲームっていうのはビ○マニみたいなのですか?
できたら是非ダウソさせてください。
ガムバッテコードを組んでください。
まぁ自覚はしてますよw
友からも言われますし(爆
ビ○マニじゃなく
www.u-ga.com/rez/
に近い物ですね(仮
>に近い物ですね(仮
オイオイ
レス早いですね〜。
www.u-ga.com/rez/のゲームはかなりクールですね。
期待してますよ。(´∀` )
>>125 自覚が無いのを電波と呼ぶような気もするが・・・ネタか?
すみませんが旅行に逝くので暫く帰ってきません…。
プログラム作成は来年にお願いします…。
いえいえ、私生活に支障をもたらさない程度にガムバッテ下さい。
期待してますよ。
なんでお前ら二人の雑談スレになってるんだよ。
なぜでしょうね…。
スマソ。
>>135 サイトリニューアルしてる場合じゃないぞ(w
俺は新作に期待してる
>>136期待をしていただくとやる気が出ます!
やっぱり、一人でもやってくれる人がいるのといないのでは全然やる気が違います。
1はどこ逝った?
1ヶ月ももたない修業じゃヤムチャにも勝てんZO!
帰宅しました。が、テストが近い&宿題が残っているので
作成は暫く延期になりそうです…。
レベル低いな、オイ。
いまどき2Dはないだろ・・。ま、中学生じゃSin、Cosすら
やってないもんな・ しょうがねーか。
>>140 2Dがレベル低いってのは間違いだと思うよ。
>>141 そのたうり!2Dだって三角関数を使う人はいるし、
スプライン関数や行列だって、3Dの専売特許ではなぁい!
>>140は、3Dにすれば何でも面白くなると思ってる。
スーパーマリオとゼルダの違いは(以下略)
146 :
中2:02/01/03 22:06 ID:???
>144
じゃ 永遠にスーファミやってな。
>>140は最近3Dができるようになって、嬉しくてしょうがない。
そこで、まだ3Dを扱ったことがない人間を見下して優越感に浸りたかった。
ファイナルアンサー?
151 :
名前は開発中のものです。:02/01/04 17:11 ID:NxM+E9rf
>>148 っていうか
>>144は3Dにすれば何でもおもしろくなる訳じゃないって言ってるだけで、3Dのゲームが面白くないとは言ってない。
まあ、逆に言えば2Dでも面白くないのは面白くないのですが。
2Dで面白い物が作れない人は3Dで作れる道理は無いです。
152 :
144:02/01/06 23:55 ID:???
PSでも2Dのゲームはたくさんありますが何か?
何で、そういう極論(いまどき2Dはないだろ)しか出せないのかね?
>>149 ファイナルアンサーで。
>>151 同意。
最近C言語の勉強し始めたんですが
コンソールアプリでグラフィックを表示するには
どうしたらいいんですか?
プログラムの経験はありません。
>>153 はぁ?
何がしたいの?
その意図は?
DOSプログラムを作りたい?
なぜコンソール?
アスキーアートでいい?
ウィンドウに表示じゃだめなの?
155 :
名前は開発中のものです。:02/01/07 21:46 ID:R/qK8yLu
すんません。
始めたばかりで何が何かよくわからないです。
簡単なゲームを作るのに今は文字を出力してやっていますが
DOSプログラムで画面に線を引いたり円を描いたりしてみたいと思いました。
DOS窓で動かしているのは正確にはDOSでは無いんですよね?
windowsのプログラムはまだわからないのでDOS窓で勉強してます。
157 :
名前は開発中のものです。:02/01/07 22:08 ID:R/qK8yLu
>>156 ありがとうございます。
そこを見て勉強してたんですが
線を引いたり丸を書いたりするのは
windowsプログラムまで我慢することにします。
>windowsプログラムまで我慢することにします。
まで、、、というか、いきなりあれでも、全然問題ないと思うんだけど。
自分で変な順番付けしちゃってない?
C言語がそれなりに書けるようになってるなら、もうWindowsプログラミング初めても全然問題ないよ。
C言語自体の細かいことはあとからでも出来る。
あ、そうだったんですか。
どうも色々すいません。
見てみます。
>>158 でも、実際はC言語も、ろくに出来ないのに
WindowsSDK、DirectXに手を出す厨房もいるからな。
「そんなに急いで、どうするんだよ」とか言いたくなる。
>>160 あー、どうだろうね。
「猫でも〜」のC言語編の25章くらいまで理解できてれば、
もうWindowsやっちゃっても全然問題ないとおもうけど、どんなもんでしょ?
162 :
C_sugar:02/01/08 01:12 ID:VlBePxFt
はじめのうちはDOSで修行。
ポインタと構造体をほぼ理解できるようになったらWinアプリに移行。
便乗質問。
PC-9801のC言語でRPG作ったり、PerlでCGIの掲示板自作した程度の経験はあるんですけど、
Windowsプログラム初めて大丈夫なんでしょうか。
何年か前に、VC++廉価版に手を出したんですけど、
付属していたMFCの解説本の内容が全然理解できなくてトラウマになってるんですが。
>>163 俺もWindowsプログラム最初に組む時かなり骨を折ったけど、
その理由はMFCにあると思う。俺も最初は全然理解できなかった。
というわけで、WinAPIをつかって一からWindowを作成することをお勧めする。
「猫でも〜」等に詳しい説明有り。
MFC使わなければいいのではないかと。
ゲーム作るときは、全然必要ないと思う
DOSで経験があるんなら、MFCよりAPIベタのプログラムの方が
むしろ分かりやすいと思うが。
167 :
名前は開発中のものです。:02/01/09 18:37 ID:C/aqx+5g
Winのアプリが組めて窓にビットマップを表示できても、
関数?引数?戻り値?構造体?ポインタ?なんじゃそりゃ?
では情けない
168 :
:02/01/09 19:00 ID:???
>167
できないだろ。
169 :
163:02/01/09 20:45 ID:???
なるほど、意見ありがとうございます。
ポインタってどれぐらい重要なんですか?
ポインタない言語でやれば必要ないよ。
ってくらい必要。
一人でってのに反応したんですけど、
同人エロゲ(ADVノベル)作ってる奴も
話に入っていいんでしょうか?
27にもなって、初めての挑戦なんですが、
システムは初心者でも理解しやすい吉里吉里です。
1ヶ月かけて、なんとか使いこなせるようには
なったんですが、シナリオ書いて絵描いてってのを
一人でやってると、独り善がりなモノにならないか
不安になっちゃって……。
私も修行したいと思いますんで、時々報告させて頂きます。
ほう、今時珍しい骨のある人材が。
全スタッフ応募するような企画厨房に見せてやりたいよ。
× 応募
○ 募集
>>173おぉ、奇遇。漏れも同じく吉里吉里(2)でエロゲ作り始めたとこ。
お互い頑張って濃ゆいの作ろう。
178 :
名前は開発中のものです。:02/02/04 02:29 ID:Q/4vdyeF
ageageage
179 :
名前は開発中のものです。:02/02/04 11:35 ID:/V+qajmw
プログラムとグラフィックを両方やってる人のサイトきぼん。
絵もかけてプログラムもできるなんて
すげえよ
>>180 30代のCG屋ならプログラムも出来そうだね。
あの世代にパソコン流行りだしたから。
さらに音楽もできる最強な人キボンヌ
犬丼帝國の葉鍵な格ゲーは
プログラム、絵、音楽を全て1人でやってたよ(;´Д`)
>>182 それも30代なら居そう。エレクトーン流行ったのその辺の時期では…?
30代はバブル団塊の世代。いろんなものを買ってもらったが、
何一つ上手に使いこなせずに今中年になっている。
そんなダメな人達が作り上げた世界が今の日本。
>>183 彼、その3つの分野を挙げるまでもなく、全部自分でやってる気が(藁
俺は絵とプログラム両方やってるけど。
音楽までは手が回らん。
絵も限界があるけどね。(ロボが描けないとか)
あきまさと100は、もういないの?
>>185 責任転嫁は見苦しいぞ。
他人のせいにするのは簡単だが、それをやってしまっては
ダメな人達と同じ穴の狢だ。
190 :
名前は開発中のものです。:02/02/13 06:11 ID:AU2+HIWz
GBAのスレたったけどGBのスレたたねーな
チームでつくるってのとは別に他に誰もつくってねーんじゃないかという孤独感は辛いよ・・・・・・
>>187 プログラムやってるやつって大抵音楽以外はできるよな
その気になれば生演奏で適当にひくとか無理っすか?^^;
えらく前衛的になりそうだがな
音楽できるプログラマの方が多い気がするが。
音楽の方がプログラムに近い。
193 :
名前は開発中のものです。:02/02/13 10:21 ID:gJqPquDI
>>191 >プログラムやってるやつって大抵音楽以外はできるよな
「できる」のレベルが問題だと思うが…
それなら金払ってゲーム会社に
働かせてもらえ。へたれな勉強して
金使うよりましだぞ
195 :
名前は開発中のものです。:02/02/13 10:55 ID:yGJCRjUb
http://www.puchiwara.com/hacking/ __,,,-‐――‐-、__ ヽ、
__=ニ-―''''"""゙゙`‐-、_`ヽ、 ヽ.
__,/ ,.--ヾ/''''''"'''"''ー、、ヽ、ヽ、 ヽ.
/ / / ミ `ヽヽ i
/ / i / ヾ__ヽヽ |
/ / ,| | __L i | |
/ /| |ヽ | ,,,,-∠''''"" ミ i| |
{ | { |-+ヽ,,,,,,, ,,illニ-==三`゙`‐---+ | |
|| i |┼'"三三ヽ ;/(ソ::ノ T´ ヽ-、.| |
ヽ ヽー'"(ソ:)` ! ‐‐-‐'´ ∧`}| .|
.| ``''"´ / ヽ. { !| .|
.i < '´/ | ||
! ヽ ` ○ | ||
ハ. _,=--- / | |.|
.| ヽ. `'''''''´ / | | | | |
| | ヽ ,. ' / .| .| || || |
.| | / ヽ ,/ / | | || || |
| | / `_t‐‐‐'"´,.----―''''''7 | || || |
.| | / / <"ヽj / __. /┐| || || |
./ // /,.-‐ゝ->‐/-‐ヽ__/‐‐‐/ ヽ|_ || |.| |
./ // //,.-〈 〈‐、 \--/ ``ー、!_|
おいみんな!JAVAでゲームつくろうぜ!
私はプログラマだけどピアノや金管楽器もやるよん。
シンセサイザーとかで音色を作るのも一種のプログラミングだったり、
楽譜を書くのもやはりプログラミングだったりする。
ま、音楽に関してはプロには足下にも及ばないけどね。
198 :
173:02/02/14 06:56 ID:Xh9hCbB6
寂しいスレで安心します(笑。
一人でって云ったけど、無理でした。
声だけは女の子探さないといけません。
って、これが一番難しいんじゃないかと……。
あと、最近は音の勉強も始めました。
エレクトーン習ってた分、作曲は大変じゃないんですが
譜面作るのが面倒だし、何が要るのかわかんないし。
とりあえず、DTM板行って勉強してきます。
199 :
名前は開発中のものです。:02/02/14 07:02 ID:mWRgf+fc
そうだよ!
俺はダメさ!
しくしく
声の心配なんて何故する。
声入ってる同人ゲームなんてあんまりないだろ?
とりあえずゲームを完成させなきゃだめでしょ。
声なんて+αでしかないんだから。
シナリオ、絵が上がらないうちに
声優募集する奴は糞だYO!!
203 :
名前は開発中のものです。:02/02/14 10:38 ID:IWURBpbF
俺は女の声も自分でやる。
サウンドエディタでピッチをあげて高い音にすれば良い。
確か音楽と絵とシナリオ一人でやった同人ノベルがあるぞ。
塗り専用の人が居たから一人で作るスレタイトルには合わないけど。
二人で作ったっていうノベルがならあったな。
そこはシナリオと絵と音楽を一人でやってたよ・・・。
同人エロゲで声優やってくれる人いたらなぁ・・・
>>204 その三つ兼任でまともなもの作るといったら大変だな。
>>190 初心者歓迎スレに二人程いたよ。
あれの片方があなたってこともありそうだが。
漏れもやってるけど受験生なんであまり暇がない。
話の流れと違うのでsage
>>208 と、いうことは少なくとも俺以外にも3人いるわけか
ちょっとやる気でてきた!!
210 :
198:02/02/18 06:43 ID:???
あいた〜、叩かれましたね(笑。
同人ソフトなんで、完成しなかった事はないです。
一人でじゃないけど二人で今までに2年で3本。
ちとペースは遅いですが…。
(連れが吉里吉里とCGで自分は音とシナリオとCG)
知り合いや自分が買ってるサークルのソフトは
声入りが多いんで、うちもそろそろやってみたいな、
などと思った次第でして。
もちろん、シナリオもCGも全部出来てから
余裕があれば探そうかって位の事ですけど。
test
test
test
〈 ̄ヽ
,、____| |____,、
〈 _________ ヽ,
| | | |
ヽ' 〈^ー―――^ 〉 |/
,、二二二二二_、
〈__ _ __〉
| | | |
/ / | | |\
___/ / | |___| ヽ
\__/ ヽ_____)
215 :
名前は開発中のものです。:03/05/13 16:05 ID:ofp1++tY
217 :
名前は開発中のものです。:04/03/07 14:34 ID:KFgmcrA/
218 :
名前は開発中のものです。:04/03/18 06:05 ID:C3BOg0oC
東方妖々夢とかの作者は、絵も音楽もプログラムも全部一人でやってるって聞いたんだけど本当?
本当
一人で作ったってろくな出来にはならんだろう
>>221 やってみた。
まーこのくらいのレベルだろうなってとこ。
がんばってると思うよ。
びんぼうソフトってほんまに一人で作ってるのか?
224 :
名前は開発中のものです。:04/05/12 20:19 ID:wC473Loi
当然
225 :
名前は開発中のものです。:04/05/12 20:19 ID:wC473Loi
当然
ダイソーのゲームは大抵一人で作ってるんじゃない?
ゲームのBGMを作曲する為には、絶対音感は必要なのでしょうか?
>>228 絶対音感よりも音楽の知識とか技術の方が大切だと思う。
>>229 そういった知識や技術というのは、具体的に
どうすれば身につきますか?
231 :
229:04/05/16 23:59 ID:5iNmnNXR
正直俺自身は音楽ダメダメなんだけど、
俺の妹は自分でその場で曲を考えて、そのままピアノで弾いちまう。
ピアノを習ってるだけだけどそれくらいはできるようになっているよ。
趣味レベルのBGMなら自分で考えた曲を鼻歌で歌って、パソコンでドレミにして、
適当に加工でいいんでないの?
>>231 レスありがとうございます。
パソコンでドレミということは、シェアウェアの
「ソング頼太」か何かで変換するという事ですね。
では、がんばってみることにします。
なんか根本的に間違ってる。
半年ぐらい前から音楽に手を出してるけど、
プログラムできなくなたっつーか、
手段と目的が入れ替わって今では音楽系サイトになってる罠・・・
>>234 俺もそうなってしまいそうな感じだったり。
今んとこ意地でゲーム製作し続けてるが、いつまで持つか…
音楽って独学でなんとかなるもんなん?
もう幼少の頃にピアノ習って両手慣らして音感鍛えてる人じゃないと
だめぽかと思ってた。
関係ないけど終了厨っていなくなってる?
ついに自分の人生終了したのかな。いいことだ。
打ち込みなら、なんとかなると思う
年齢や才能にもよるが・・・
リアルタイムで弾きたいなら中学に上がるまでに訓練してないとだめぽ
やってもゲームを作る上では無駄にならない(むしろ役に立つ)のでチャレンジすべし
頂点を極められなければ、やる価値が無いと思っているなら別だが
(同人の音屋でいるんだよな、極められないならやめとけとか言う馬鹿が)
東方くらいのレベルだったら一人でなんとでもなるってこった
ん、人がいない。ここをまったくの初心者である俺の日記帳にしよう。
どうせ三日坊主だろうけど、しばらくおじゃましますよ。
241 :
名前は開発中のものです。:2005/05/24(火) 20:54:05 ID:NjU8DYry
age
>>240 代わりに漏れが日記つけましょう。
しまった、何もない一日だった。
まったく根気のない奴らだな。
飽きのはやさに定評がある俺様の日記帳にする。
今作ってる、RPGにムービーを追加しようと動画で必要な部分だけ切り取ろうとしたが、
音声がなぜかカットされて音の出ないAVIファイルが出来てしまった。
245 :
240:2005/06/01(水) 03:31:20 ID:2Girir4Y
やあ。書き込んだことすらすっかり忘れてた。当然何もしてない。
今週中ににボーランドだか何とか試食版だかのc使えるようになるやつかHSPをインストールすることを決意した。
東方は一人だけど、本職がタイトー社員で他に連載持ったりした上で、
全部一人で作って1年に1回ペースだからな。化け物かと。
(夏にゲーム、冬に音楽CDが基本サイクル)
247 :
名前は開発中のものです。:2005/06/14(火) 20:29:24 ID:zEFk8wp9
age
248 :
名前は開発中のものです。:2005/06/15(水) 14:57:04 ID:8r7qJAc4
249 :
240:2005/06/16(木) 00:33:49 ID:xF0XG8Ie
コンパイラつきの入門書を部屋の中で探し出すことに成功しました。
よし。とりあえず、それを入れろ。
251 :
名前は開発中のものです。:2005/06/17(金) 20:40:47 ID:ELB3/Ck7
期待age
ウィンドウを表示することに成功しますた
254 :
249:2005/07/29(金) 14:06:13 ID:KD6Oig26
自分でも残念ですが違います。
ボーランドのフリーの奴を入れました。
何この長寿スレ
HelloWorld表示させる事に成功しました。゚(゚ノ∀`゚)゚。
257 :
240:2006/01/15(日) 05:10:25 ID:8loPgTkF
C言語の入門書を読み始めました。
俺もここに日記書いていいですかね。
とりあえずプログラムを作ることのできる環境はあります。
某サイトみながらチマチマつくることにしました。
コマンドプロンプトに文字を表示するところまではできたんですが、次ノステップに進むのはいつになるやらってかんじです。
多少絵の心得があるので(大した事ないけど)、今度ドット絵うpします。
断っておきますが期待しないで下さい。
| ̄ー ̄) マッテルヨ
// 自分も日記というかチラ裏
一人でやってると、技術的なことはさておき
モチベーションの維持が大変だと思う。
日常作業用の簡単なツールとかはちょこちょこっと作ることがあるけど、
ゲームは必要に迫られてないので
大枠だけ作りかけて放置してるのがいくつかある。
とりあえずどれかは完成させよう…。
261 :
258:2006/05/23(火) 23:18:16 ID:KmVEYvfT
262 :
260:2006/05/24(水) 10:03:51 ID:Gc9i9nWD
>>261 おお、ゆっくり頑張ろうねー。
>>240さんも元気かな。
手軽にやってもらえるブラウザゲームが作りたいんでFlash特訓中。
Flash板にも行ってきたけど、
ゲームの基本的組み立て方とかアルゴリズムとかを勉強したいんで
やっぱりこっちの板のほうが合ってるみたい。
プログラムってほんとモチベーション維持するのが大変だよねぇ。
264 :
名前は開発中のものです。:2006/10/10(火) 21:17:23 ID:o7RfVP8A
warota
265 :
名前は開発中のものです。:2006/10/11(水) 02:35:21 ID:B1M0Wpos
あれから4年11ヶ月の月日が流れた
巨人の保守
良スレ。
268 :
( ^ω^ ):2006/10/20(金) 07:03:42 ID:hYoq8aKS
俺も一人でゲーム作れるように修行するお。
まずは何から始めればいいんだお。
プログラム/絵/音楽/HP運営
をやるお。
保守飛馬
参戦。今日は一日かけて、最初に学ぶ言語を選択。Javaにしました。
音楽と絵はどこかから合法的に入手するとして、とりあえずプログラムを勉強します。
明日は一日かけて、Javaの本を探してきます。
もうすぐ39歳(しかも独身で恋人もいない)になるけど、
これからでもゲーム作れるようになれると思いますか?
作りたいゲームの規模とジャンル、あとはやる気と努力次第。
修行中ナリ。
274 :
名前は開発中のものです。:2007/07/31(火) 00:05:54 ID:cXP25EtV
期待age。
の
修行が足りてません><
277 :
258:2007/08/02(木) 13:03:36 ID:oNEC4tvL
もうあれから一年以上の月日が流れてしまった・・・
で、どんだけできるようになった?
プログラムと絵さえ出来ればゲーム作れるんかねぇ。
ものによっては絵もフリーで揃うか・・・やる気出てきた。
280 :
名前は開発中のものです。:2008/08/11(月) 00:43:36 ID:toQIPHfi
本日より修行を開始致します。
使用言語:Java
作りたいゲーム:エロゲー
修行にエロは禁物
いえてる…
ここで今日から始めようと思います。
「ゲーム製作って実際どのくらいまでできんの??」というスレでやる事も考えたのですが、
ポケモンとFFを作るのでなければスレ違いと言われるかな?と思いw、こちらにしました。
>>283です。
上の「w」は付けるべきではなかったような気がしてきた。
最近の悪い癖だ。
とりあえず、
目標:オンライン3D対戦サッカーゲーム
>>284 あまりお気になさらず…
お互い、目標達成に向けて精進しましょうw
現在はエロCG作成のための簡易画像編集ソフトの開発に励んでおります。
ちなみに今日はマウス入力(マウスでの描画)について勉強してますた。
お次は拡大画面の実装かなあ。
ではまた。
同人ゲ板でコソーリやってたけど今日からこっちで続きやってみようかと思う
ジャンル 弾幕シュー
使用言語とか VC++ DXライブラリ
進行状況 自機移動とか敵制御とか弾幕制御とか基本的な部分は大体できてる
今の目標 C++の使い方を覚える、とっととボス作る、グラフィック用意する、その他色々
C歴1ヶ月半の不束者ですがよりしくお願いしまする
>>284です。
よろしくお願いします。
>>285、286
既に作れるレベルの方々ばかりで羨ましいです。
自分は2ちゃんのおかげで約1年の勉強を続けた結果、固定画面で1キャラ4方向移動まで作れたのですが、
まだゲームを完成させたことは無いです。
288 :
280:2008/08/13(水) 00:52:12 ID:cZe0+w+m
>>286 STGの制作はムズそうダス。ヨロピコ。
>>287 僕もまだゲームを作ったことはないですよw
ハローワールドに毛が生えた程度のレベルなんですがw
AVGやミニゲーム程度の作成ならJavaがオススメなんですが、
動きの激しいACTやSTGとなるとやはりC/C++しか選択肢がなくなるかもですね。
マッタリいきましょうw
>>288 C#+XNAやVB,C#+Maneged DirectXなんて手法もあるぜよ
簡単な3Dにはお勧め
290 :
280:2008/08/13(水) 22:06:14 ID:cZe0+w+m
ウヒー、ようやく拡大画面を実装シマスタ。
お次はパレットの実装かなぁ。時間かかりそう…
実はまだ単色しか描けなかったりしますw
精進します…
>>289 残念ながら僕のパソは古いのでVS2008は動きません…
試練の時です。
>>287 >>288 よろしく(・∀・)
関数が返り値を返せるのを知ったのでソースを整理
ついでにザコ用行動スクリプトの拡張に着手
292 :
280:2008/08/15(金) 20:44:19 ID:83BzrRTn
パレット画面はいまだ完成せず…
一応、色の選択だけはできるようになりますた。
>>287です。
4方向移動から何も進んでない・・・。
何か進捗があるまではしばらくの間潜行するかもしれません。
潜行するのは自由。
進んでない理由が、他の事で忙しくて手を付けられないというのなら仕方ない。
でも、作業でどうすればいいか判らないとか、うまくいかなくて詰まってるとかなら
愚痴でもなんでも言っていいんじゃないかな。
スプライト移動関数を簡略化、ザコ処理拡張に伴いコース関係処理も作り変え(・∀・)
バグも少々見つかった(・∀・)原因は今のところ不明…
>>293です。
み・・・皆さん開発スピードが速い・・・。
>>294 やれるのが土日しか無いのに他の用事を優先して遅れるというのは結構あります。
一番最初のスレでやってた頃は、何を何ページまで読んだとか書いてたけど、
スレ違いに受け取られやすい様なので、これは封印してます。
今考えている事でよければ、とりあえず2次元のみで1人プレイの簡単なサッカーゲームになるまでを第一段階の目標とし、
それに必要な物を考えて一つずつ実装する事です。
かなり沢山あるので難しいはずです。
でもそれが出来ないレベルならば、ネット対戦も3D化も考えても結局無意味だし・・・。
期間は一応3ヶ月???を目指してみます。(出来ると思ってるわけではなくて、とりあえず自分にやる気を出させるための設定ですw)
>>296です。
やっぱり6ヶ月〜1年くらいにしときます。(汗;)
そういう大きい目標じゃなくて、
次にボールを動かしてみるとか、
同時に動くキャラクターを増やしてみるとか、
小さい目標を立ててやった方がいいんじゃないですかね。
サッカーゲームとか難しそうだなー
CPU選手を動かすAIとかボールの接触とか…
PK戦のみみたいなの作れたら後は応用でなんとか出来そうな気がする
キャラのアニメーションドット絵製作がなかなか進まない(・∀・)難しい
画像描画方式をネアレストネイバー法からバイリニア法に変更(・∀・)
原理はよくわからんけどぼんやりして画像のギザギザが目立たなくていい感じ
弾幕制御関連の仕様が固まったけど今の構造を大幅に書き換えなくては…
301 :
280:2008/08/19(火) 22:21:10 ID:GiYZIVgK
ウヒー、ようやく書き込み規制が解除されますた…
みなさんコンニティワ。 順調に滞ってますw
テキストの入力処理でコケそうになり、なんとかふんばりますた。
>>296 本を1ペイジ読んだとかの報告でも全く問題ないと思いますよー。
無理せずまったりと行きましょうw
>>300 頑張ってますなw 画像縮小のアルゴリズモですね。名前だけは知ってます…。
>>297です。
目標期間変更→「生きている間に出来ればいい」
>>298 とりあえず、ボールの実装(といっても表示されるだけ)を週末に出来ればと思ってます。
平日はやる気も出にくくてなかなか進まないです・・・orz。
>>299 ドット絵制作には自分も悩みました。ツールが難解。
>>301 では、このスレに限って読書進行報告ネタも復活を検討しておきます。
とりあえず今は、「わくわくCのVS2008編」(←略称)をぱらぱら流し読み。
303 :
280:2008/08/20(水) 23:53:46 ID:yYbH9VXx
コンバ ンチャ!!!
一応、パレットの編集ができるようになりますた。
今後の予定は、パレット画面とルーペ画面の微調整と、
ペンサイズを変更できるようにすること、など。
精進します…
弾幕制御、敵機制御の構造を全て作り直す
仕様変更は早いうちにやっとこ(・∀・)
この仕様変更で制御の自由度とソースのスマートさが上がるはず
おれ は ちからをためている!
306 :
280:2008/08/21(木) 22:27:34 ID:i8Z4V5Qu
拡大画面とパレットはほぼ完成。
といってもただ単に10倍程度拡大したり、
色の値を変えるだけなんだけどw
次はペンサイズを変更できるようにしたいです。
307 :
280:2008/08/23(土) 00:47:55 ID:wsocDFlC
昨日はなんもできへんかった…
というよりクラスの名付けで悩んでいたという…
精進します…
クラスの使い道よくわからんから全部構造体でやってるなー
敵制御関係の関数が増えてきたがソースがシンプルになってきた
明日くらいでさっさと片付けて弾幕制御側も…
309 :
280:2008/08/23(土) 16:13:43 ID:wsocDFlC
ペンサイズを変更できるようになりますた。
お次は…ファイル入出力かなぁ。
実はまだファイルのロードとセーブができないので使い物にならないw
ファイルニューシュツリョクの実装には時間かかりそう…
>>308 僕もクラスのことはよくわかってませんw
ま、動けばそれでいいのでは…
デフォルトがpublicならstruct、privateならclass。みたいな。
>>302です。
ボール実装の為にフリー画像ツールの良いのが無いか探してた。
前はアニメのコマ単位でのコピーがやりやすかったので「ALFAR」を使ったけど、画像の反転が上手く出来なかった。
今度は「EDGE」にしてみようと思う。(場合によっては両方を使い分けるかも。)
どちらにせよ描くのは時間がかかるし、ボールを描くのは後回しにして
先にボール実装のソースを書いてみようとしたら、変更が多くのファイルにまたがるので苦戦。
早々に不味い状況だけど、今のところはまだ続けるつもり。
クラスについてはあまりわからないけど、
今はとりあえず動いてくれさえすればいい・・・みたいな感じ。
312 :
280:2008/08/24(日) 00:08:54 ID:n3sweZE5
313 :
名前は開発中のものです。:2008/08/24(日) 08:22:51 ID:aGOlKbRd
314 :
280:2008/08/24(日) 10:06:31 ID:n3sweZE5
毎度ですw
今日も頑張るべー。
>>313 残念ながら、丸の内(東京)OCN光です…
先月は1ヶ月くらい規制がかかってました…
マンション備え付けの回線なのでプロバイダの乗り換えができナス。
悶絶。
きゃ
>>309 動けばいいよね(・∀・)
>>310 最終的には似たようなものってことでいいのかな?継承とか使い道がよくわからない/(^o^)\
画像編集にはEDGEとPictBear使ってるな(・∀・)どっちも便利
>>311です。
ツールの件、どうもです〜。誰かが使っているというのは、ツールを選ぶ時にかなり参考になります。
GraphicsGale
開発も最近まで続いていたようで画面印象が洗練された感じ。
PictBear
ペイントソフトも将来使うかもしれませんのでマークしておきます。
どちらもダウンロードしました。
ボールの実装(画面表示だけ)は一応出来たかなーとは思うけど、
ソースがかなりごちゃごちゃして分からなくなってきた。
本に頼ってつぎはぎのソースで完全に自分のものになりきっていないから、
分からなくなるのかもしれない。
先に進めなくなったら、諦めるしかないかもしれないけど、その時は
もう一度ソースを書き直すぐらいは試すかも・・・。
>>317です。
追記)
上の文、ちょっと書き込み過ぎたかもしれませんが、
念のため、自分はツールに関しては全く詳しくないです。
途中経過をうpする時があれば、それが分かると思います・・・orz。
(もう寝なくてはw)
319 :
280:2008/08/25(月) 20:02:41 ID:/W/DLjm0
編集画面にスクロールバーをつけようと思ったんだけど、
なぜか画面とスクロールバーの間に2 ピクセルほどの空きができてしまう…
JavaAPIマヌアルやグーグルで調べてもわからんかった…
気持ちが悪いのでスクロールバーの実装は保留ということに…
今日も頑張るベー
皆さんも修行に励みましょうw
321 :
280:2008/08/26(火) 02:14:46 ID:rJJPLAIo
>>320 ハァアアア!!! ( 波動放出中 )
こんなにレベルの高いものを作っていたとは…スゴス。
精進します…
弾幕も凄いが背景が美しいな。
>>321 まだまだこれからなんだぜっ(・∀・)
>>322 あ、背景はまだマップチップ作ってないからツクールのを使ってるw
324 :
280:2008/08/26(火) 20:46:42 ID:rJJPLAIo
ファイルを分割整理中…
>>318です。
こちらは土日どうするか妄想するのが精一杯で何も進んでないので、
姿が消えている事が多いかもしれません(苦w)
>>319 API難しくて以前挫折しましたw。
>>320 弾幕をどんな式で計算してるのか想像できない・・・難しそう〜。
>>325です。
一応、表示したボールを蹴れるようにしようと思ってます。
>>325 速度やカーブする量を与えたら自動で移動する関数つくってるからそこまで難しい式は使ってなかったりする(・∀・)
与える数値をちょっといじるだけで別物になったり…
弾幕処理部分が大まかにできたからグラフィック用意に入る(・∀・)
>>326です。
>>327 数値をいじるだけで別物になるというところが凄そうです。
そういう方法が世の中にあるんだという事を今は覚えておいて
自分のプログラムに関係が出てきそうな時に思い出して調べられたらと思います。
選手とボールの当たり判定実装。
Zキーを押すとボールが右斜め下に等速移動し画面端にぶつかると
そのまま右に進んで右下角で動けなくなる・・・orz
ソースはぐちゃぐちゃでクラス分けしたソースもその意味があまりなくなってきた。
フラグ的に使う変数の種類とか、フラグ立てる場所とか、フラグの後始末とか
if分の使い方とか色々整理する方法が出来てないからだろうと思う。
とりあえず土日やる予定を試し、不味い結果に終わったので今度の土日は未定かもしれない。
とにもかくにも進んでるようでなにより。
頑張ってください。
俺もバグで苦しむなんてしょっちゅうですよ。
しばらく考えても判らない時は諦めて寝る。
そして起きたら顔洗ってすぐにPCに向かう。
大抵10分もしないうちに解決する。
330 :
280:2008/08/27(水) 23:28:37 ID:obqt/pnH
今日は怠けてシモタ…反省…
今からちこっとでもプログラミンするかー
曲線のアルゴリズモは難しすぎて僕には理解できませんでした…
ACTやSTGは軌道計算や当たり判定があって難しいですよね。
精進します…
331 :
280:2008/08/28(木) 20:02:50 ID:Tn98VE6G
只今修行中…
分割整理が終わらない…
>>328です。
>>329 プログラムは自分でバグ取れなかったらその先には進めないのが怖いwですね。
趣味なので進みは遅いけど、頑張ってみます。
>>330 自分は趣味でやってるので調子にかなり左右されてます。
1ヶ月以上何も進んでない時もありましたけど、
今では途中休みながらのマイペースでもOKかな〜なんて思ったりしてます。
自分は>296で3ヶ月とか言って>302であっさり取り消しましたw。
>>332です。
・・・という事でまた次回からは進捗報告メインでいくかもしれません。(寝)
俺は過剰なくらいソース分割してるな(・∀・)たぶん
数行の関数一個のために一個ファイルがあったりする
335 :
280:2008/08/29(金) 20:06:59 ID:UNSITA7h
毎度ッ
コーディングはしてますが依然として前に進まず…
>>333 まったりいきましょうw
やった報告も重要ですが、やらなかった報告も重要なのかも。
報告がなくなったときにすべてが終わる…
>>334 それはある意味すごいですなw
正面と左下右下向きの敵機画像用のアニメーションつき雛形完成(・∀・)
これで量産できる(・∀・)
>>333です。
ま〜ったりになると思います。バグは取れそうだけど、少し調べ物をして終了。
アニメーションの量産!、自分はまだまだまだまだ先になりそうな感じ。
対象への角度を取得する関数を作成(・∀・)
途中から自機狙いに変わる弾などさまざまな物に応用が利きそう
339 :
280:2008/08/31(日) 19:57:49 ID:NFf/o8OD
分割終わりマスタ。
が、コーディング中に理解不能なバグが発生。
どう考えてもおかしいのでもしかするとJavaのバグなのかも…。
一応、迂回策はとりましたが、今後どうするか迷うところです。
>>337です。
取れそうに思っていたバグ取れませんでした・・・orz
直接の原因は分かってないのですが、たぶんプログラム言語そのものに対する理解不足が原因。
ボールを一定カウント後に止めようと変数追加してみたが思い通りにならず。
何か方法はあると思うので、まだ一応は諦めないでおくつもりだけど、
やれるとしても土日くらいなので長期戦になりそうな予感。
趣味というより修行っぽくなってきた・・・・・。
>>340です。
今から1時間位やる予定。
まぁ気長にやりますw
>>340 勘で言ってみる。
1)カウントしてる部分が、飛ばされてて実行されていない。
2)カウントを判定してる判定条件が間違ってる。
3)「止める」処理自体を間違えてる。
ちゃんとカウントされてるかどうか、変数の内容を画面に表示しながらやってみるとか、
カウントはどんな状態でもいいから無条件でボールを止めてみて、ちゃんと止まるかどうかとか
確認していったらどうだろう。
>>341です。
>>342 アドバイスありがとうございます。なんとか直った様な感じがします。
原因は、1)が近い感じで、飛ばされてはいないけれど、正しくカウントされてなかった様です。
344 :
280:2008/09/02(火) 22:31:59 ID:nMmaaE11
しばらく旅に出ます…
皆さん修行頑張ってください…
>>343です。
旅ですか・・・、お疲れ様です。
ゲーム制作は時間が掛かるので自分にもなんとなく分かる様な気がします。
ここに誘導してもらった経緯もありますし、たぶんここで続けていると思うので
またいつでも戻ってきて下さい!。
>>344 (・∀・)ノ~
敵機用オプション仮実装(・∀・)複数種類の弾幕を同時制御できるように
まだバグが残ってるかも
>>345です。今日は30分で進捗ほとんど0。
いつかは選手を22人出して同時に動かさなければならないけど、そこまで到達できるだろうか・・・orz。
この前のバグの件、カウンタ用変数の初期値(=0)代入をコンストラクタという関数内でやっていたつもりが、
間違えてデストラクタという関数を書いて、その中で初期値代入していた。これでもコンパイラ通るので気づかなかった。
なのでカウンタ値にはデタラメな数字が入っていて、if(カウンタ値>0){ボール動く}にしてたから
勝手にボールが動いたのだと思う(たぶん・・・)
コンストラクタとか難しいことやってるんだなー(・ω・)
オブジェクトとかよくわからん…スプライトって呼んでる
>>347です。
自分は実はあまり良く理解しないでやってます・・・orz
元々ソースコピペから始めた方だし、それがかろうじて動いているだけみたいな感じ。
昨日のコンストラクタに関しても後でソース見たら初期化関数が他にあったの忘れてたし、
その初期化関数でやればよかったのだと思う。
ゲーム制作はC++が多いという言葉をそのまま信じて、たまたま動いてるからやれている感じなので
自分はいつも挫折と背中合わせですw。(実際、数日前のバグも危なかったし・・・)
スプライトについては分かりませんが、検索してみるとなんとなく
オブジェクトと同意のような感じしますが、やっぱり自信は無いですw。・・・orz
確かにスプライトの事をオブジェクトと呼ぶけど、
オブジェクト指向とかの話になると別物を指すんじゃ。
>>349です。
そ・・・そうですね(汗;)
オブジェクトは、画面で動くグラフィックだけを指すワケではないからそう思います。
インスタンスとかいう呼称を使う本もあったりして自分は今も良く分かってないです。・・orz
ボールを蹴る直前の選手の移動方向にボールが進む様に改造しようとしたが、
またしても失敗。コンパイルする度にものすごい数のエラーが出る。
直感で直してるから自信ないけどなんとかコンパイルラを通す事ができた。
でも、蹴ったボールが止まるまでの間に選手が動くと、
ボールも選手と同じ方向に向きを変えたり、なぜか突然ボールが画面左上角にワープしたりする。
まぁ、なんとかなるとは思うので今日は終了。
3〜4時間位やってしまった。
やりたい事ではあるけど、現実とのバランスで没頭しきれない迷いがあったりするw
まぁうごけばいいよな(・∀・)うん
ボム、敵&自機モーション、そのた色々実装(・∀・)シューティングスレに晒してきた
>>351です。
見てみました。す・・・凄いし、それに開発が早いですね。
あとスクロールが入れば、ほとんど構成が出来上がりと言ってもいい感じ。
自分の方は少しペースダウンするかもしれません。
進捗ネタが無い時はバグネタで、それも難しければ潜行するかもしれませんw
>>353です。
いつも初級丸出しとネガティブ言動でひんしゅくを買ってるかもしれませんが、今日も来てしまった。
バグ取り終了。
ボールのx,y方向移動量計算する部分とx,yに増分を加算する部分が移動関数内では
別ブロックになっていた為、x,y方向移動量は1度計算すると移動カウント0になるまで行われないけど、
ループ繰り返してカウントが0になるまでの間のx、y増分がデタラメな値に成っていたと思われる。
ボールクラスにx,y増分をメンバとして持たせる事で解決。
コーヒー飲んで???寝ます。
前はxy増分をメンバに入れてたけどこの前いじくりまわしたとき消したな〜
今はxyに直接計算関数の返り値が入ってる(・∀・)
>>354です。
一度ソースを全部見直してみたいけど、
今のところはたまたまバグが取れればそれでいいさ!な状態・・・orz
もう少しやってみて区切りの良いところで見直そうかな〜と思っています。
その時にメンバからxy増分はずせるかもう一度考えてみようと思います。
今日は30分程やってみた。
ボールが画面端に来ると跳ね返る。
次に何をやるか考えているところ。
着々と進んでるようでなにより。
ここはプログラム的なゲーム作製修行者が書き綴る場所でしょうか。
その他の角度からのアプローチをやっている場合でもありでしょうか。
あれこれ考えるだけで、実質何もしていないってんじゃなければいいと思うけど、モノによるな。
や、書き込むのは自由だけど。
>>358 すべてを1人で作ろうと思っている人が、
プログラミング以外の修行をするというのであれば問題ないのではー?
絵を描いたり、文章を書いたり、作曲したりするのは良いと思います。
が、プログラミングを覚える気がないとか、
絵を使用するAVGやRPGを作りたいけど絵は描けないから描くつもりはない、
とかそういう人は駄目なのでは。
362 :
358:2008/09/13(土) 00:24:08 ID:K8k7wD+V
色々とレスありがとうございます。
なるべくゲーム作製からずれない内容でやってきたいと思います。
別の角度からのアプローチと書きましたが内容としてはプログラムに入る前に
ゲーム仕様書レベルのシステム設計書からやってみようかと思ってそちらから始めました。
一応、題目はコマンド戦闘型RPGとなります。
簡単ですがこんな感じで作成しています。
http://p.pita.st/?wyzjpqvv ここから始めてだんだん内容を細かく再分化していこうかと。
>>361です。
うpしたファイルをコピーして名前を変え、そのファイルで作業を進める事にした。
敵味方のFW、MF、DF、GKを一人ずつ表示させる予定だけど、
ここからはどうすればいいのかイメージがわかず時間がかかり挫折も予想されるので、
やる気が残っていれば後戻りできるように前のファイルを残しておこうと思った。
>>362 修行?者はこれで再び3名になったようですが、お互い頑張りましょう〜。
>>363です。
連休中何もせず。今日は30分程触った。選手8人分の座標初期化に失敗。
変数の範囲のprivateをやめてpublicにしてみようと思ったところで終了。
>>364です。
アップしてから誰もいなくなった感じ・・・orz
ソースファイルを付けた事がいけなかったのかもしれないような気がしてきた。
ここはプログラマ板ではないからスレ違いに思われたのかも・・・。
ゲーム製作板らしく次からのアップは実行ファイルのみでなんとか話せるよう頑張りますw(独り言)
8人表示は予想外で一応出来たけど、何故上手く行ったか自分でもよくわかっていないorz
ただし、キーで動かせるのは自分のフォワードのみ。
それでもいいから次に行く事にして今度の目標は、ゴールの表示。
書き込みペースは少しダウンするかもしれませんが・・・。
熱出て寝てた(・∀・)
弾表示のソートをしようと思ったらソートしなくても正常に表示されたりよくわからん
120方向弾とか見てたら目が変になった
367 :
358:2008/09/18(木) 01:20:07 ID:FPeWRLke
連休はエンジョーイしてました。
思えばコマンド戦闘の処理ってどうやるんだろうなあ、と考察しつつも図は描けておりません。
最終的なプログラムの環境はC++&DirectXの組み合わせでやろうと思ってるので
その辺のことが書かれてるサイトめぐりしていました。
クラスの抽出とか不安要素は多いですがこっちも平行で進めていければと思います。
>>365です。
今日は進捗0でした。orz
最近時間が取りにくくなりつつあり、昨日ペースダウンと書いたのはそれが理由ですので大丈夫です。w
季節の変わり目は風邪引きやすいそうなので自分も気をつけます〜。
自分はバグの逆の様な感じで原因不明で上手く動いてる箇所が結構あるけど、今はそのままにしてますw
目指しているのがサッカーゲームで、しかも勉強中レベルなのでコマンド戦闘に関して何も言えませんが、
お互い精進しましょ〜。
369 :
358:2008/09/19(金) 01:41:59 ID:jhD1w2oP
>>368さん
台風にも負けずがんばりましょう。
書き込んでから数日ですが早速当初の予定から逸脱してプログラムに取り組み始めました。
一先ずこんな感じで設計をはじめました。
かなり大枠で分けてますが、責務分けの観点だとこんな感じかなというところ。
GameMain(WinMain関数が含まれるエントリ)
┗ CGameAppクラス(アプリケーション動作を管理するクラス)
┣CGameWndクラス(ウィンドウ生成・表示を行うクラス
┗CDXGraphics(DirectXGraphicsの生成、デバイスアダプタ、DirectXGraphicsを使用する描画を行うクラス)
また上記とまったく関係ないですが特許電子図書館なんてのを見つけゲーム関係を興味本位で調べてみましたが
いろんな用語や開発の手法が新生されていてびっくりしました。
「人生ゲーム」とか「○○ゲーム」なんてのは大概登録されてるのでなんとなしにつけても著作権うんたら引っかかってしまいそうですねえ。
まぁそこまで考える必要はまったく無いのでしょうけどね。
>>368です。
がんばりましょー。
今日は頭の中で考えただけで終了orz
プログラム開始との事でクラス分けも出来てるとなるとかなり早く進みそうな雰囲気ですね〜。
特許電子図書館見てみました。「サッカーゲーム」でも色々登録されていました。
ネットであまりソースを見かけないのはもしかすると特許を恐れてるからなのだろうか?などと想像してみたw
弾生成部分を拡張中(・∀・)
複雑なショットを作りやすく
372 :
358:2008/09/24(水) 21:12:19 ID:orZW5kCq
とりあえずウィンドウ作成からDirect3Dの初期化を行うまで完了。
後、ネットをさまよっていた所「マルペケつくろー」さんの「ビルボード文字」というのを見つけて
それを元に文字表示クラスを作っていましたが自前ではどうしてもエラーが出てしまい、
どつぼったので一先ず自作は置いといてマルペケさんのをそのまま組み込んで文字表示機能を使って完成(?)。
今度は気分転換に各キャラクターを管理するマスターリストクラスの作成に着手したいと思います。
>>370 確かにマリオ式なアクションゲームとか3Dマップを用いたダンジョン物、RPGなんて画材はよく書籍で見ますが
サッカーゲームってあまり見ないですね。
結局はアクションゲームを拡張させる形になるのでしょうけど近いサンプルがほしいですね。
>>371 コーディングの次段階ですか早いですねえ。(この段階は呼び名あるんでしょうか?)
予断ですが最近本屋うろついてたら「シューティングゲームアルゴリズムマニアクス」なんてのがありました。
ちょっと面白そうだったんで買ってしまいました。
(まだよく読めてないですが・・・)
>>370です。
>365のゴール表示は初期化が上手く出来なかったので座標直接指定。
オブジェクト指向によるプログラミングは既に崩壊してますが、とりあえず気にしないで行きますw
>>371 は・・・早いですね。直接書き込まないで自動な感じで色々動きを設定できるようなプログラムでしょうか。
自分にもそんなのが出来ればと思いながらも、今のが初めてのプログラミングでまだまだ勉強中レベルなので
いつかは自分も挑戦してみたいです〜。
>>372 マルペケさんのHPに行ってみましたが、超ハイレベルで自分にはまだ理解できませんでしたorz。
サッカーゲーム制作本が出版されれば一番なのですが、そんな時が来るのに期待しつつなんとかやる気を保っていきたいです。
374 :
358:2008/09/25(木) 02:46:02 ID:BTO9WWSp
モンハン久々にやってたら遅くなりました。(-_-)zzZ
キャラクターのリストを作ろうとしてたらなぜかアイテム管理のリストになってました。不思議です。
http://www.dotup.org/uploda/www.dotup.org2899.zip.html アイテムのカテゴリーは武具関連は細かくやってましたが薬草などの消耗品系はどうカテゴライズするか思いつかず
全部消耗品の整理となってしまってます。
アイテムのフラグも非売品と1つしか持てないというフラグを管理する以外特に意義が見えないような・・・。
後この辺いじってて今更気づいたのですがC++2008 Express Editionてリソース関係制限掛かってるんですね。
アイテムをEditorから参照できるようにツールを作ろうと思ってましたが思わぬ壁になってしまいました。
うーん、VisualStadio正規版高いからツールだけVisual Basicというのも考えますかね。
>>373 3Dはいまいち頭に入んないですね、座標や角度なんてのが特に。
この辺は資料も多いのですが数式が多くて頭が覚えることを否定します。。。
リストとかの単語がわけわからんww一体何の話だ…w
ウィンドウ表示とかD3D初期化とかも全部ライブラリに丸無げだからそこまでわかるわけでもなかったりする…
>>372 本とかは一切持ってないなぁ…アルゴリズムとかほとんど全部自作の変なのだからほかの人には読みにくいはず
>>373 今の関数だと一方向弾と全方位弾しか撃てない(・∀・)
扇状弾とかショットガンとかも無理にやればできないことも無いが発射関数をいじったほうが後々変更があったときダメージが小さくなる(・∀・)
378 :
358:2008/09/26(金) 02:51:39 ID:q9tzDNxL
>>375 ちなみに私知ったかで用語っぽい造語を言うことあるので100%は信用しないでくださいませ。(;−−)
私の言うリスト(はっ付けたファイル)はアイテムを管理するファイルのフォーマット規定ですね。
アイテムの名前は32byte分とって、アイテム説明は128byte分、アイテムの種類は・・・といった具合です。
最終的にこれをバイナリファイル形式で保存し、その情報をプログラム側へ渡すというのを考えてます。
なのでこのデータを作るツールを作ることを考えてましたが、私の使っているVC++の環境ではリソース関係がいじれないので
ツール作成だけVBを使って作るように今日から勉強始めました。
(コードは進んでませんが・・・)
本はこういうもんとかありましたよーという紹介程度の意識でお知らせしてました。
ライブラリにしろ関数処理にしろ一人で作ってるものですからその一人がわかっていれば問題ないですね!たぶん!
379 :
358:2008/09/26(金) 02:54:29 ID:q9tzDNxL
>>376 はっつけたファイルの処理については「ビットフラグ」で検索いただければ概要がヒットすると思います。
大雑把に説明させていただくとlong型(32bit)の変数の各bitを
0or1で管理することによりキャラクターの状態異常や、アイテムの非売品情報を
管理する方法となります。
<mainプログラム内>
long Flag = 0; //フラグを初期化(32bit分全て0の状態)
//指定したBitを1にする(OR演算)
//UNKNOWNはenum(列挙型)に宣言されている定数のため、4の値を持っています。
SetUsageBit(Flag, UNKNOWN);
/******************************************
* SetUsageBit関数実行時の動き *
*******************************************
OR計算
Flag :00000000000000000000000000000000
UNKNOWN:00000000000000000000000000001000
-------------------------------------------
Flag :00000000000000000000000000001000
******************************************/
380 :
358:2008/09/26(金) 02:56:08 ID:q9tzDNxL
//つづき
//すみません・・・ずれ無いように出来ませんでした・・・。
//指定したBitを0にする
ClearUsageBit(Flag, UNKNOWN);
/******************************************
* ClearUsageBit関数実行時の動き *
*******************************************
NOTAND計算
Flag :00000000000000000000000000001000
UNKNOWN:11111111111111111111111111110111
-------------------------------------------
Flag :00000000000000000000000000000000
******************************************/
//指定したBitの0or1を確認する
if(CheckUsageBit(Flag, UNKNOWN))
;//Flagは1(True)です
else
;//Falgは0(False)です
/******************************************
* ClearUsageBit関数実行時の動き *
*******************************************
AND計算
Flag :00000000000000000000000000000000
UNKNOWN:00000000000000000000000000001000
-------------------------------------------
Flag :00000000000000000000000000000000
******************************************/
381 :
358:2008/09/26(金) 03:00:33 ID:q9tzDNxL
一人で連投しまくってすみません・・・。
>>376 サッカーゲーム少し触らせてもらいました。
一先ず気になる点だけ挙げさせて頂くと
ボールの上を通った後、キャラクターを移動させボールから離れた場所で「Z」ボタンを押下してもボールが移動しました。
#認識されているのであれば口うるさい指摘ですみません。
>>376です。
>>377 サンプルの紹介ありがとうございます。
この様な形でサッカーゲームに関するものが既に出版されているとは知りませんでした。
ちょっと探しに行ってみようかと思います。
>>379〜381
丁寧なご説明どうもありがとうございます。なんだか理解してきた感じです。
「ビットフラグ」でも検索してみました〜。
ボールのバグは認識していませんでした。原因についてはなんとなく思いつく所があるので、
ソースの書き直しの時にそれを試してみようと思います。
>>382です(汗;)
(補足です〜)
バグの思いつく所というのは、ボールと選手の当たり判定がONの時に
別のフラグ的な変数をONにして、これがONの時にボールを蹴るための
Zキーを押せば、ボールが動き、変数をOFFにしているのですが、
これだと当たり判定がON→変数ON でZキーを押さずにボールから離れたら
変数はONのままなので、ボールから離れた所でZキーを押すとボールが動いてしまう。
・・・が原因かと思ってます。(寝)
>>383 毎フレーム球に触れてるかどうかを判定すれば大丈夫かな(・∀・)触れてないならフラグOFF
扇状に弾を並べたいがどうも崩れるので別の計算式でやろうかな…
左右交互に並べるのではなく端から…
>>383です。
進捗0。能力の限界が近付いてる気がしてきた。ボールにゴールが入った判定を考えて思考停止。
選手とボールの当たり判定関数、ボールとゴールの当たり判定関数というように
別々に関数をつくろうとすると、毎回それぞれの関数に判定時点のデータを渡さなくてはならず、
初級の自分にはそれすら頭痛の種になるので、当たり判定関数は1つだけにして、その中で全部の判定をできないかな〜と思っただけで終了。
>>384 ソース書き直しまで行けたら、それでやってみようと思います。プログラムって難しい〜。
シューティングゲームは計算が色々あって難しそうで、自分も何か出来ればとは思うのですが・・・。
>>377 AIの本、超難解でした。AIの実装で悩む事になるのは、今の進捗から楽観的に考えても6〜7年先かもしれないだろうし、
それまでやる気が持続してるかも微妙・・・orz。ですが、今のソースに区切りがついたら頑張って読んでみようと思います。
AIなんて考える必要ないと思う……。
少なくとも今の段階では不必要。
だが、おそらくもっと段階が進んでも不要だと思う。
>>385です。
>>386 アドバイス、どうもありがとうございます。
AIと言ったのは、紹介して頂いた本のタイトルにAIが含まれていた為、あのような書き込みになってしまったのですが、
参考にしたかったのはその本の4章のサッカー部分という意味ですので、いきなり方針を変えてAIに突入はないので大丈夫です。
(今の進行状況からみても、AIを考えるレベルに達する事が仮にできても、それは遠い先だろうと自分でも思っています。)
現実の方ですが、ゴール判定はちょっと後回しにして、チームを赤と青に分けようと思い、
ソースを少し変えただけで動きがおかしくなり、これを直すのにしばらく時間がかかりそうな予感。
388 :
358:2008/09/30(火) 02:31:31 ID:R1IXZzji
今日の進捗。
土日はゲームしてて進捗はほぼなし。
月曜帰ってきてからVBを勉強し始めたが、こちらが考えていたバイナリ固定長での読み出しがVBではめんどくさいことを知り、再考。
ネットをさまよった結果、ResEditorというフリーのリソースエディタをハッケソしたのでそちらでツール作成に取り掛かるりました。
(まだほとんどコードは組めてませんが)
>>384 弾の計算方法はいくつか頭でイメージ出来てれば楽なんですけどねえ。
未だにsin,cos,radianといった数学の角度が頭の中でピンとこないので計算が苦手です。
>>385 んー当たり判定は当たり判定で一つでよいのではないでしょうか。
たとえば今の2Dで判定するならそれぞれのスプライトの大きさから当たり判定というのを割り出せると思います。
bool HitCheck(RECT rect1, RECT rect2)
{
//当たり判定
}
こんなのを共通で使えるように宣言していればいちいち専用の当たり判定関数入れるのは必要ないかと。
389 :
358:2008/10/01(水) 02:28:43 ID:eNHXfyBh
モードレスダイアログというものを表示させるまで行きましたが、
CALLBACK関数との連携がうまく動かなくてスケルトン的なものしかまだできてません。
今週いっぱいくらいかかりそうな予感。
後久しく、三角形の定義、三角関数(sin,cos)を多少学びました。
現状3D的な要素は出てきてませんが、今のうちに学習してないとそのうち何かで詰まりそうです。
390 :
358:2008/10/02(木) 02:26:40 ID:VxBwF2E3
>>387です。
アクセス規制のために書き込みが出来ませんでした・・・orz
>>388-390 とりあえずスプライトの大きさ使うあたり判定でやってみて様子みてみます。
今の自分には三角関数ぐらいしかわかりませんが、その三角関数も言語によって向きや正負が
違ったりして多様な記憶があるので、プログラムっていろいろややこしいです〜w
パスがわかりませんでしたので画面は見てませんが、進みが早そうな雰囲気。
ここでいろいろやる事書いてはみたもののなかなか進まなくなり、現実の方も
忙しくなってきたので本の読み残しをパラリとめくりつつノッてきそうになったら、
プログラミングにも再び手を出してみようかな〜といった今はそんな感じです。
ツールとかすごいなー
次元が違うぜ(・∀・)
>>391です。
こちらはなんとか選手の赤と青の色分け終了。
Turbo debugger をインストールしてどこでエラーが出て止まるのか調べようとしたら、
なんとソースがマシン語らしき別言語で表示されるので使用を断念。
結局、悪いところを勘で見つけた。これはかなり運が良かったとしかいえないw。
バグはアニメ表示処理部だった。画像を特定するための配列のような変数に使うidが初期化されてなくて
デタラメに大きな数字が入っていた。色分けする前は何故動いていたのかは
ソースを上書きしてしまったため調べられず。・・・orz
次の目標として画面に出る物は全部実装しようかなと思ったものの
その後それらに動きを与えられずに挫折する事もありえるので、先に挫折しそうな方に挑戦する予定。
(目標)自分以外の赤青の選手がアニメーションしなくてもいいからボールを追いかけ続けるようにする。
>>393です。
翌日自分の文章を見るとなんとなくデバッガが唐突過ぎた感じ。
これは、前いたスレでデバッグの指摘を受けていながら何もしていなかったのを思い出し、
ようやく使おうという気持ちになっただけですので一応付け加えておきます・・・orz
今日はまだ時間があるけど、本に少し目を通すぐらいにするつもり。
デバッガつかうと世界が広がる。
そして、キミが断念したところは使い方間違ってただけだ。
いろいろやってみそ。
DXライブラリに変な不具合かもしれんもの発見(・∀・)なんかアニメパターンの横の画像が1ドットはみでる
公式に乗ってた気もするがいろいろ検証してみよう。バイリニア法だからかもしれんが
切り取った画像を90度単位で回転させたらって話か?
398 :
358:2008/10/08(水) 02:02:05 ID:Q0BvAXdK
最近すっかりゲームする側になってます。
ツールだいぶ出来たんですが日本語入力が出来ないという致命的な欠陥があるのでそちらを対応中。
今のところどう直すのか想像はついてません。
>>392 ちゃんと元のサンプルがあって一部を自分用にカスタマイズしてるだけなんで
ほとんど置換程度の考える作業だったりもします。
>>397 回転は一切なし(・∀・)
自機の座標動かすとはみだしが消えたり別の位置に出たりする
表示はDrawRotaGraphF関数。拡大率、フルスクリーンでもウィンドウでもなる
アニメパターン作る時は画像サイズカッチカチに詰め込むのはよくないってことか。余白を1ドット取るだけで解消できそう
>>394です。
>>395 ソース見てもわからないバグが増えてくるかもしれないので、その都度触ってみて
慣らしていこうかな〜と思ってます。
>>396、397、399
1ドットの件、知りませんでした〜。こういう時にDXライブラリの最新バージョンが出て
バグが取れてたなんて事があれば最高なんでしょうけど・・・orz
>>398 ゲ・・・ゲームもいいと思いますよ〜。ノってる時に書くのが一番ですし・・・。
誰もいなくなってきたな(・∀・)
おおまかーなシステム面はほとんどできたからいろいろ練り込んで行く
>>400です。
あっという間に10日が過ぎた。
選手色分け以降の目標を未だ達成できず。
それと直接関係ない部分ではまっていた。
選手のデータ指定する処理内でswitch()命令に数字を使うと後々分かりにくいだろうと思い、
#define FW 1 //フォワード
と定義してみたら、switch文を使っている部分でコンパイラが「不正な文字 ' ' 」とエラー出すので
そんな空白文字使ってないのでやむを得ずcase FW:と書きたいのをcase 1:にしていたが、
ある時、#define FW 1 //フォワード の1と//の間の空白が全角だったのに気づき半角の空白にしてみたらと思い、試したらcase FW:でも動いた。
コンパイラがswitch文側にエラーメッセージ出すので、間違いが#define文側にある事に長いこと気づかなかった。
・・・という具合で、先はとてつもなく長くなりそうで、常にやる気停止とは背中合わせな状況です。
あるあるw
レーザー実装についていろいろ(・ω・)
405 :
358:2008/10/30(木) 02:06:00 ID:Cd/2iFfy
お〜、確実に進んでますね。
これからも頑張ってください。
ゆっくりだけど進行中(・∀・)
ひとつのレーザーを複数の連続した弾で構成する感じで実装中
矩形もいいんだがレーザーを分裂させるのが難しそうなので自機ショットのレーザーのみ矩形当たり判定にすることに
>>406です。
残念ながら進捗は0です。orz
時間がうまく作れない、やりがいとかやる気の維持の様なメンタル問題、
自分のプログラミング知識不足、次の目標を明確にしていなかった等、理由は様々です。
>>407 なかなか進まないかもしれませんが、時間とメンタルを立て直しつつ頑張ってみようと思います!
>>408 当たり判定って難しそう。細長い物を斜めに撃つ場合なんてどうすればいいのか想像出来なかったけど、
連続した弾で構成というのもアリですね。なるほど!
>>409です。
次の目標(年内は無理かも)
1.ソースを見直す。
参考にしているプログラムをよく理解してないからなのだろうか
わずかな修正にも時間が掛かる様になってきた為。
2.自選手の移動方法を方向キーで4方向に移動する方法から、
Zキーを押したらマウスカーソルのある位置に移動する方法に変更する。
>>410です。
今思うと>409の最初の4行(〜様々です。)は、そんな事考えても無意味な類の不要な発言だった。
結局は独力で出来るか出来ないかの問題であって出来なければ去るだけだし・・・。
一応生きている間に出来れば良いのだから・・・。
余力の無い時に無理してもどうせ進まないだろうし、逆にちょっとでも
余裕ができた時に集中して考えられるようにしておこう〜!
但し、全く離れてしまうとアッという間にソースの中身を忘れてしまうから、
時間ができた時に作業をすぐ再開できるように寝る時に少し関係書籍に目を通す位の事は
やっておくつもり。
>>411です。
このスレで本やHP紹介、ヒントを受けたり等してるので
昨日の「独力で」と言うのは、あくまでもPCの前で一人で手作業する時だけに限った話だと断っておきます。(汗;)
もしも本職プログラマならまだ会社だろうし、それに比べれば今家にいる自分はまだ時間ある方だな〜と少し反省w
>410での見直し策は、クラス図(のような物)を作成して色々考えてみるつもり。
今クラス2個分できたから、あと11個程で出来てしまう。
プログラムに少しずつ書き足していく内にクラス間のデータのやり取りが分かりにくくなってきたので、
整理すれば何かが見えて今後の作業効率が上がるのではと思ったのが理由。
>>412です。
クラス図が完成。
これで何かが見えればよいのだけど・・・。
414 :
358:2008/11/18(火) 23:39:23 ID:6yf+x9Ts
いろいろ寄り道して今はマップチップを使った背景画像の出力をやってます。
2D部分は大体は出来たので、最終的には3Dダンジョンのマップを作るのが一つの目標としています。
今は3Dを頭に叩き込むためとりあえず「実例で学ぶゲーム3D数学」というストレートなタイトルの本読んでます。
>>412 ソースを見直す作業は私も良くありますね。
2、3日見なかったら忘れますのでw
コメントとかはなるたけ簡潔に書いてるつもりですが
それでさえもわかんなくなるのはやはり作り方に問題があるのかもしれないです。
まぁこうやって愚痴るのも良いんじゃないですかねぇ、どうせ見てるの小数ですし。
クラス…だと…(・∀・)未知の世界だ
どうもレーザー描画がうまくいかない
すすまないのでネタだけ頭にたまってゆく
それをノートに書き出してしまえ
>>413です。
>>414 自分も3Dやってみたいのですが、もし実現するとしてもまだまだ先の話になりそうな感じです。
その本、ネットで検索してみましたら>377と同じシリーズ(何故か動物の表紙)で評判よさそうなので、
本屋に行った際にはチェックしてみようと思います。
>>415、416
うっかり忘れたりする事がしょっちゅうあるので、ノートに書くのは、自分も禿同(←2ch用語)です。
クラスといってもC++のゲーム本がなんとなく読めさえすればいいぐらいの気持ちでやってるので、あまり理解してないです。
クラス図についても自分の頭の中の整理が出来ればいいだけなので、かなりテキトーな書き方でやってます。
>>418です。
>412であと11個程と言ってたけど、実際はそんなに無かった。(苦w)
>>418 今朝確認したんだがファイルが無かった…もう少し持つうpろだにしてもらえたら…
クラス図すげぇ(・∀・)
構造体オンリーの俺とはぜんぜん違うな
>>421です。
>>422 ど・・・どうもです〜(汗;)
今回の図はクラス同士の関連を表す線も無いし、
単にクラスの宣言を図に移し変えただけなのでクラス図っぽい図といった感じのものです。
頭を整理する方法が見あたらないな〜と思ってたところにたまたまこの図の存在を知っていてちょっと
試してみただけなんで、また行き詰るまでは図は書かないで、ソース書きに移ろうと思ってます。
但し現実の方でいろいろあって作業は進んでいないです。(言い訳orz)ちょっと自分に負け気味な状態。
424 :
358:2008/11/27(木) 01:20:32 ID:wnLJrU6F
すっかり3次元の狭間に捕まった為、3D数学とプログラムでの実行結果の間を右往左往してます。
基本的に理論で覚えるタイプではないので座標変換系を頭で理解するのが苦戦しています。
とりあえず3Dオブジェクトを描画する空間、Xファイルオブジェクトのインポート、カメラ制御といった
最低限の3D描画セットを用意してみましたが、Xファイルにテクスチャは反映されないわ、
カメラはどこ向いてるかわからないわでてんてこまいです。
Xファイルへのテクスチャ反映できない理由はすぐ追えそうですが、カメラ位置や注視点の考え方が今市なので
またしばらくテキストとにらめっこです。
>>423 クラス図お疲れ様です。
拝見させていただきました。
同じようにクラス図書こうかなと思っていた時期もありましたが
クラス4個くらいの時点で面倒でやめました(ハッハッハ)
今大小あわせてさらに増えてるのでやる気としてはほとんどありません。
こちらも煮詰まること多いので(現に詰まってますが)定期的にメンテナンスというか整理は必要なのかもしれませんね。
>>423です。
>>424 「実例で学ぶゲーム3D数学」、本屋で見てみました。(最近の発売だとその時気付いた)
こ・・・これは、自分にはかなり難しい内容だと思いました・・・。
いつか3Dやりたいと思ってますが、やっぱり自分にはまだまだ難しい感じorz
こちらはしばらく進まないかもしれませんが、寝る時に少しずつですが
「14歳から・・・わくわく・・・C++・・・」の最後の7章に目を通してます。
この本のシューティングを説明してる章は何度か読んでいたけど、
今初めて読んでる部分はシミュレーションゲームを題材にしてマウスも使っているので
>410の参考になるのではと期待w
>>425です。
クラス図の方ですが、move関数にクラスのオブジェクト?を丸ごと引数として使ってるのがおかしい様な気がしている。
何故だかわからないけどなんとなく勘のようなものw
ソースの手直しも時間みつけて取り組む予定。
だれもいなくなっちまったな(・∀・)
そろそろ残機表示とかのレイアウトつくる
>>426です。
>>427 たまに板を見に来てはいたもののあまり自分の作業が進んでいないので書けずにいました。・・・orz
今のところは>425の本をわからないまま1回目を通しただけ。
もう1〜2回読んで感触掴めそうになればソース書き再トライの予定です。
>>428 英語が読めないのでわからないけど世界の広さが感じられる参考になるHPでした。
左側の3D sportsをクリックすると3Dのサッカーゲームが既にあることに気付く・・・orz
? サッカーゲームなんて普通にあるでしょ?
承知で目指してたんじゃないの?
>>429です。
>>430 確かに進み具合の方はまるで止まっているかのように遅いかもしれません。
2007年8月頃から趣味感覚でゲーム作りの勉強を始めてますがまだまだゲームの形になるのは先になるだろうし
結局出来ない場合もあるので、今サッカーゲームがいくつ出ていたとしても
その事が理由でギブアップする気は無いので大丈夫(?)です。
432 :
!dama:2009/01/02(金) 03:13:47 ID:3+aZDUN0
↑俺が作るゲームの評価
元日終わってたよ…今年も残す所あと364日ですよ皆さん…
去年の今頃だったら365日あったのになあ
>>431です。
残り359日!!!今年も頑張ろうと思いますw
でも生存報告しかできない・・・orz
進み具合はまるで止まっているかのように・・・というよりは、限りなく0に近いのかもしれません。
>425の7章を2回読んでみたけど、まだまだな感じでどうするか考えているところです。
生活、健康面の用事を優先せざるを得ないので、しばらくは時々生存報告するのが精一杯になりそうな感じ・・・。
うぅ、ボヤボヤしてたら今年も何も出来ず終わってしまう・・・
今までROMしてたマッサラな初心者ですが、参加させて下さい
C言語&DXライブラリの勉強と平行して、徐々に形にして行けたらと思ってます
>>435です。
自分は今、ものすごくゆっくりで止まった感じな進み具合ですが、
まだ357日もあると思ってお互い頑張りましょ〜!
438 :
436:2009/01/09(金) 00:26:46 ID:6X36htv/
取り合えず開発環境を揃え、ネットで初心者講座を読み漁りました
まだ途中ですがループ・条件分岐・構造体・自作関数の使い方がなんとなく解った気がする
ポインタは良く解らない・・・
最初なんで、まずは作り易そうなADVで完成を目指します!
>>437 ういっす!頑張りましょう!
439 :
436:2009/01/10(土) 00:16:56 ID:lP2FhPfp
ポインタを理解した気になる、けど使い道が解らないw
オブジェクト指向が主流らしいけど、解説読んでもサッパリ
手続き型のまま作り始めても大丈夫だろうか・・・
取り合えず絵と文字表示を知ったので、かまいたちの夜もどきを表示して今日は終わり
修得が早いなw
>>437です。
習得早いのうらやましいです〜。
ついに参加者が4名!←・・・と唐突に言ってみるw
>410で自分が言った目標1は時間が掛かりそう(というかそもそもこう直すべきというイメージが出てこない)なので、
もし現状のプログラムの直しで目標2が出来るならそれだけでもやってみるに方針変更。
目標2もできなかったら・・・、その時考えるつもりw
>>441です。
修得でした。変換ミスしてしまった・・・(汗;)
443 :
436:2009/01/11(日) 00:55:55 ID:hGxbs0Ew
今日はファイル入出力、キー・マウス入力、フォント周辺、αブレンドや明度変更をちょこっと
なんだかゲーム、作れそうな予感・・・!なのでこのまま手続き型で行きます
フェードイン/アウト等演出効果・場面転換のやり方を考え中
実験用に棒人間と背景を描いて今日は終了
>シュウトク早い
結果だけ書くとスマートですが、実際は訳ワカメ!訳ワカメ!と叫びながらしっちゃかめっちゃかな行間をお察しくださいw
いやいや、一日でそれだけ進められるって事は
かなりの経験がないと無理でしょう。
でなければかなり頭がいい(勉強が得意)か。
>フェードイン/アウト等演出効果・場面転換のやり方を考え中
フェードイン、アウト程度ならブレンドモードの数値を変化させつつ
画面全体に黒いBOXでも描画すればいいんじゃないかな。
シューティング作ってるPSPIだー 酉かえたぞー
なんか天才が来てるな(・∀・)俺なんか半年になるのにいまだにファイル入出力は恐ろしくてあんまり触ってないぞ
>>442です。
1日でそこまでいくのは本当に凄いと思います〜。
!!!。酉変更なんですね〜。今年も頑張りましょ〜!
今日は>410の目標2を実現するにはどこをどう書き直せば良いか考えて終了!。
447 :
436:2009/01/12(月) 01:22:04 ID:ug24ph9R
早く形にしたくて駆け足で目を通したので、「こんな命令がある」って知識をストックしてるだけで、
実際組み立て始めたらエラーだらけです;
今日はお絵かきソフトをちょっと試すつもりが、気付けば一日経っていました
オープンキャンバスがシェアなだけあって良さげな感じ
本当はフォトショップが良いけど、自分の腕では宝の持ち腐れ過ぎるw
絵は慣れらしいので、これから1イラスト/Dayを目標に描いて行こうと思います
>>444 キャラごとに適用する事ばかり考えてました。そっちの方がお手軽でPCに優しそうですね
>>445 いえいえ紙一重の方です え・・・ファイル操作ってやばいんですか?;
>>446 なんかややこしそうですが頑張ってください!
>>446です。
自分もエラーは頻繁にというか必ず出てます・・・orz
プログラムのどこを直すか大体の見当を付けたところで終了。
少しずつ直していく予定。
>>447 俺がアホなだけだ(・∀・)ファイル操作できないとなにもつくれんww
ポインタの概念はわかってるがポインタの使い道を知らない頭だぞ(・∀・)
バグの原因はいつも計算ミスやアルゴリズムの欠陥
たまに配列を激しくいじったら関係ない変数がいじられるバグ出てワロタ
ポインタ怖い
450 :
436:2009/01/13(火) 00:14:13 ID:9YgrpDjJ
さっそくイラストを描き逃すw もっと基本の静物模写から練習を始めました
DXライブラリのブレンド命令によって、吉里吉里の様なボーダー・ストライプ・円や渦状の場面転換が出来る事を知った
これは便利と、さっそく関数化しておこうとするも、途中でメインの仕様が決まってないと関数も作り様が無い事に気付く
なので、まずは基本設計を決め打ちしなくては
>>448です。
あまり余裕なくて今日の作業はちょっとだけ。
今直そうとしているのは、1ループ毎に移動先位置を計算する部分を
別の関数とでも言うのかクラスにして取り出す作業。
453 :
436:2009/01/14(水) 03:12:28 ID:sQKXpTXd
プライベートで問題発生、烈しくモチベーション下がった・・・
絵を練習してサンプルコードをいじっただけです
FPSが61.2になる(・∀・)なんだかきもちわるい
ウィンドウだと安定しなくもなる
うーm
>>452です。
>>453 自分も実生活でいろいろあって作業が止まる事が良くありますが、
マイペースでやってます〜。
進まなくてもとりあえず2chでやる気だけは維持して行こうと思ってます。
>>454 こちらのプログラムはループ処理時間平均値を取り、その平均時間での
オブジェクト移動量を60Hzの時の移動量に変換して移動させるみたいな感じなので
14歳シリーズが限界な自分なので、その平均値そのもの(FPS?)を調整する方法については知識0です・・・orz
今日はプログラム書けそうに無いけど、とりあえず寝る時に
ちょっとだけ本に目を通す予定。
456 :
436:2009/01/15(木) 00:53:02 ID:xgElujNM
>>454 GetNowCountを使っていたらGetNowHiPerformanceCountを使うとか・・・
ゲーム自体が重くて動作が遅くなるなら垂直同期を切って見るとか・・・
すいません全部聞きかじりで、書いてる本人は良く解ってませんw;
>>455 ありがとう(つд`)進みたいのに内容が頭に入ってこないです
切り替えの早さが欲しい・・・少しずつでも進めていきます
FPSが62.5になるのは単純に待機のとり方が悪いみたいだ(・∀・)
もうすこし正確に1Fを待機させるようにせねば
あとFPSが不安定なのは他のソフトに割り込まれてるみたい
東方とかはいつでも60なのになー
>>455です。
み・・・皆さん凄いです。自分もそういう知識を身に付けたいのですが、なかなか時間が作れなくて・・・orz
自分の場合、たぶん1ヶ月単位でほんのわずか進めるかどうか、下手すれば一歩も進まずな予感ですが、
とりあえずまずは14歳シリーズの本やネットで頑張ってみます。
基本仕様を構想・リファレンスを眺めて終了
>>457 原因が解って良かったです。動き重視系は難易度高そう・・・
>>458 自分も大して解ってないです
他の専門スレを訳解らないままに目を通して、気になったレスをコピーして
何かの時に役立てられればと溜め込んでます
460 :
436:2009/01/16(金) 01:18:32 ID:Gpm/i2u9
461 :
436:2009/01/17(土) 00:46:44 ID:6JZ7PCSk
のんびりとお絵かき+基本構造を構想・・・特に進展無しです
Frieve Editerと言うエディタを試しに使った所
簡単なフローチャートからシステムの全体像まで
一目瞭然でかなり便利
キャラクターの相関図やストーリーの組み立てにも便利そう
462 :
436:2009/01/18(日) 01:39:40 ID:E+kcrfNd
引き続き基本構造を・・・いい加減次の段階に行きたいw
FPSにふらつきがないのはVSync待ちだろう
>>458です。 今週ダメだった。また来週頑張ります・・・orz
465 :
436:2009/01/19(月) 00:20:28 ID:NWUBpW7C
EditerじゃなくEditorでした
基本構造もう少しで出来そう、けど飽きたのでストーリーを考えつつ絵描き
イメージボードっぽいのを描こうとするも、腕の無さに撃沈
可愛い&カッコいいキャラが絶望的に描けませんw修業が足りんなぁ・・・
>>463 待ってるはずなんだよな。でもスカイプ動いてる時だけはげしくずれる
FPSはどうにかするとして敵機オプション操作についていろいろ。敵機&弾幕制御はほぼ完成形に近づいてきた気がする
暫定の枠も作ってみたりした
468 :
436:2009/01/20(火) 00:28:55 ID:N9MvLHd9
ちょこっとだけ。構想がようやくまとまる。キー入力処理を作りました
>>464です。
早く寝なければならないのにちょっとだけやってみた・・・orz。
>452で言ってた移動の為のクラスが数行程度でそんなに大きくないので、他のクラスのソースに含めて
書いてたら分かりにくくなりそうな予感がしてきたので、面倒でも1つのクラスに対して
クラス宣言のファイルとクラスの中身の関数を定義するファイルを1つずつの構成に直す予定。
>>469です。
>469の一行目は今思うとなんとなく書かなかった方が良かった気がしてきた。
と・・・とりあえずそれだけです・・・(汗;)
471 :
436:2009/01/21(水) 00:46:27 ID:XlPVTJuS
ファイルからシナリオ読み込んで表示させただけっす
絵描き絵描き(・∀・)
473 :
436:2009/01/22(木) 00:40:34 ID:b8zSFi5U
気付かれたw;今日は絵描きだけ・・・人物よりクリーチャー・モンスターのが感情移入して描き易い
不気味な絵がどんどん溜まって行く〜
推理風味なADVを作ろうと思ってたのに、サバイバル系の方が性に合ってるのかしら・・・
そろそろコテハンつけるとかしてみては。
476 :
436:2009/01/23(金) 00:21:16 ID:MaN9qQQB
今日は絵描き&フルスクリーンとウィンドウを切り替えられるようにしただけ
うまく動かず、=と==を間違ってる事に気付くまですごい時間を無駄にした・・・
>>474 うちのPCではスムーズに動きましたよ〜順調ですね!
やっぱり機能ごとに別ファイルにした方が色々いいんでしょうねえ
やり方勉強しなければ・・・
>>474 おおwちゃんとボールもけれるww相手チームもちゃんと蹴るんだな(・∀・)すげー
>=と==
あるあるあるあるうあう
>>474です。
>>475 コテハン付けない理由の1つとして「なりすまし」の被害を気にしていたのですが、
あまり気にせず付けてみるかちょっと考えてみます。例えばコテハン「SGGK」にしてみるとかw
>>476 確かif文の条件って=でも==でもコンパイラを通ってしまったような気が・・・
プログラムって難しい〜。
>>477 相手チームがボール蹴れるのはたぶんバグっぽいです。
Zキーでボール蹴るとしていたのをそのままにしているからかもしれません・・・orz
>なりすまし
そのためにトリップがある(・∀・)俺の名前はトリップ
名前の後に#(好きな半角英数記号1〜10個)ってつけると固定でランダムな文字になる
毎回#のあとを同じ記号にしてればなりすましはできない(・∀・)
あれバグだったのかww
481 :
436:2009/01/24(土) 00:58:29 ID:bfIOU/J5
コンフィグファイルから設定を読み込もうと奮闘中(絵はサボり・・・)
>=、==
でもうっかりミスはやるなら早い方がいいですねw
482 :
436:2009/01/25(日) 01:02:53 ID:9YRwrTCX
やっとコンフィグファイルから設定がロード出来た
ifの条件文でまたやってしまって時間かかった;
絵描きはどうもやる気にならないので不定期にします
>>479です。
トリップ付けてみました!どうもありがとうございます〜。
ファイル関係難しそうなので自分はまだまだ先になりそうです(汗;
時間見つけて少しずつやっていく予定〜!
トリップお試し
ファイルいじってたらバッファオーバーフローとかでデバッグ不能になって焦りましたw
FPS回りをイジイジしてます
俺の酉は覚えやすいぜ(・∀・)
物理の勉強をいろいろ
平面上の点Aから点Bまでの距離がRで点PがAからBへ単位時間あたり速度Sで移動する。その時徐々に減速しT単位時間後に速度が0で点Pが点Bに到着するようにするには1単位時間当たりいくら減速すればよいか
とか(・∀・)
自分も将来ファイル関係やる時には気をつけてみます〜。(バッファオーバーフロー難しそう・・・)
そういえば日本語読みで覚えやすそうな感じ!。自分の方はランダムっぽいけど、とりあえずこのトリでやってみます〜。(物理についてはボール関係でいつか悩みそうな予感orz)
進捗なし・・・orzなので代わりのネタ→ >474で選手移動方法をカーソル追従化するために使おうとした
DXライブラリのGetMousePointの戻り値の取り方が分からなくて
C言語の「参照渡し」で取れるようになっていると気付くのに実はかなり時間掛かってましたw
コンフィグロードのソースが読み辛かったので書き直し
誤作動を防ぐ為に、設定ファイルの空白・タブ・無関係な文字を読み飛ばす様にしました
今は異常な数値を訂正させたり、アスペクト比を変えられる様にするか考え中
>物理
動くのを見るのは楽しいけど作るのは大変ですね;
>参照渡し
ポインタとかで見かけた様な・・・自分もマウスは必須なのでそのうち学ぶ事になるなぁ
488 :
436:2009/01/27(火) 00:47:36 ID:HyCbh5nh
今日も少しやってみました。
コピペから始めたプログラムだから未だに不完全な理解でやってる部分も多く、時間もないので
自分でここが肝心かな〜?と思う部分だけサッと手書きメモレベルで整理してみた。(約30分)
悩んでいるところが見えたような気もするが、でも微妙な感じ。
今日はここまで〜・・・orz
490 :
436:2009/01/28(水) 00:46:38 ID:Zv8NeSZ5
今日は全然出来なかった・・・リフレッシュレート関係を作り中です
自分の場合、プログラムは1ヶ月でほんの少し進むかどうかといった感じで
ほとんど止まってることもよくあるぐらいなので、気が乗らないときには休むのも有効かな〜と時々思ったりします。
こちらは、この前言っていた移動計算の抜き出し?も出来てないし、とにかく気長にやっていこう〜と思ってますw
492 :
436:2009/01/29(木) 00:56:22 ID:0SSs3+bK
FPS表示とリフレッシュレート変更は出来たけど、高い周波数にするほどフレーム数が足りないまま安定しちゃう
30FPSぐらいだと問題ないけど、50、60と上げて行くと、なぜか5フレームほど足りなくなる;
そしてふれ幅も上下5フレームぐらいばらついて安定しない・・・う〜むコードが悪いんだろうなぁ
>>491 ありがとう〜
毎週火曜は歯医者に行ってるんですが、昨日は詰めた所が痛くてついぼんやりすごしてしまいました;
敵機のオプション(子機)を操作する関連をいろいろ(・∀・)
もう少し手を加えれば孫機を配置したりもできるようになるはず
目指せ超弾幕(・∀・)
for文をどっかからコピペしてきて使ってたら条件式を書き換えるのを忘れててアドレス異常の書き込み違反が出て一時間悩んだ(・∀・)敵を倒したら黄色いもにょもにょが湧いてきてちょっとしたホラー
>>492 自分はFPS関係理解できなくてコピペ気味なプログラムなので、
技術的コメントが困難なレベル(・・・orz)ですが、歯を大事にする事については賛成です!!!
>>494 で・・・出来上がってきてますね〜。
弾を目で数えるのはもう不可能・・・と思って右下見たら1000発超えてる!!!
今回からコテハン+トリップにしてみました〜(見分けやすくするためですw)
496 :
436:2009/01/30(金) 00:51:26 ID:Ubr3D3FD
FPSが61で安定する;ウェイトのかけ方がまだ悪いみたい
>>494 すごー;;;自分も早く動く部分を作りたい〜
>>495 SGGKですかw失ってわかる歯の大切さ・・・
>>495 重なってるから目で数えるのはむりぽ(・∀・)
5000発くらいまでなら安定して出せるけど避けれなくなる
SGGKてw
>>496 16ミリ秒待機とかにすると61.2FPSになる(・∀・)16.66666…で待機できるようにしないと…
うちのノートPC、ウインドウモード45fps安定で俺涙目
全画面にしたら60fpsになるんだけどな。
某弾幕シューも処理落ちでクリア余裕でした!
>>498 フレームスキップするのと処理落ち率をスコアのファイルに出力しておくようにしておこう(・∀・)
500 :
436:2009/01/31(土) 01:52:27 ID:pjcRan1J
どうしても16.3msになって、あと0.3ms引き伸ばせない・・・もう61Hzでいいかなぁ
キーコンフィグっぽい仕組みを作りました
しばらくSGGKで頑張ってみますw
こちらはまだ言語の文法理解が足りなくてつまづいてる感じです。
>474で言った「移動先を決める処理を関数みたいにして別ファイルにする」に挑戦中。
>489の手書きメモ見て考え中。
502 :
436:2009/02/01(日) 01:22:03 ID:d2a+qgnL
FPSもうヤダー
504 :
436:2009/02/02(月) 00:48:40 ID:XcNeBYjh
できた!ありがと〜
技術的な話は自分にはまだまだ無理な様ですが、いつかは分かるようになりたいです〜orz
昨日、移動先を決める処理を関数みたいにして別ファイルにしてみたつもりでコンパイルしてみたら、
「Warning: パブリックシンボル _chaseballmover がモジュール XXX\DEBUG\SOCCERGAME.OBJ と XXX\DEBUG\FIELDPLAYERCONTROL.OBJ の両方に定義されている」
という警告文がずらりと出てしまった・・・。
それからずっと考えていてフッと思ったのが、移動処理はクラス化したのでその宣言をヘッダファイルに書いていたけど、今回のは宣言と同時にオブジェクトも定義?したから、
クラス{}オブジェクト; が記述されているヘッダファイルを何箇所かのファイルの先頭にインクルードしてたからかな〜と思い始めた。
このオブジェクトがいわゆる「外部変数」になってるような感じで
それを複数箇所にインクルードした事で同じオブジェクトが外部変数として複数定義?されたという事になっていたとすれば、それが警告の原因かも???
今日はここまででちょっと試せそうにないです。
と言いつつちょっとだけ書いてみたけどダメだった。
技術だけじゃなく文法的な話もまだ無理みたいな感じです・・・orz
507 :
436:2009/02/03(火) 01:26:13 ID:U+3zAauW
アナログパッド入力出来る様になりました。コンフィグファイルから実数値も読み出せる様になりました
これによりFPSを0.001フレーム単位で指定という無駄な事が出来ますw
FPS関連で解ったんですが、変数型によって有効桁数が当然あって
それを考慮せずにあまりに桁が違う数同士を計算すると
情報落ちと言われる物が起こってしまうらしく。
自分の場合、システムカウント(整数)とμs(実数)と言う桁数が違いすぎる変数同士を計算した為
小数点以下の桁が消失して、細かいフレーム調整が出来なくなってました
自分と同じ様な初心者の方は注意です
計算の順序を考慮してコードを組んだらサックリ動きました。勉強になりました
その他過程で知った事
・時間でタイミングを取るよりフレームでタイミングを取る方がいいらしい
・floatよりdoubleの方が容量が大きく処理も早い
・動きの激しいゲームでは、キャラクター座標を内部で256倍とかして管理するといいらしい
>>505 オブジェクト指向の話はサッパリワカメです;広範囲に手を加えた後に出るエラーには変な汗が出ますw
オブ…ジェクト…?
変数はint、double、bool、LONGLONGってのを使ってるな(・∀・)
変数ごとの処理速度の差はあんまり考えたこと無かったなー。intにできるとこはintにしてるけど…
>>507 小数点以下の十進数を小数点以下の二進数で一対一で表現する事は出来ないような事を
どこかの本で読んだ記憶がありますが、あまり自信は無いですw
こうなってくるとコンピュータの勉強も必要なのかもしれませんが、今は手が届きそうに無い状況です・・・orz
>>508 自分も変数は、int、float、boolぐらいしか使ってなくて、オブジェクトを変数と言ったのは、
今参考にしてる14歳シリーズのC++わくわくゲームプログラミング教室wにたまた変数と書かれてあった為で、
これもまたあまり自信は無いです。
昨日のバグはなんとか取れた感じ。
今回の移動処理のヘッダファイルをあるヘッダファイルに書くと、そのヘッダファイルもまた別のヘッダファイルに書かれていたりするので
結果的にヘッダファイルがヘッダファイルを呼ぶような状況になっていて思わぬ場所にも書かれていたからかもしれない。
でも、ヘッダファイルの2重呼出し防止策、#ifndef、#define 〜#endifは書いてあったから、これが原因の自信はなくて、
結局、今回書いたヘッダファイルの中にあるクラス宣言と同時に定義したオブジェクトの変数?を必要としているcppファイルがあり、そのcppファイルの先頭だけに
今回作成したヘッダファイルをインクルードして、他にインクルードした所は全部消したら、エラーも警告も出なくなりました。
プログラムも長くなり、かなり危ないシーンがこれからも増えてきそうな予感w
510 :
436:2009/02/04(水) 00:56:29 ID:Da4U9lAm
ちょこっとだけ、コードの整頓と、マウス入力をつけました
>>508 調べたらfloatが遅かったのは昔の話で、最近ではあまり差は無く、環境の影響のが大きい様で。
FPUによってfloatの方が高速だったりするそうです
>>509 解消された様で良かったです〜
かろうじて解消できてる様な感じです〜w
抜き出した移動処理部分をメインループから呼び出せるようにしたつもりが動かず。
エラー20行出た。最初の数行はコンパイラの言ってる意味が分からなかったけど、
分かる所から先に直していったら、その意味不明なエラーもなぜか出てこなくなった。
しかし、プログラムを起動しても選手が動かなくなってしまった。エラーの出ないやっかいなバグ・・・orz
512 :
436:2009/02/05(木) 00:48:53 ID:xwepftsp
キー設定ファイルからボタン名を読み込んでキーコードに変換する物を作ってます
こちらは昨日から変化無しです〜。
移動処理部にprintfDxを書いてみたら何か適当な数字がずらーっと出てくるので
移動処理部に処理が移っているはずだけど選手は動かない。
という事で気分を変えて本を読む事に・・・。
514 :
436:2009/02/06(金) 01:05:54 ID:DkLm7FbZ
>>513 自分も今日は変化なし・・・じっくり構想を練っています
枠作ったりゲームシステム考えたりいろいろ
自機ショットのスムーズに曲がるホーミングレーザーを実装に向けていろいろ
エフェクトのクラスいじってたら古すぎワロタ
開発初期のまんまだぜ…8月か…?
自分もバグ取れたら、構想やゲームシステムを考えてみようかな〜と思ってます。
選手のx、y座標を計算するのに使っている数値をデバッガで見ようと思いついたもののネット見ても方法が分からず断念。
もう1つ気になったのが、式の中にある1フレームあたりの移動量を現す数値をコンストラクタという初期化用関数?で設定していた点。
これをやめて、その式をコンストラクタの外に書いたら動いた。
理由は勉強不足で分からないけど、とりあえずこれで進めてしまう予定。
実はまた別のバグが出たけど今日は時間切れ〜。
518 :
436:2009/02/07(土) 01:34:15 ID:EB28/pCl
やる気が激しく低迷中・・・みんな俺にかまわず先に行くんだ・・・!!
オーバーフローこわい
アイテムの初期化ミスったら音声ファイルハンドルぶっこわれたパネェ
>>518 だ・・・大丈夫!やる気が0にならない限りは大丈夫です〜。
>>519 「C言語 オーバーフロー」で検索してみましたが、む・・・難しそう・・・orz。
昨日の別のバグというのは、
1.Zキー押してないのに選手がマウスカーソルに向かっていく。
2.自分以外の選手全てがボールから離れていってしまう。
今日もあまりやれなくて未解決!!!
521 :
436:2009/02/08(日) 01:26:03 ID:q6Hviut/
もう一ヶ月経ったか、早いなぁ
>>520 どうも〜 作成は止まってますが、なんだかんだでずっと考え続けてはいます
>>520 正確にはオーバーフローじゃないかな?似たようなもんか。うちのは例えると
50個の配列変数をintで確保して、70回ループで初期化してしまいました。はみでた20回分はどこの変数を初期化したのでしょう☆
ってなった。画像や音声のハンドルを保存してるメモリ領域にはみ出てエラいことになったw
>>521 やる気が出ないときってあるよな〜
書き出したらキリのいいとこまでとまらなくなるがそこまでが遠い…
時間経つの早いですね〜。2月もあっという間かも・・・。
そういえば自分も画像データを読む時に配列変数1個ずれてプログラム書いてエラーになった経験がありますw
バグは>520の2.はなんとかクリア。
選手の座標決める式はおおざっぱに書くと、(次の座標)=(今の座標)+(1フレーム移動量)X(sinまたはcos)で、
その中のsin、cosを算出する式が別にあって、その中で(選手座標)−(ボール座標)としてたのが間違い。
その部分を(ボール座標)−(選手座標)にしたら直ったw
524 :
436:2009/02/09(月) 00:59:47 ID:Mr5/Oitn
ちょっと出来そうな案が浮かんだので、ポチポチとやってます
>>522 ありがと〜 ここに書き込む事で大分やる気をもらってます
>オーバーフロー
自分は文字列を上限超えて格納したら、以降コードを修正してもデバッグが起動不能に・・・w;
>520のバグ1.は未解決です。
>517で言った構想やゲームシステムは、どちらかと言えば「やる事リスト」を考える事になりそうな感じ。
週末までになんとかできれば・・・。
526 :
436:2009/02/10(火) 00:42:25 ID:CgwFXK0K
ずぅー っとキーコンフィグの仕組みをイジイジしてます
ゲームのプロセス優先度を変更して実行中のFPSのばらつきをほぼ0に(・∀・)
スカイプやってもエンコやっても処理落ちしない!けどフリーズしたらヤバそう
こちらは、「>520のバグ1.」未解決〜。(間違いなさそうな気がするけどそんなはずないだろうし・・・)
こんな時は14歳から・・・の本に目を通してみます。
529 :
436:2009/02/11(水) 00:27:47 ID:Up2cQUgT
今日も今日とてキーコンフィグ 今日も明日もキーコンフィグ
>>527 マルチコアならダイジョウブ!
>>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:2009/02/12(木) 00:40:35 ID:qdQhKDNX
まだまだキーコンフィグ
一応途中のテストでは動いたものの、見た目が悪いので書き直しと残りの書き足しで、あと一日かかりそう
532 :
名前は開発中のものです。:2009/02/12(木) 20:18:47 ID:3ETp66yJ
皆さん頑張ってますなあ。
僕も頑張らねば……
お互い頑張りましょ〜!
(>530の続き)
else{
と書いてあるところを
else if(選手ID != 最初){
としたら直った!!!
次は、やる事リスト作成またはもう少しプログラムを手直しするかのどちらかで行く予定です。
534 :
436:2009/02/13(金) 00:58:37 ID:Xaou+w4f
風邪引いたー最近ちょっと変だったからもしやと思ったけど・・・皆さんも気をつけて
まだテスト途中ですが、キーコンフィグ一応完成。アナログだろうがPOVだろうが何でもこいです
キーコンフィグ、気になってネットでちょっとだけ調べてみたらやっぱり難解。
もしかしてWindowsプログラミングかも?
自分もWindowsプログラミングにトライする準備勉強してみようかな〜。(まだ早いかもしれないけど)
以前、すぐに挫折した経験ありです・・・orz (それで今はDXライブラリ+主に14歳シリーズ書籍)
風邪の方は、とりあえずマスクを用意してきます〜。
「やる事リスト」はもう少し後にして、まずはボールのバグを直す事にしてみます。
536 :
436:2009/02/14(土) 00:35:45 ID:XMi119GB
あ〜何やってんだ自分; 「完成」したのはファイルからボタン名を読み込んだりキーコードに変換したり、各命令にボタンを割り当てる部分で
キーコンフィグ画面や設定を保存する処理などまだまだやる事沢山あります。誤解を招く書き込みしてすいません
今日はウィンドウのタゲが他に移って戻った時にFPSがおかしくなるのを修正
>>535 自分は基本DXライブラリのリファレンスとヘッダファイル?と標準関数の説明ページに書かれている事以外は使えません;
>>536 そ・・・そういえば、自分はDXライブラリを説明見てインストールしてしまったら、
もうその時の事を忘れてしまい、なんで動いてるのかを良く知らないで使っている状態になってます。・・・orz
(ボールのバグの原因?)
全選手とボールの当たり判定が「当たり」の時に選手のフラグ用メンバ変数をtrueにする。
「Zキー押し」と「フラグ=true」が同時に成立していたら、カウント変数を初期化(=30)し、フラグ=falseにして、
ボールを蹴る選手の移動方向と同方向に移動させる。
カウント変数を毎ループ1ずつ減らし、if(カウンタ>0){ボール移動処理}にしてるので、
カウント0になるとボールは止まる。
これで分かった問題点は・・・、
1.ボールに触れた時にZキーを押さずにボールから離れてもフラグがtrueのままになる。
だから以前4方向移動だった頃、ボールから離れてる時にZキーを押すとボールが動いたと思われる。
今はZキー移動なので、触れた瞬間にボールが蹴られてしまうし、
他選手がボールに自分より先に触れた時に自分がZキーで移動してたら、他選手のフラグ=trueになるので、
他選手もボールが蹴れてしまう。
こ・・・これを直すのは辛そうな感じ。
そのままにしておいて他の事やるかもですw
538 :
436:2009/02/15(日) 01:02:19 ID:INXhf2VE
コンフィグ画面を作ってます。やっぱり見た目が変化するとモチベーションが違いますね〜
自分も選手11人出したらモチベーション上がるかもです〜。(もうしばらく先になりそうな感じ)
ボールのバグについては、
アタリフラグを当たり判定でONして、ボールを蹴った直後にOFFしてるのがおかしいと思った。
これだとボールに触れても蹴ってない選手がいたら、その選手のアタリフラグはずっとONのままになってしまうから・・・。
という事で、当たり判定の関数内で選手がボールに触れたらON、離れたらOFFするようにしたみた。
そしてZキーは移動用にしてるので、「蹴る」をXキーにしてみた。
コンパイラは通ったけど、ボールに触ってる時にXキー押しても何故かボールは動かない。
原因不明〜。また日数掛かりそうな予感。(一日あたり少ししかやれないので・・・)
540 :
436:2009/02/16(月) 01:19:41 ID:/BiYzi6H
う〜むどうもうまい処理の仕方が浮かばないです。引き続きコンフィグ画面を作り中
バグ取れずです。・・・orz
if文の後に書いてあるボールの移動処理のブロックにprintfDx("%d",3);を書いても
何も表示されないので、if文の後のボール移動処理ブロックに処理が移ってない感じ。
543 :
436:2009/02/17(火) 02:43:28 ID:u6gSAOgi
>>542 うわああぁこんな便利な機能を隠し持っていたとは・・・!
今まで変数を全て画面に表示してチェックしてました
クラスのメンバを一気に見たりできるから超便利だぜ(・∀・)
>>542 ありがとうございます〜!画像も見てみました。
自分のはターボデバッガというのが入ってるのですが、何故かブレークポイントが最初の数行までしか設定できず、
その他いろいろ使いこなせない場面があり、ちょっと放置気味でした・・・orz
ネットで調べてもあまり情報が載っていない様なので、情報の多いデバッガを使えるコンパイラがあれば、それに乗り換えが必要かもしれません。
でも、もうしばらく頑張ってみます〜。
546 :
せいれい:2009/02/18(水) 00:48:38 ID:uhVOawfK
俺のコンパイラはVC++2008EEだ(・∀・)便利
547 :
436:2009/02/18(水) 01:08:38 ID:4Q2oRHHM
今日はサボってしまた。。。明日がんばります
自分も今日はあまりできませんでした。・・・orz
VC++2008EE、検討してみます。(今度の土日で試してみるかも)
ターボデバッガ、何故か画面右上の「HELP」をクリックしても
何も表示されないので以前から放置して諦めてたけど、偶然解決。
自分はデバッガ画面をかなり縦長に初期設定していてたらしく、
実はHELP画面はその一番下側に表示されていて普段は隠れている格好になっていて、
スクロールしない限り見ることができなかったのが原因。
でも、肝心のブレークポイントの問題解決に繋がる説明は見つからず・・・orz
やっぱり、VC++2008EEに切り替えてそっちのデバッガでも同じ問題が出るかを
確認した方が早く解決するかも・・・?
549 :
436:2009/02/19(木) 00:40:29 ID:+d/NyJF6
ゲーム内のウィンドウ単位で関数化してみれば管理が楽かも・・・と思い立ち、試しに組み立て中
>>548 自分もVC++2008EEです。トゥルースペースといい、無料で使っていいなんてマイクロソフトは太っ腹すねえ
550 :
せいれい: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
フハハハハハ
>>549 現在はボーランドC++5.5コンパイラとBCCデベロッパーを使用(14歳シリーズC++がこれを使っていた為)していますが、
土日といわず今からでもと思いVC++2008EEをインストール中。今日はインストールまでで終わりそうです。
>>550 回転そのものの公式の存在については今の自分では見つかりませんでした。
やっぱり距離とsin、cosで1点ずつ位置を計算するかな〜と思いますorz
552 :
436:2009/02/20(金) 00:15:20 ID:BeiHPfXO
矩形回転についていろいろ(・∀・)
拡張性を求めて試行錯誤
DXライブラリのサイトにある説明に従ってコンパイラを設定し、
プロジェクトの新規作成までで今日は終了。orz
土日前にここまでやっておいて良かったかもしれないけど、ややこしい〜。
556 :
436:2009/02/21(土) 01:09:18 ID:qlEwaizd
557 :
名前は開発中のものです。:2009/02/21(土) 23:36:37 ID:lLbQtoox
>>555 うぉ!弾の絵が短い状態から細長く変化するという事は何か技がありそうな感じ。
こちらはバグが25箇所も出て、現在お手上げ状態〜orz
ボーランドC++でやってた時はバグなかったのに・・・。
558 :
436:2009/02/22(日) 01:36:36 ID:LjZlw/rK
ボタンの入力系統ごとの処理をかきかき
十字キーを押すと左アナログからも数値が返ってくる・・・
連動してるなんてしらなんだ
>ボーランドC++でやってた時はバグなかったのに・・・。
それはバグっつーかコンパイラの仕様の違いでは……。
>>558、559
みなさん進んでますね〜。
こちらはバグが取れず当分の間足踏み状態が続きそうな予感です〜。
>>560 仕様が違うとコンパイラってこんなにも違うものなのかと痛感してます。
昨日のエラーは最後の3行、残りはワーニング(警告)。
エラー内容は、言葉忘れたけど、同じ定義が他にもされているという類のもの。
以前、staticメンバ変数は外部に実体の定義が必要らしいと知り、それをたまたまヘッダファイルの中で定義してたから、
そのヘッダファイルが何箇所かで呼ばれてるのがいけないんだろうと思い、
定義の部分をcppファイルに移したら、コンパイルが進み、「おっ!?」と思ったら
ウインドウが出た直後に英文だけのエラーメッセージウィンドウが表示されて停止。
ワーニングも71個に増えた。・・・orz
562 :
436:2009/02/23(月) 01:09:18 ID:6s8IHBJl
選択画面でのキーとパッド入力に対する挙動が出来た
今はマウスとホイールの分を組み立て中
>>561 コンパイラごとに書き方変えなくちゃ駄目って事ですか?
不便だー
>>562 ボーランドC++で通ったなら、VC++2008EEでもいけると思ったけどダメでした。
VC++2008EEの方が何故かチェック厳しい感じ。
VC++2008EEで結構書き直ししてしまったので、もう一度ボーランドC++で書いて動いていた時の状態から
違う考えの修正をしてみようとボーランドC++のソースを見たら何故かVC++2008EEで今まで書き直してきた内容と同じになっていた。
VC++2008EEのプロジェクト?へのソース組み込み方法が分からなかったので、ソースをプロジェクトファイルのツリー画面に
ドラッグドロップして操作してたのが原因らしい。どうりでプロジェクトファイルのフォルダを開いてもソースファイルが無いワケだ。
もう戻れない〜orz
関数内で使われてない変数があるだけでもVCは文句言ってくるしな。
GCCは気にしないでくれるのにw
565 :
436:2009/02/24(火) 01:55:47 ID:bo0/H7dJ
引き続きマウスの入力分をかきこき
>>563 あわわ;チェック厳しいのも場合によりますね
ユーザ側でゆるめられる設定とかあればいいんですが
関数に構造体ポインタの渡し方がよくわからない(・∀・)
というか構造体ポインタの宣言?がよくわkあああああああああ
構造体が配列になってる時はどうすればいいんだろう(・∀・)
/* 何がわからないのか知らんが! */
#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;
}
うぉぉ(・∀・)こんなに難解なのか…
もうちょっとがんばってみる
ともかくd
>>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])としても同じ。
(関数に配列渡してる訳じゃなく、ポインタを渡してる)
うん、確かに自分で言ってて難解な気がしてきた。俺は説明が下手だ。
このへんは構造体の話というより配列とポインタの話やね。
細かいこと気にせず動きゃいーんだの精神でがんがれ!
う、よく見返したら'\0'まで出力してんな。恥ずっ。
>>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 うおおおおおおおおおおおお!!!?コンパイル通ったwwwwwwwwwきちんと動いたSUGEEEEEEEEEEEEEEEEEEEEEE
できたうっひょおおおおおおおおおおおおおおおおおぴょおおおおおおおおおおお
某関数がシンプルになったぜええええええええええええええええええええええYEAAAAAAAAAAAAAAAA
ありがとう、ありがとうズゴック先生(;∀;)
てか->とか * とか考えなくても &つけりゃよかったのねorz
>>564-565 チェック厳しいですが、なんとかVC++2008EEでやってみようと思います。
ソース上書きしてしまって直前の内容には戻れなくなったしw
>>566-574 ポインタっていつ見てもややこしいですね〜。勉強してる時はなんとなく分かった感じになっても
しばらくして自分で書こうとするとまた分からなくなってしまってたりする・・・w
今日もコンパイラの使い方で足踏み状態。
既にあるソースをコンパイルに含める方法はわかったので、もう前のバージョンに上書きされる事は無くなった。
プロジェクトファイルのフォルダにソースをコピーしてから、「新しい項目の追加」の▼押して「既存項目の追加」で出来る。
処理がどこで止まっているかわからないので、画面右下の「呼び出し履歴」を表示させたいが、
デバッグでプログラムが止まった時に出るエラー画面でデバッグの「中止」を押すと、「呼び出し履歴」が消えてしまう。
これはエラー画面でデバッグの「再試行」を押し、次に出る画面で「中断」を押せば、「呼び出し履歴」が残る。
履歴は上からじゃなく下から上に向かっている事に気付くのに時間掛かった。
とりあえず、ゴールのデータを初期化する所で止まっているらしい。
ちなみにエラー画面の英文は、イテレータがどうのこうのという感じの内容でよく分からなかったけど、
たしかにそういうのを使っているので、その辺が原因かも?というところまで来てマス。
576 :
436:2009/02/25(水) 01:06:52 ID:ueY3gPVj
マウスとホイールの挙動も大体出来て、今はコンフィグ画面を組み立て中
バグ変化無し・・・。
一行ずつ実行させようとすると勝手にWinMain関数から始まり、内部の関数を呼ぶところで
「現在の場所のソースコードを記述できません」と表示され先に進まず。
それならばと思い、昨日問題があると思ったゴール関係の処理関数内部一行目にブレークポイントを設定し、デバッグ開始し、
ブレークポイントで止まったところからF11キーを押して一行ずつ実行させてみたら
いつの間にかエディタ画面内に「list」というタブが付いた画面が表示され、
その画面中身は見覚えのない理解不能なソースが書かれていて、何故か一行実行がこの画面に移ってしまっている・・・orz
ちなみにエラー文は、「Experssion:list iterator not dereferencable」
一応検索してみたけど、自分に分かりそうなのは見つからず・・・。
気持ちを切り替えた方がいいと思い、今日はここで終了。
リリースモードでやって、逆アセの画面みてるとかw
MOV AX,BXとかそういうんあった?
579 :
436:2009/02/26(木) 01:18:57 ID:F2EPEs+N
引き続きコンフィグ画面を〜
>>577 ひょっとしてiteratorを++とかやってたり
いや、ちがうなんだっけ
えーとstd::list.iterator itr とかしたとき何かができなかったような…
二次元上での物体の自由落下についていろいろ(・∀・)
既存の関数を利用してそれっぽいのなら作れそう
矩形の4点座標を計算する関数に便利機能をつけたら引数14個のアホみたいな関数になってしまった
>>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:2009/02/27(金) 00:36:41 ID:JFxOaYgu
まだまだコンフィグ画面
項目をオンマウスでアクティブ、から、オンマウス+クリックでアクティブ、に変更
たったそれだけの変更でもあちこち書き換えなきゃならない羽目に
仕様は予め細部まで熟考しとく事!>自分
>>585 なんだか自分も仕様について考えてみたくなってきました。w
>525の頃に言っていた「やる事リスト」の前に仕様決めた方がいいのかも・・・。
>>586 製作中は当たり判定表示した方が便利そうですね〜。(引数が15個に増えてる〜!)
自分もバグ取れたらちょっと考えてみたいです。
バグはまだ取れないけど、iteratorを使っている関数(選手、ボール、ゴールの初期化、
選手、ボール、ゴールの移動、当たり判定)の内、コンパイラで停止した関数がゴール関係だったので、
とりあえずゴールの初期化と移動の関数を呼び出す行に // をつけて注釈文にしたら、画面が表示された!
なので、ゴール関係関数と他の関数でのiteratorの使い方に違いが無いか見比べてみるつもり。
588 :
436:2009/02/28(土) 01:22:18 ID:BN0uPU4y
そう、コンフィグです、今日も
>>586 複雑そう・・・自分には無理だ;
>>587 おぉ復活しつつあるようで、ひとまずホッとしました
なんとかコンパイルできるようになりました。
初期化関数については、元々上手くいってる選手やボールの初期化関数では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:2009/03/01(日) 02:02:50 ID:fK/bT0En
>>589 お〜おめでとうございます 自分は停滞気味・・・
>>590 ありがとうございます〜。 今日はほとんど進みませんでした。orz
この数日のバグ取りの反動かもw
592 :
436:2009/03/02(月) 01:26:59 ID:yUGCkh1E
マウスオン+クリックで選択できる様に変更
もう3月!今年も残り10ヶ月を切ったぞーいそげいそげ
list<GoalData>::iterator it;
こ…これはいったい何をしているんだ…俺にはわからない…/(^o^)\
ゲームシステムについていろいろ(・∀・)
面白くするにはどうすればいいか、を考えてみる
クソゲーを観察してみるのも勉強になるみたいね
>>592 そういえばもう3月ですね〜、時間の流れが速すぎる〜。
>>593 C++で、配列みたいに複数のデータを管理できるコンテナクラスというのが標準でいろいろ用意されていて、
そのひとつにlistクラスというのがあり、そのlistクラスでGoalData型(←これは自分でプログラムの中で宣言して作った型)のデータを複数管理したいので、
どのGoalData型かを指し示す為にイテレータit(←配列変数の要素にアクセスするための添え字みたいなやつ)というものを宣言しますみたいな感じで自分は理解していますが、
自信はあまり無いです・・・orz
ボール動かないバグ取れないですね〜。
if(ボール蹴る時のキーが押されてる)&&(ボールと選手の当たり判定用フラグ変数==true)の条件部分が真になっていない感じ。
ボールと選手の当たり判定用フラグ変数が、当たり判定関数で当たり=1と成っていても
if文に来る直前でprintfDX()使って表示させて確認してみると何故か0になってる。
プログラム中では同じ変数名で書いていても中身は違うとなると
変数のスコープ(有効範囲みたいなやつ?)をよく分かっていなくてそれが原因なのかもしれないというのが思いついたけど
それを確かめる方法が無い・・・orz
596 :
436:2009/03/03(火) 01:13:26 ID:B6hdHZko
ウィンドウモード変更・表示倍率変更・フレームレート変更・FPS表示切替を選択できる様になりました
>>593 面白く・・・最大の問題すなぁ・・・
>>595 ありがとうございます〜。デバッグは機能が色々ある様なので少しずつ覚えていこうと思います。
キー入力の状態については、実は自分はまだよく理解できぬままプログラムやってます・・・orz
>>596 かなり順調にいっててうらやましいですー。
>>597 回転行列を当たり判定に使う・・・、む・・・難しそうな世界。
ボール動かないバグの原因なんとなく見えた。
フラグ用変数のスコープが違ってて名前は同じでもアドレスが異なっている別々の変数を
それぞれの関数内で操作してるのではないかと思ったけど、どうもそうではなさそう。
ボールが選手に当たっている状態を表すフラグの立て方に原因があったと思われる。
これを説明するには一週間分の書き込みスペースを使ってしまいそうな感じ。
599 :
436:2009/03/04(水) 01:23:23 ID:+kKOKlkp
フルスクリーンから復帰すると古い方の拡大率になってたのに気付いて修正
マウスで窓枠ドラッグした時の拡大率を取得出来る様にした
今になってもっとシンプルなインタフェイスを思いつく・・・あ〜全体的に作り直したい
>>595 勉強になります
>>598 一つの結果が出るまでのスパンというか下ごしらえが段々長く大変になってきました;
600 :
せいれい:2009/03/04(水) 21:55:43 ID:1TDttkKc
もうちょっと調整したらゲームシステム部分の作成に移れそう
そろそろ背景やファイル入出力もいじらねば(・∀・)
こちらは、まだまだバグ取り中〜。
昨日言っていたバグの原因は、プログラムをかなり略して書くと、
メインループ(){
選手.move();//選手の移動処理
ボール.move();//ボールの移動処理
ゴール.move();//ゴールの移動?処理
当たり判定();//それぞれのオブジェクトの当たり判定をここでまとめて行う
}
・・・となっていて、当たり判定関数の中では、
while(最後の選手まで繰り返す){
if( 選手とボールが当たっているか? ){
a->atari=true;// 選手のメンバ変数atariのフラグをONする。
b->atari=true;// ボールのメンバ変数atariのフラグをONする。
}
else{
a->atari=false;// 選手のメンバ変数atariのフラグをOFFする。
b->atari=false;// ボールのメンバ変数atariのフラグをOFFする。
}
ボールを蹴る処理は、メインループの「ボール.move();//ボールの移動処理」の中にあって、蹴れる条件は、
(Xキーが押されている)&&(ボールのatariフラグがONである)
なのに対し、今のプログラムでは、自分がコントロールできるのは一番目の選手だけなので、
選手をボールに接触させてatariフラグをONにしても当たり判定関数のwhile内で最後の選手まで
判定するので、最後の選手はボールに触れてないから、b->atari=falseになって、ボールのatariフラグは結局最後にはOFFにされてしまう。
その状態でメインループのボール移動関数に戻るので、いつまでたってもボールを蹴れる条件が成立しない・・・orz
何故else条件でボールのフラグを落とすのか、40文字以内で説明せよ(5点)
フラグ落とすのは選手だけでいいと思うんだが。そもそもボールのフラグもいらない。
ボール持ってる選手しか蹴る(移動の初期値を与える)ことができないのなら
ボール支配できたときにボール蹴る関数にでも飛ばせばいいと思うが、どうか。
603 :
436:2009/03/05(木) 00:50:31 ID:LR5dYdvr
ああああせりました;
窓枠ドラッグ時の拡大率を取得する為SetAlwaysRunFlag();をON-OFF多用してたら
なぜかSetAlwaysRunFlag();をOFFにするとデバッグに行く途中で止まり、
ON状態の一文を入れないと動かなくなり、とうとうそれを入れても入れなくても動かなくなり・・・
VCリインストールしたら今度はヘッダファイルを読まなくなり(パスは渡してるのに)、
レジストリからVC関連を全消去してリインストール、さっきようやくまともに動いたっぽい
SetAlwaysRunFlag();を乱用乱発してたのが悪かったのかなぁ
>>602 else条件でボールのフラグを落とすのは、(Xキー押し)&&(ボール接触フラグON)がボールを蹴れる条件なので、
選手がボールから離れている(else)時には、ボール接触フラグをOFFにする必要があった為。
今のプログラムでは、ボールに接触してるので蹴ろうとしても、ボールに接触していない選手がいたら、elseが成立してしまい
ボールの接触フラグをOFFされてしまうという問題がありました・・・。
確かに今思うとボールのフラグは必要無かった様です。
選手全てにボールに接触してるかどうかを表すフラグを持たせておいたのは、同時に複数の選手がボールを蹴る様な場合を考えてました。
同時蹴りの時にボールに接触してる複数の選手から一人を選ぶ仕組みが必要かと思いながら実装の案はまだ何もなし・・・。
バグの修正はもう少し検討中〜、今のボール移動関数は、選手のデータを引数に持っていないので、選手のフラグ変数を使えないのデス・・・orz
>>603 レジストリとか全然わからないので、自分もその関数には注意しておきます〜。
>同時に複数の選手がボールを蹴る様な場合を考えてました。
それは「蹴った」時の処理であって、
接触したかどうか判定する時点では関係ないんじゃないかな。
同時蹴りの優先度は確かに悩むところだね。
606 :
436:2009/03/06(金) 00:30:05 ID:SvQUccHR
拡大率取得する関数がすでにあったorz
拡大率変えるとSetMousePointが元のウィンドウの大きさ基準で動く為、
元の解像度を超える座標を指定出来ないorz
ので、新たに思い付いたインタフェース案はモロにその影響を受ける為、
すっぱりあきらめられたw
今は構造をもっとスッキリ出来ないかイジクリ中
>>604 今後は念の為C:とソースのバックアップを取る様にしました;
>それは「蹴った」時の処理であって、
>接触したかどうか判定する時点では関係ないんじゃないかな。
た・・・確かにそうです。
メインループ内での処理を移動、当たり判定に分けておいて、当たり判定内で
いろいろな組み合わせの当たり判定をあらかじめ行い、その結果を各種フラグ変数に記憶させておいて
移動関数でそのフラグ変数を参照するようにすれば、移動関数から当たり判定関数を呼ばなくても済み、
プログラムが整理できそうな気がしたけど、なかなか上手く行っていないです・・・orz
>>606 そういえば自分もバックアップ全然取っていないです。もしもハードディスクがクラッシュしたら・・・。(汗;)
やっと>539のバグがなんとか取れました。(もっと日数かかるかと思ってた)
このスレでやってたおかげでVC++2008EEに移れた影響も大きかった。
ボール移動関数に選手のオブジェクトのアドレスを渡して、選手のメンバ変数の中から
ボールとの当たり判定用フラグにアクセスして、(Xキー押し)&&(ボールとの当たり判定用フラグON)が真なら
ボール移動処理に移る様にするとOK!
608 :
436:2009/03/07(土) 02:38:02 ID:ryJcMnzA
フォントを選択させるのが面倒で同梱しようと思い立つも、ライセンスがややこしいので
何でもありのとにかくゆるめでフリーの物を探してネットうろうろ
こちらは停滞・・・。
選手の数を増やしてみようかな〜と思ってみただけ orz
610 :
せいれい:2009/03/08(日) 01:17:11 ID:7fa9GmvZ
キャラのドット絵作成中(・∀・)
128×128の大きめサイズで練習
611 :
436:2009/03/08(日) 01:47:51 ID:vm6UceMj
画像化はOKでも、同梱してテキスト表示とかまでOKとなると限られちゃう@フォント
デフォルト+選択制が無難だすかなぁ
画像化だけでもレアなのに同梱含めたらほとんどナイでしょ。
選手の数を増やす場合、今の画面では小さ過ぎる気がしてきた。
フィールドの画面を大きく書き直す必要があるかもと思い・・・、思っただけ orz
次の土日までになんとか調子を戻していきたい・・・。
614 :
436:2009/03/09(月) 01:00:58 ID:xP45InoQ
フォント選択用のポップアップとスクロールバーを組み立て中
>>612 無いですねえ〜。許諾契約料20万とかw
615 :
せいれい:2009/03/09(月) 01:33:24 ID:qEgNskJk
ドット難しい(・∀・)
作業を今の時点で区切り、フォルダ丸ごとコピーしてフオルダの名前を変更。
フォルダ内のプロジェクトファイル?とソリューションファイル?の名前も変更。
ソリューションファイルをダブルクリックするとコンパイラ左側ツリーに出るプロジェクトファイル名が
何故か変更されてなかったので、そのツリー画面上で名前変更・・・orz
フォルダ内で古い名前の付いたファイルを全て削除してから、リビルドしてデバッグしたら一応動いたので
今後これで作業を進めていくつもりだけど、確信持って設定移動してる訳でないので、なんとなく不安な感じw
「今後の作業の為にバックアップ取ってバージョンアップ!」と書けば一行で済んだのにと赤面(汗; ・・・orz
618 :
436:2009/03/10(火) 01:02:21 ID:FeRMaDcm
フォントリストを表示させスクロールまで出来た
今は選択出来る仕組みを組み込み中
キャラを細かくアニメーションさせるための仕組みをいろいろ(・∀・)
行動との同期も取らないといけない(・∀・)
今使っているフィールド画像データの表示を座標(0,0)から(-320,-240)に変えて試しにコンパイルしてみた。
すると、フィールドの右側下半分が画面の左上半分の位置に表示されてそれ以外の範囲は黒塗り状態になった。
もしかすると画面よりも大きいフィールドを用意すれば、それをスクロールさせる事ができるのかもしれない・・・と思ったところで終了。
621 :
436:2009/03/11(水) 01:16:16 ID:4vECasPK
選択出来る様に出来た
後は十字キー入力での連動スクロールと先頭<->末尾のワープ表示でフォント関係は完成かな〜
こ・・・こちらは、ちょっと大きめのフィールドを作成したらサイズが5MB!
このフィールド画像データでもコンパイルできたけど、気のせいかボールの速度が落ちた感じ・・・。
623 :
せいれい:2009/03/12(木) 00:47:04 ID:Rw3/tWDK
>>622 画面に表示されていない部分も描画はされているからかな(・∀・)表示はされないけど
小さいマップを敷き詰めてスクロールしたときに画面外のマップは描画しないよいにしたらいいかな(・∀・)RPGチックに
>>622 ちょっと大きめってどれくらい? 5メガつったらかなり大きい気がするんだけど。
256色BMPとかにしてみてる?
よーっぽどでかいフィールドなら
>>623の言われてるように
マップチップ方式にするって方がいいけど、
画面4画面分(1280*960)を1枚程度なら普通に動くと思うんだけど。
625 :
436:2009/03/12(木) 01:08:51 ID:m9evrlXs
引き続きキー入力の処理
キャストのタイミングが悪くて結果が微妙にずれていたのがてこずった;
全部描画してその一部を表示しようと思ってたけどちょっと遅い感じがするので、
マップ敷き詰め方式も調べてみます。アルゴリズムがまだイメージできていないのでかなり日数掛かると思います〜。
昨日の画像は、横3200、縦1600、Windowsシステムパレット、bmpファイルです。
選手が縦横32だから、このぐらいのフィールドが必要かと思いました・・・orz
627 :
436:2009/03/13(金) 01:09:32 ID:cvveg6UM
キー入力の分書き終え、マウスホイールも効く様にして、
スクロールバーのスライダー以外をクリックで1画面分スクロールするのも付け足し
>>626 でかっw
>選手が縦横32だから、このぐらいのフィールドが必要かと思いました・・・orz
走力とかキック力とかも現実に合わせるつもりですかw
自機関係の処理の構造をいじる(・∀・)今のままじゃ不便すぎる
>>626 でけぇwwww
ディスプレイの解像度をはるかに超えるサイズwww
>>627 自分はスクロールでしばらくの間悩む事になりそうです・・・。
>>628 団子サッカー防止のために現実に合わせてみたいな〜という気持ちはあります。
>>629,630
自分も早くソースを整理できるようになりたいです〜。
マップ敷き詰め方式がもしもうまく出来たら、このサイズのまま進めてしまうかもしれませんw
マップ敷き詰め方式、アルゴリズム考えるために紙に書いてみたりしたけど、さっぱり思いつかない・・・orz
でも、目標を変えても結局は画面のスクロールについて考える時がくるのだから、もう少し考えてみるつもり。
「スクロール」なんて考えるからややこしくなるんですよ。
「フィールドがあって、その中を選手達が動き回ってる」 ……ここまでは今まで作られていたのと同じでしょう?
ただその表示する部分が「フィールドの一部分だけ」なだけ。
いわば「カメラの位置」を動かすだけで見た目はスクロールしてるようになるわけです。
633 :
436:2009/03/14(土) 01:09:22 ID:DIgtrbyp
PageUp/Down、End/Homeボタンも効くようにした
今はキーコンフィグ入力受付処理をかきこき
自機いじるついでにアニメーションのこともいろいろ(・∀・)
三次元構造体配列で何とかなる気がしないでもないけど未完成
635 :
せいれい:2009/03/14(土) 20:22:51 ID:0CsxrsDs
問題点の解決法発見(・∀・)あとは実装するのみ
>>632 確かに「マップ敷き詰め方式」と比べると「カメラの位置を動かす」の方が分かりやすそうな気がする。
ここは臨機応変に考えてまずは「カメラの位置を動かす」に挑戦して、出来なかったら「マップ敷き詰め方式」で考えて見ます〜。
じ・・・順調目指してますが、自分にはプログラムがあまりにも難しすぎる〜。
とりあえずいつもと同じで1日の作業は短いので・・・orz、今日はフィールドを見直してみた。
選手は32x32ドットなので、高さ32dotを身長200cmで換算する事にした。
サッカー競技場のフィールドについてネットで調べたら、縦横にある程度の許容範囲があり、
ワールドカップでは縦68m横105mなので、これで計算すると縦1088ドット、横1680ドットになる。
「マップ敷き詰め方式」で考える可能性も考慮し、32x32ドットで区切りよくなるようにしたら、縦1088ドット、横1696ドット。
これをmに戻すと縦68m横106mなので、そんなに誤差も目立たないので、縦1088ドット、横1696ドットでフィールドを書くことに決定!
縦1600横3200からかなり縮小した感じ。
>確かに「マップ敷き詰め方式」と比べると「カメラの位置を動かす」の方が分かりやすそうな気がする。
いや、マップ敷き詰め方式ってのは、「カメラの位置うんぬん」とは別の話ですから比べるようなものじゃないですよ。
「マップ敷き詰め方式」ってのは要するにメモリ消費を抑える為の手段でして
でっかい絵をどーんと置くか、ちっちゃいパズルを並べるかの違い。
「カメラの位置うんぬん」は、その絵のどこを表示するか、という考え方だから「マップ敷き詰め方式」の場合にも使います。
これだけじゃなんなので、簡単に解説します。
フィールドの一番左上の座標を ( 0,0 )だとして、選手が立ってる座標が、(500,400)だとします。
カメラの位置(左上の座標)がフィールドの一番左上(0,0)だとすると、
フィールド画像の表示位置は ( 0, 0) 、選手の表示位置は (500,400) ですよね?
たとえばカメラの位置を右下にずらして (100,100)に動かすと、フィールド画像や選手の表示位置は反対方向にずれていきます。
つまりフィールド画像の表示位置は (-100,-100) になり、選手の表示位置は( 500-100,400-100) で ( 400,300) になります。
選手の座標が ( px , py ) で、カメラの位置が( cx , cy ) なら、
フィールド画像の表示位置は( -cx , -cy ) で、選手の表示位置は ( px - cx , py - cy ) って事です。
あくまで表示する時にだけ座標計算するってだけで、それ以外は
1696*1088のフィールド上で選手を好きに動かせばいいって事です。
<637の続き>
で、たとえば画面の大きさを 640*480 とするならば、画像の中心座標は ( 320,240 ) ですよね。
選手が立ってる位置が (500,400) だとして、その選手を画面の中心に置きたいのなら、
カメラの位置は ( 500 - 320 , 400 - 240 ) で ( 180 , 160 ) って事になります。
(ただし、これは選手の大きさを考慮に入れてません)
つまり、画面の中心に置きたい選手の座標が ( px , py ) で、カメラの位置が( cx , cy ) ならば、
cx = px - 320
cy = py - 240
と、するようにしたらいいわけですね。
フィールド外を表示したくないなら、カメラの座標( cx , cy ) が
( 0 , 0 ) 〜 ( 1696 - 640 , 1088 - 480 ) の範囲をはみ出さないようにすればいいだけです。
639 :
436:2009/03/15(日) 01:23:25 ID:PMo+0xWl
フォントのプレビューを兼ねたヘルプウィンドウを付けた
DrawStringで復改が使えないとはしらなんだ
>>637,638
詳細な説明、ありがとうございます。「マップ敷き詰め方式」が別物の件もわかりました〜。
実装頑張ってみます!
今日はフィールドに縦線とセンターサークル書いて終了。(画像ツールがものすごく苦手で時間かかる・・・orz)
とりあえずフィールドの作りこみはこれ以上やらずにここまででプログラムに移るつもり。
DXライブラリのリファレンスページで使えそうな関数が無いか探し始めたところで終了。
一日10分(0分の日もあるかもorz)から1時間位の作業時間でやってるので長期戦・・・。
641 :
436:2009/03/16(月) 01:22:11 ID:TkalS2E8
フォントハンドル数が上限40とはしらなんだ〜
>>641 そういえば自分もDXライブラリでグラフィク関係関数にグラフィックハンドルというのが出てくるけど、
もしも上限が余裕なかったとしたらサッカゲームお手上げな予感です〜。
DXライブラリのリファレンス見たところ、使えそうな関数がなさそうな感じ。
まだ調べ方が十分じゃない所為かもしれないので、今日はとりあえず後回し。
その代わり、プログラムのフィールドが今までは単にデータをロードして表示してただけなのを
選手、ボール、ゴールと同様にクラス化?(←自信なしw)した。
エラー18個も出て危ないところだったが、一応動いた。今日はここまで!
643 :
436:2009/03/17(火) 00:55:37 ID:baRscC9v
フォントサイズの設定とプレビューを付けた
最近眠くてしょうがない
ぽちぽちドット打ち(・∀・)
画像を本気で用意しようとするととんでもなく時間かかるなぁ
今気づいた
杖を持たせてる手が逆だ\(^o^)/オワタ
>>643 自分も夜12時に寝ていても眠いですorz
>>644、645
フィールド書くだけで1時間以上掛かったので、同じくドット絵苦手です。
座標指定で線引けないので、マウスが震えないように直線引いたりしてますw
ボール、選手、ゴール、フィールドのクラスにカメラ座標cx、cyをメンバ変数として追加。
ボールの位置を参考に画面を動かしたいので、それぞれの移動用メンバ関数にボールクラスのオブジェクトのアドレスを引数として取るような変更を加えた。
DXライブラリに使えそうな関数見つけたけど、上手く行かず・・・orz
今日はここまでで終了〜!
647 :
436:2009/03/18(水) 01:20:16 ID:avggRhEo
今日はサボり気味;内部を整理しただけです
保存し忘れたまま再起動しちゃった
______
| 樹海 | ヒャッホー
. ̄.|| ̄ ┗(^o^ )┓ 三
|| ┏┗ 三
>>647 同じくちょっと今日は進みませんでした〜orz
>>648 そ・・・それは災難ですね〜。ハードディスククラッシュみたいな最悪状態じゃなくて良かったと思ってみるとか・・・(汗;
進まなかったので、昨日の上手く行かなかった関数の話。
GHandle = MakeGraph( 640 , 480 ) ; //表示画面と同じ大きさの空のグラフィックハンドルを作成
GetDrawScreenGraph( -1600 , -800 , -961 , -321, GHandle ) ;//表示画面外の画面データを切り抜き、前の命令で作ったグラフィックハンドルGHandleに渡す。
DrawGraph( 0, 0, GHandle, false) ;//表示画面に表示させる。
結果は背景が真っ黒になっただけ・・・orz
なんでこんなことしてみようと思ったかと言うと、座標の変換?みたいな事をしないで見たい画面の部分を切り抜いて直接表示画面に持ってこれないかなーと思った為。
とりあえずこのやり方は無理と分かったので、画面に表示する時に指定する座標を表示用に計算しなおす方法に挑戦する予定。
650 :
436:2009/03/19(木) 01:12:38 ID:oZOFCOMI
仕様を考え中ったら考え中
>>648 :( ゚Д゚ ll|):
>>649 >座標の変換?みたいな事をしないで見たい画面の部分を切り抜いて直接表示画面に持ってこれないかなーと思った為。
いちいちそんな事してたら無駄に負荷がかかると思いますw
ちなみにその「見たい部分のみ抜き出す」って考え方が、例の「マップ敷き詰め方式」の根本です。
つまり「いちいち切り抜く」のではなく、あらかじめ細かく切りきざんであるのを敷き詰めて並べておいて、
そのうちの「見たい部分」のみを抜き出すわけですね。
>>650 仕様書、やる事リスト、自分はまだどちらも手を付けていませんでした・・・orz
>>651 >つまり「いちいち切り抜く」のではなく、あらかじめ細かく切りきざんであるのを敷き詰めて並べておいて、
>そのうちの「見たい部分」のみを抜き出すわけですね。
な・・・なるほど!自分は無意識に「マップ敷き詰め方式」をやろうとしてしまっていたワケですね。
明日こそは「カメラの位置を動かす」方式に挑戦してみようと思います。
今日はダメでした。現実の義務に時間を割かなければならない状況になってきてて・・・、言い訳といえば言い訳なんですが、まぁ少しずつやっていこうと思います〜。
653 :
436:2009/03/20(金) 01:04:11 ID:U+nXWAc2
一文字ごとに表示する+設定で表示スピードを変える物を組み立て中です
フィールドだけがボールと反対方向に動くようになったけど変な感じ。
フィールド画像の左上原点をボールの移動距離と反対方向に動かしてフィールド画像を毎ループ(フレーム?)毎に描画する時に
フィールドの端が表示画面の端に来たらそれ以上動かないように条件if文を使ったが、フィールドの端まで来ないのにフィールドが動かなくなる。
もしかしてフィールドのデータが読み込まれた時に一部分カットされてるのではと思い、DXライブラリで使えそうな関数を探し、フィールドのデータを読み込んだ直後に
int SizeX , SizeY;
GetGraphSize( gh , &SizeX , &SizeY ) ;
printfDx("%d",SizeX);
printfDx("%d",SizeY);
の命令を入れて、読み込んだ画像のサイズを見たら問題なさそう。
条件文をはずして動かしてみたら、フィールドの端が出てきた・・・orz
どうやら条件文の考え方が間違ってる様なので考え中〜。
655 :
436:2009/03/21(土) 01:18:21 ID:Nd/MqJBa
一文字ごと表示+スピード設定が出来るようになった
文字のサイズ変更で大きくした際に、メッセージ枠をはみ出した分を自動で復改する様にした
今はエスケープシーケンスの復改の代わりになる物を組み立て中
>>654 「フィールドをボールと反対方向に動かす」という考え方は応用が利きにくいと思うので止めた方がいいかも。
あくまで「カメラ位置」を考えてください。
そしてその「カメラ」もキャラのひとつ(画面全体分――つまり640*480の大きさのキャラ)と考えてください。
ボールが常に「画面の中心」にくるというのなら、
カメラの位置はボールの位置から(-320,-240)の場所です。
ただし、そのずらした結果が、マイナスになったら強制的に0にしてしまえばはみ出す事はありません。
X座標がマイナスになったらX座標のみ0に、
Y座標がマイナスになったらY座標のみ0に。
もちろんこれは上側と左側の考えで、右側と下側は別です。
>>655 文字処理関係は考えなければならない事が沢山ありそうで自分も将来サッカーゲームの制作がうまく進んだら?文字処理トライすることになった時に参考にしてみます〜。
>>656 >あくまで「カメラ位置」を考えてください。
>そしてその「カメラ」もキャラのひとつ(画面全体分――つまり640*480の大きさのキャラ)と考えてください。
まだ考え中で、上記アドバイスと意図が合ってるか自信が無く、カメラのクラスを作ってなんとか目的を実現できないかと思ってるところです。
昨日までやろうとしていた方法は、フィールドサイズ1088X1696の紙を2枚重ねて、
上の紙には中央に640X480の穴を開けて固定して、2枚目の紙には毎フレームごとにフィールド、選手、ボール、ゴールが描画され、
プレイの最中動いているボールが1枚目の紙の中央の穴の真ん中に見えるように下の2枚目の紙をぐりぐり動かす、つまり、
下の2枚目の左上の座標がボールの動きと反対になるように更新し続ける感じのものでした。
本当はカメラの位置(座標)がボールの動きに付いていくように変化していく方がいいけど、
DXライブラリで表示画面よりも大きなグラフィックの任意の部分を指定して表示させる関数が見つからなかったのが理由なんですが、
その後DXライブラリのリファレンスをもう一度探して、
DrawRectGraph グラフィックの指定矩形部分のみを描画
を使えば、フィールドの左上座標を動かさなくても任意の部分を抜き出して表示できそうなので、
選手、ボール、ゴールをカメラのクラスの中で例えばカメラが、ある任意の座標にあったとして、
その時見えているのは、どのオブジェクトかを調べて、調べた時点ではオブジェクトの座標は2枚目の紙の座標(0,0)−(1088、1696)なのに対し、
たとえカメラの位置の座標が変化していてもカメラの画面内にオブジェクトを描画するときはあくまでも(0,0)−(640、480)なので、
この座標に変換してくれるようなしくみをカメラのクラスにもたせられれば、なんとかなるかもと妄想して終了。
実装はどうすればよいものかまだ見当が付かず、危険信号な状態です〜。
658 :
436:2009/03/22(日) 02:10:13 ID:B7hTCU6u
復改出来る様になった。文字スピード設定のプレビューを付けた
今はBGMの音量設定を考え中
>>657 よくわからないのだけど、ウィンドウのサイズは640*480ではないの?
もしそうならわざわざ切り抜いて表示する必要があるのかどうか。
>>659 フィールドがウィンドウサイズより大きい場合にウィンドウの外にあって見えないフィールドの部分を表示させる方法として、
1.フィールドの原点座標を移動させて、見せたい部分がウィンドウの位置に来るようにする。
2.フィールドの原点は移動させないで、表示させたい範囲(640x480)を指定してウィンドウのある位置に持ってくる(表示させる)
を思いついたのですが、たぶん2.の方がアドバイスに近いと思うし、自分も2の方が直感的かもしれないような感じがしたのが理由です。
今日はとりあえず準備として選手の移動関数内にある選手座標の計算部分と描画部分を分離して別々の関数にしようとしたけど、なんだか失敗。
14歳シリーズがかろうじて分かるかどうかなレベルなので1から自分で書こうとすると結構ハマる。早くても1ヶ月位は掛かると予想してます。
661 :
436:2009/03/23(月) 01:37:29 ID:i8724I4G
構造を整理中
662 :
せいれい:2009/03/23(月) 02:45:14 ID:OY/0+Xwu
主人公の服装がはっきり決まっていなかったので考える(・∀・)絵描き練習も
敵機のオプション呼出&操作関連の不具合修正中(・∀・)
親機が生存していて子機が破壊された時、親機を破壊するか
親機が破壊されて子機だけになった場合、子機を破壊するか
親機が破壊された場合、子機及び孫機を破壊するか
子機が破壊された時、孫機を破壊するか
孫機が破壊された場合、その孫機の親機を破壊するか、また上の親機に影響がうんたら
柔軟な対応ができるようにいろいろ(・∀・)
す・・・進んでますね〜。こちらもなんとか1ヶ月でスクロール?というかカメラ移動の実装を終わらせたいです〜。
昨日の作業はちょっと中断。画面があまりに遅いので調べたら、毎フレーム呼ばれるmove関数内でフィールド画像をロードすると同時にグラフィックハンドルを設定し、
そのグラフィックハンドルを元にフィールドを描画してた。load関数で1回だけやればいい画像データのロードを毎フレーム毎にやってたから遅くなったと思われる。
それを直したら今度は背景が真っ黒になった。ソースをよ〜く見てみたら、load関数内でグラフィックハンドルをフィールドオブジェクトの中にあるグラフィックハンドル記憶用のメンバ変数にインプットしてたのに対し、
その次の初期化用init関数内でいったんフィールドオブジェクトをクリアして新しい初期値を入れるようにしていたのでグラフィックハンドルが消えてしまってたのが理由だと分かった。
では何故今までは問題無かったかというと、load関数内でグラフィックハンドルはパラパラアニメ用のanimedrawクラスのオブジェクトにあらかじめインプットしてあって、このanimedrawオブジェクトのアドレスを
init関数で渡す仕様になってたのでload関数内で設定したグラフィックハンドルが失われなかったというワケ。
フィールド画像は一枚しかなかったのでanimedrawクラスのオブジェクト使うの面倒だからやめたのが原因!
また長文やってしまった・・・orz
明日は面倒がってたanimedrawクラスの中身を復習して、これを使うようにする予定〜!w
665 :
436:2009/03/24(火) 01:33:48 ID:jDJLGX1a
自作関数を使いまわしやすい様に全体的に書き加え
レーザーを出しまくって負荷テスト(・∀・)CPU:Celeron420_1.6Ghz、GPU:Geforce8400Gs
180〜240本程度が進行に支障が出ないレベルっぽい(・∀・)てか避けれん
重いのは当たり判定の処理部分。改善の余地アリ
>>667 レーザーで囲まれた範囲内で弾を避けるのは確かに難易度高そう〜!
こちらはanimedrawクラスの中身を復習。14歳シリーズC++本の内容ほとんどそのままブラックボックス化して使っていたので忘れてたw
animedrawクラスのメンバ関数にDrawRectGraphを使えるタイプを追加したいけど、まだ出来ず・・・orz
明日こそは・・・。
669 :
436:2009/03/25(水) 01:00:26 ID:Jg8PCKop
音量調節のスライダーを組み立て中
非アクティブでも鳴り続ける音をどうすべか・・・
>>667 綺麗だな〜
animedrawクラスのメンバ関数にDrawRectGraphを使えるタイプを追加は出来た感じ。
DrawGraphを使ってる関数をコピペして、内部のDrawGraphをDrawRectGraphに置き換え、増えた引数をそのまま書き写すしか方法が思いつかなかった。
まだ宣言と定義をしただけでメインループに組み込んで無いので、画面の背景は真っ黒・・・orz
671 :
436:2009/03/26(木) 01:33:31 ID:YmOeMxyW
仕様考えてて作業進まず・・・
風邪引いてダウン/(^o^)\
>>671 仕様どうしようかと気にしつつ自分はまだやってないです・・・orz。
>>672 こちらも鼻の調子がイマイチで花粉なのか風邪なのか微妙な感じw
昨日の関数、なんとか組み込めた感じ。最初はvectorがどうのこうのというエラーが出たけど、
load関数でグラフィックハンドルを取り、それをinit関数でインプットする部分が他のオブジェクトでどの様に書いていたかを見比べて、
違う所を直したら動いた。コピペで直って運が良かったw。
これで表示画面より大きくて見えない部分の範囲を指定して表示画面に持ってこれる様になったので、
範囲を指定する引数を変数にして、その変数をどう決めるかを考えれば、カメラ移動が出来るかもしれない。
674 :
436:2009/03/26(木) 23:38:07 ID:YmOeMxyW
>>673 どうもスッキリしないので、思い切って全部書き直す事にしました!
>>672 油断すると夜はまだまだ冷え込みますよね
こちらもかなり書き直しになりそうです。今日は停滞・・・orz
とりあえずやろうとしてるのは、
現状のプログラムでは、各オブジェクト(選手、ボール、ゴール、フィールド)それぞれにmove関数があって、
move関数内でループ毎に座標計算と描画を行い、その後atarihantei関数で各オブジェクト同士の当たり判定してるのを
新たにカメラのクラスを作り、メンバ関数にはmove関数とview関数を用意し、
カメラオブジェクトのmove関数では座標計算のみ行い、view関数では画面に映る対象となる全てのオブジェクトの座標を引数に取り、
カメラ描画用に座標を変換し描画する様に改造する事を考えてます。
そのために今までのmove関数から描画処理部分を取り除く必要があるので時間掛かりそうな予感。
とりあえず、これが次のやる事メモみたいな感じw
676 :
436:2009/03/28(土) 02:19:59 ID:yLCMKlEA
調整しつつ復元〜
何も進まなかったのでどうしようかと思ったけど、とりあえず書き込み・・・orz
考えが整理できないのでフィールドの枠とカメラの枠をノートに書いて
座標をどの様に計算してやればよいか整理してからやってみる予定。
絵描き練習がてら主人公の服装をうんたら(・∀・)
人体デッサンムズカシ
いよいよアニメ化ですね!
こちらは生存報告・・・orz
一応ノートに書いて頭の中身を整理しようとしたものの、
選手の移動関数については何種類かパターンを選べるようにする方法を組み込んであって、
そういう場合、座標計算と描画の処理をどうやって分離するかが思いつかず、進み具合というか制作の動きが鈍くなってマスw
今日も極めて短時間作業。
まずはcameraクラスを宣言するための中身が空のcamera.hを作りvc++2008に認識させようとしたけど、それをやるだけで時間掛かった。
ある程度の使い方ぐらいは本なりホームページで調べてから作業した方が結局早いかもしれないけど、今は我慢。今日はこれだけw
きちんとした設計法や手順を身につけていないので、まずは最低限なところから実装する作戦に変更。
cameraクラス宣言、メンバ関数move、viewの宣言と定義、move関数ではwasdキーで上下左右にカメラを動かし、
view関数では座標変換をまだやらないで、今まで作った各オブジェクトに付いているdraw処理をcameraクラスのview関数に集め、そのまま表示させる。
ここまでを目標にしてみるつもり。
>>679 いやいやw
立ち絵とかドット絵の元ってことで設定資料的な絵がいるのだ(・∀・)
>>681 なるほどw
こちらは絵が全く描けないのでうらやましいです〜。
今日も短時間。camera.hをcameradata.hに名前変更し、中身を記述して終了。
敵ショットのway数を指定するとき 360/nWAY で余りが出る時弾の間隔がおかしくなるバグ修正(・∀・)
なるほどね、計算に用いる変数にint型があったら勝手に整数に丸められるのね
コンパイルする時に
warning C4244: '初期化中' : 'float' から 'int' への変換です。データが失われる可能性があります。
という警告が10箇所程残ったままなので自分のプログラムも何かあるかも・・・orz
短時間作業〜。cameradata.hはメンバ変数のみのクラスCameraDataを宣言と定義しただけなのでcppファイルは無しで終了。
このCameraDataクラスで作成したオブジェクトcameraをメンバ変数に持つCameraConrolクラスの中にメンバ関数としてmoveとviewを作り、
オブジェクトcameraの中身(x,y座標とか)を色々操作する感じ。まず宣言が必要なので、cameracontrol.hを考え中〜。
floatは不動小数点以下含む
intは(-入れて)整数
あと桁数が違うので確認を
>>685 ありがとうございます〜。プログラムの警告が出ていた行をざ〜っと見てみました。
ほとんどが選手の足元の当たり判定の四角範囲の上角と下角の座標を計算する為の部分で
int=float+(int-int)/2 見たいな式ばかりでたぶんfloatの小数点以下がintにインプットする時に消えるという意味だと思われます。影響は無かった感じ。
cameracontrol.hの中でCameraConrolクラスの宣言終了。今度はcameracontrol.cppの中でCameraConrolクラスに入ってるメンバ関数moveとviewの定義を書き始めるところ。
>>686 そういうのは一応キャストしといた方がいいと思うよ
警告もなくなるし、見た目の意味も分かりやすいし
全部floatにすればいいかと思ったけど、時間が掛かりそうなのでキャストのやり方を調べてそれで対応する方にしました。
型だけ書くと下の様な感じで警告が消えました〜。
int=(int)float+(int-int)/2
cameracontrol.cppが出来たのでコンパイルするとエラーが150個程発生。
ヘッダファイルの入れ忘れ、アロー演算子とドット演算子の使い分けミス、名前の間違い、引数の取り方の間違いが原因で
コンパイルは通る様になったけど、何故か背景が真っ黒・・・orz
>676
も・・・もしかしてアクセス規制でしょうか・・・。
背景真っ黒のバグ取れず・・・orz
明日休みなのでもう少し粘ってみたけど、さすがに無理だった。(寝ますw)
690 :
436:2009/04/04(土) 01:11:37 ID:a3c5eCH1
規制に巻き込まれたので、ここぞとばかり制作サボってCの勉強をしてました
関数ポインタに衝撃!関数を変数の様に扱えて、関数に引数として渡したり出来るなんて面白いな〜
691 :
436:2009/04/04(土) 01:13:56 ID:a3c5eCH1
>>689 リロードしてなかったwすいません、携帯は打つの遅くて億劫なんで・・・
>>690,691
規制解除されて良かったですね〜。
関数ポインタ、ネットでどんなのか見てみました。む・・・難しい。
自分の本は初級用で古かったからなのか関数ポインタ出て無かったし・・・orz
背景真っ黒バグやっと取れた〜。一言で言えば、初期化の順番が間違ってたのが原因。
カメラの移動計算をする時に
if(カメラX座標>カメラX座標最大値){カメラX座標=カメラX座標最大値}
のカメラX座標最大値にものすごく大きなマイナスの数値が入っていた。
カメラX座標の初期値は0だけど、この式で大きなマイナスの数値にされて画面表示範囲外にいってしまったと思われる。
カメラX座標最大値=フィールド横幅−640だから、
(誤)のやり方ではフィールド横幅が初期化される前のものすごく大きなマイナス値の時にカメラX座標最大値が計算されてしまってバグになるというワケw。
(誤)
cameracnt.init(fieldcnt.getFieldData());//フィールドの座標を参考にしてカメラの座標や移動範囲を初期化する。
fieldcnt.init();//フィールド座標やグラフィックハンドルを変数に記憶させておく初期化
(正解)
fieldcnt.init();
cameracnt.init(fieldcnt.getFieldData());
自由落下(放物線?)っぽい移動について色々(・∀・)
計算式はまぁわかるけど座標の移動結果の計算がいつもの移動計算と違って独立してしまうからちょっとややこしい
694 :
436:2009/04/05(日) 01:10:12 ID:/KqnkQ7k
今までは1つの処理をゴトッとまるごと書いていたのを、細かくパーツ分けして関数化し
関数を組み合わせて1つの処理をさせる様にする事にしました
汎用性を持たせる為の工夫が楽しいやらしんどいやらー
>>693 自分も移動処理を別のファイルにして呼び出す書き方(14歳シリーズの方法)にしてから
まだ慣れてなくてややこしさがありマス。
>>694 自分もプログラムのパーツ分けを見直したい〜。自分のプログラムはちょっと直すとすぐバグが出るのでw
背景真っ黒バグ取れた直後にまたバグ出てなんとかしようとしたけどダメだった。
背景は表示されるけど、WSADキーで背景が上下左右しないバグが取れず・・・orz
696 :
436:2009/04/06(月) 00:29:28 ID:EhdKUx2o
構造体?普通に配列で事足りるしなぁ〜、と思っていたけれど・・・
関数の使い回しを考える様になって一変しました。 あれはいいものだ!
697 :
せいれい:2009/04/06(月) 02:26:35 ID:7OvX1Q9e
HSPからCに移ってきた俺は構造体や関数が便利過ぎて吹いた(・∀・)
全部配列変数で弾幕やら敵やらを制御していた頃が懐かしい
ソース分割も無かったから超スパゲッティ
関数もないからサブルーチンで頑張ってた
>>696,
>>697 う・・・、C中心の方が良さそうな気がしてきました。
今のプログラムは14歳シリーズC++の影響があまりにも尾を引いているんだけど、
ちょっと直すとものすごいバグが出てしまうので、もう少し粘ってみて、もしもの時はリセットするかも・・・。
バグはなんとか取れました。大雑把に書くと、
int df =(1フレームの移動量計算);
カメラx座標 = カメラx座標 + df;
のintをfloatにしたら動いた。
dfが小数点以下の数字だったからintだと0になるのかも?(←特にデバッガ使わなかったので予想)
キャストの話が出てた時と根は同じ理由と思われます。
699 :
436:2009/04/07(火) 00:59:10 ID:RGk6l7e7
Cの勉強しながら汎用性の試行錯誤中です
>>697 HSPが大規模向きじゃないって理由が解りました;
>>698 C++でC書けばよかろう。BetterCって言われるような。
基本的にCのソースそのまま実行できるように設計されてるから
メモリ確保まわりとかCの嫌な部分だけ無視して組める。
>>698 俺はクラスとか一切使ってないぞー(・∀・)
>>700の言うBetterCってのだ
C++独自の算術関数使ってるくらいかな
>>699 大きくなればなるほどものすごく複雑になって行ってシューティングがそれっぽく動く段階までですでにスパゲッティに…
ググると痒いところに手が届く関数がぽんぽん出てくるなー(・∀・)fmodとか
>>700 BetterCをググってみました。もしかすると自分のプログラムもどちらかといえばBetterCかもしれません。
一応クラスは使ってるけど構造体に関数が入ってるような感じの使い方しかしてないし、中身はCで書いてるし・・・。
今、自分がプログラムを難しく思っているのはもしかするとCかC++かの違いとは他の所に原因があるのかもしれません。
それが何なのかはまだ今の所わかってません・・・orz
>>701 fmod、ググってみました。もしかすると余りを計算する%ってのは結果が整数値でしか出せなくて
小数点以下ありで余りを出せるのがfmodかな〜と解釈。
昨日のバグもそうですが、整数か小数点付かでいろいろ問題がでるみたいでプログラム色々大変〜な感じ。
目標を>675から>680に落として、一応昨日で>680が出来たので、
次の目標を考え中、でもバグ取りで疲れてきたので、14歳C++の最後の章を
もう一度(今ひとつ理解できないので今度で3回目)読んでみるかも・・・orz
昨日の自分の書き込みを振り返ると、ヒントをもらっても自分はそれを活かしてない感じ・・・orz
でも、関数ポインタ、BetterCなど、ノートにメモして忘れないようにし、レベルがUPしたら振り返ってみようと思ってマス。
(次の目標)
選手は増やさず、現状の8人のまま。ただし、表示する座標はフィールド全体に配置する。
それによって今まで初期状態で8人見えていたのが、何人かは画面外になる。
この間作ったWSADキーで背景が上下左右する機能で画面外の選手が見えるようにする。
重力移動完成(・∀・)いい感じに動くぜ
重力使えるとリアルな動きが出来そうですよね〜。ボールに使えるようになりたい〜。
選手8人を全体に配置したら失敗。画面の端に張り付いた状態になる。
これは(0,0)〜(640、480)でやってた時の選手移動関数の中に画面外へのはみ出し防止if文に引っ掛かったから。
if文を(0,0)〜(1696,1088)に対応させて問題クリア!
今はカメラ初期位置を左上にしてるので選手は1人も表示されないが、しばらくすると画面外から画面中央にあるボールに向かって画面外から現れる。
ここで今日は終了。
ここから先は、今のx,y座標は計算してもそのx,y座標で選手を表示させず、
そのx,y座標が(カメラの左上x座標、カメラの左上y座標)〜(カメラの左上x座標+640、カメラの左上y座標+480)にある場合にだけ表示を許可し、
なおかつ表示関数に与える引数の座標は、(選手のx座標−カメラの左上x座標、選手のy座標−カメラの左上y座標)にすれば、カメラの動きになるかな〜と予想。
706 :
436:2009/04/10(金) 00:18:01 ID:ROVk2BqV
また問題発生で気力が下降してます・・・
勉強だけ少しずつ進めてます
>>706 自分もプログラムと勉強を交互にやるような感じでやってマス。
問題発生の時は大体このスレに書いてるような進み具合です・・・orz
今日は色々あって進まず・・・。本を少し読んで寝ます〜。
708 :
せいれい:2009/04/11(土) 20:00:29 ID:dyWpPb3I
敵制御、弾幕制御に欠陥があるかもしれないから最終チェック(・∀・)
>>708 最終段階ですね〜。こちらも頑張ります〜。
頑張ると言ったものの今日(昨日)は>680で言っていたカメラのview関数の引数を
関数内で使う為に関数内で宣言した変数に引数を代入までで、どうも集中力が出なくて終了・・・orz
勉強も少しだけ・・・。
710 :
436:2009/04/12(日) 00:45:38 ID:gHLFso7W
>>707 ういっす。こんな時は焦らず、少しずつですね
あ〜人里離れたとこで、ひっそりとゲーム作りだけしてたい・・・
>>710 ですよね〜。日常のやらなければいけない事をやって、その残った時間で作らなければならないというか
作る為の勉強もしなければならないのでモチベーションの維持も必要になってきて、ゲーム作りはある意味修行かも・・・orz
今日はちょっとだけ書いてみた。カメラ範囲外の選手をカメラ移動すれば見えるようにしたつもりが、おかしくなった。
8人の選手が16人になって、要するに同じ動きをする選手が8人、少し離れた場所に出てきた。
どっちの8人が自分が書き足したプログラムによるものなのか?、もう一方の8人が何故現れるのか?がわからない。
カメラ移動で見えるようになったのかもはっきりしない〜orz どうも集中できないのでとりあえず今日はここまで〜。
16人問題は8人に戻った。選手クラスのオブジェクト内のmove関数の中にある描画処理をカメラのview関数内にカット&ペーストしたつもりが、
コピー&ペーストだったので変換前の座標での描画処理がmove関数に残っていたのが原因。
ボール、ゴールについても同様の変更を加えているところだけど、骨の折れる作業なのでまだ途中。今日はここまで。
あとは寝る時に14歳シリーズC++を少し読むつもり。
そろそろエフェクト、背景部分も作り始めるからここいらで表示優先度を整理してみる
優先度 低
背景レイヤ1(背景の一番下)
背景レイヤ2(背景の上に描く背景。草とか)
グラウンドエフェクト(背景にかかるエフェクト。水の光とか)
ハイドエネミー(オブジェクトに隠れる敵)
背景レイヤ3(木や石などのオブジェクト)
オブジェクトエフェクト(木の葉が落ちるなどのエフェクト)
バックエフェクト(自機や敵機の背後に表示されるエフェクト。魔法陣とか)
自機
自機弾
敵機(優先度は内部で座標依存)
ハイエフェクト(自機弾装飾やその他エフェクト)
敵弾(優先度は内部で10段階)
トップエフェクト(敵機弾を隠すエフェクト。敵ショットなどに)
トップレイヤ(すべてを隠す背景。森っぽさを出すとか)
ワイプエフェクト(画面切り替え時等、ゲーム画面を真っ白にするとか真っ暗にするとか)
フレーム(残機や敵HP、点数などを表示する枠)
優先度 高
こんなもんでいいのかな
>>713 お〜、さらにディテールアップですね。楽しみにしてます〜!。
こ・・・こちらは、ボール、ゴールの描画処理移動出来たので、コンパイル。
コンパイルできたけど、画面になぜか選手、ボール、ゴールが表示されず、
背景がwsadキーでカメラ移動できるだけ、しかもボールがおいてあるはずの中央付近に
カメラの端が来た瞬間に英語のメッセージボックスが表示されて止まる・・・orz
なかなか容易じゃない感じ。
エスパーしてみるとそれは変なメモリにアクセスしたんじゃないかな(・∀・)
ボールとゴールを追加する時に読み込み処理の部分をミス?
>>715 ありがdです〜(←2ちゃん風)、>577の頃のバグと似た感じでした。
(間違い)
if( ボールとカメラ範囲の当たり判定式){
(*it).anim->draw(0, (*b).getx()-camera.x, (*b).gety() -camera.y);//ボール座標をカメラ内で見た時の座標に変換して表示する。
}
(正解)
if( ボールとカメラ範囲の当たり判定式){
(*b).anim->draw(0, (*b).getx()-camera.x, (*b).gety() -camera.y);//ボール座標をカメラ内で見た時の座標に変換して表示する。
}
間違いにある(*it)は選手8人のデータを指すイテレータ。ここを本当はボールの(*b)にするべきだけど、写し間違えていた。
選手全員の処理を行ってから、ボール( (*b)でボールのオブジェクトにアクセスする)の処理を行うので、
間違いでは(*it)の選手で描画しても良さそうだけど、実はこの時点では(*it)は最後の選手の「次」の要素を指しているので、
指摘されていたように「変なメモリに」アクセスしようとして実行中エラーになったと思われる。
そして選手、ボール、ゴールが表示されないのは、今のカメラ初期位置からではどう動かしても最初に見えるのがボールだったので、
そのボールを描画しようとした瞬間にエラーになっていたので、結局、選手やゴールも表示されていなかったと思われる。
今日は進まず・・・orz
>620の頃からカメラ移動の実装を始めて最終版ではないけど、とりあえずwsadキーで
カメラを上下左右させて画面より大きいフィールドの表示が出来るようになった感じ。
ヒントもらったりしてるのに6週間くらい掛かってる。(プログラムは難しい〜)
目標である「オンライン3D対戦サッカーゲーム」はいつになったら出来るのだろうか。
あと何年かかるのかな〜。と・・・とりあえず次の目標ははっきりとはしてないけど、
今のカメラも完全ではないので少しずつ修正をしつつ、今度は、選手の動きについて考えてみる予定。
例えば、状況によって選手の動きを切り替えるみたいな感じ。
そういうのは「状態の管理」みたいな呼び方をされている考え方があるらしいので調べてみるつもり。
このスレの中でも「状態の管理」に触れている本が紹介されていたようなので、これも近いうちに検討してみる予定。
(以前、本屋で立ち読みしたら「状態の管理」に関するような事が書いてあった。)
あくまで予定なんでまだ難しいようなら、当初の予定で言っていた14歳シリーズC++の最終章を3度目だけど、また読んでみるかも。
上で名前書くの忘れてた・・・orz
>>377の事です。(汗;)
完成したら同人誌描かせて欲しいっていわれてモチベうp。冗談だろうけど
関数や全体の構造を整理(・∀・)ここから先は規模が大きくなってくるからバグが残ってると死ぬる
弾の移動計算に誤差が無いか10時間ほどつけっぱなしにしてくるくる回転させるテスト(・∀・)
1〜1.5ピクセル程度のズレが出たけど10時間でこれなら許容範囲かな
行動パターンの管理に関数ポインタが便利そうなので勉強(・∀・)
>>719 同人と言えば、東方○X△(サッカーもあったような気がしたけどやった事無いので詳しくないw)みたいな感じとか?
>>720 そういえば自分のプログラムも選手が敵味方で1ドットくらいずれてる感じ。今の所は原因を追究しないで放置。
>>721 こちらも似たような勉強を開始しそうな予感です〜。
こちらはちょっとやる気が下降気味〜。
>718の本、本屋で買おうと思ったものの理解出来そうに無いので延期。(たぶん半年後でも残っていそうなので、その時決めるつもり)
>717で言っていた「状態の管理」はどちらかといえば「状態の遷移」だった。(>718の立ち読みで気付いたので、本屋に行った甲斐があったw)
「ゲームプログラム 状態の遷移」で検索すると色々出てくる。
なんか便利そうなサイトだけど俺には理解できなかった(・∀・)
クラスの説明読んでもやっぱり何が便利なのかわからなかったな〜
自分もあまりよく理解できませんでした・・・(汗)
改めてホームページを見てみると検索で引っ掛かったのは全体の中の第4章の部分だったので、
第1章から4章まで一週間位で目を通してみて、次どうするか考えてみるつもり〜。
仕様について色々考える(・∀・)
ごちゃごちゃやれることをふやすと操作性やゲームバランスがアレになりそうでうーむ
せーれーさんがVIPの某スレに普通に参加してたので笑ってしまった。
VIPは規制中というか馬鹿がいるんで半永久規制なんだけど。年明けてから通算10日も解禁されてないw
軽いゲーム作ってるんで、仲間にいれてくれい!
今日は雛形コピーして画面レイアウトちょっと考えただけ。想像を創造に。ってやつだな。
うほwww見つかったwwゲ製作でサクサク雑談したい時はあっちの方が人多くてねww
仲間が増えるのは歓迎だぜー(・∀・)頓挫しないなら…な…
ヘッダーファイルについていろいろ
まだまだ未知の仕様がいっぱい
関数ポインタを使用した新しいシステム導入成功
なんだかオブジェクト移動関数のヘッダー周辺がごっちゃごちゃしてきた
関数ポインタ構造体に突っ込んだりして、これクラスでいいんじゃね?と思う日も近いな!
まだあと一歩クラスの使い方、利点がよくわからんのだよな…
もにょもにょする
いまからクラスに移行するにもソースコードをほぼすべて書き換えなくてはいけない気がしてきた
構造体でええじゃないか/(^o^)\
まあ次でいいんじゃね、次で。必要と思った時にやればいいのはもちろん!
ポインタをまともに使えるようになったのも最近だぜっ/(^o^)\
構造体マンセー
トリップつけて恥晒すぐらいの覚悟は先日まであったんだけどなあ。
今日もほとんど動いてない。
企画3のDefence&Attackを生暖かく見守るだけ。あと漢検DS3。
最近生活リズムがガッタガタでそろそろ体壊しそうな気がしてきた
今VIP企画って1〜17まであるのかな?同人スレ落ちたからよくわかんないけど
関数ポインタうんぬんはだいたい使えるようになった。次はビット演算だ
>>738 ああ、パー速っぽいとこでやってるんだなぁ。マターリやるにはいいだろうなぁ。同志も多そうだし
アクセス規制が解除されたようなので書き込み〜
>>727 ど・・・ど〜ぞよろしく〜。
自分の方は現在もゲーム作るための勉強段階なので、このペースだと仮に出来るとしても20年以上掛かるかもしれません・・・orz
>>728 こちらは頓挫しそう(・・・orz)な気持ちになる時も多々あるけど、調子が戻ってきたらまた現れます〜w
まぁその20年をなんとか10年以内にで・・・出来れば5年になどと妄想もしてマスw
一応>725の1〜4章までは目を通した。
やっぱり理解できない・・・けど、とりあえずどんな事やってるのか雰囲気だけでも
掴んでおいてまた必要な時に戻るつもり。(プリントアウトしてあるから)
という事でHP作者に感謝しつつ(汗;)次のHPを探すところで睡眠時間。
>>738 ゲ製の潰し屋みたいなのがいないから、居心地はいいぜ。
夢見るVipperで溢れてるよ。
シナリオ妄想しかできないのがやたら多いけど、絵師も音師も結構紛れ込んでる。
>>740-741 がんばれー。
自分は、実例AIの2章読むだけで1ヶ月ぐらいかかったよ(´・ω・)
それだけに、自分の箱庭村が動き出したときはちょっと感動した。
この感動の勢いだけでワーネバやガンパレ作ってしまいたくなる気持ち、すごくよくわかる。
勉強もいいけど、まずは目の前のプログラムがちゃんと動くようにしようぜー。
動くことには動くぜ!
敵機の処理は関数ポインタを使用したものに移行したので他のも逐一移行ー
ネットでの勉強がこんなに難しいとは・・・orz
選んだホームページが難しいのかもしれないけど、目を皿にしてもう少し考えて見ます。
でも、このホームページについては記事がもの凄いたくさんあるので、自分はこの「その7」のところだけにしておくつもり。
>>744 このスレの真ん中あたりで、ボール蹴るだけなのにバグでいろいろ躓いた経験があって、
それはプログラムの中で当たり判定部分や移動処理の部分にボールを蹴った(蹴れる・・・だったかも?)事を覚えさせるフラグを混ぜてしまい上手く使いこなせなかった事が原因として大きかった記憶があり、
そこに「状態遷移」という言葉を知ってしまい、いずれにしてもコレの理解と実装方法を見つけない限りはこの先厳しいかも?・・・と思い過ぎてしまったようです・・・orz
たしかにこのままだとプログラムを忘れてしまうので、もう少しだけやってみてどうするか決める予定〜。
>>745 こちらも早く何かワザを使って動かしてみたいです〜。
本だとキモみたいな部分になると、これは○×デザインパターンです・・・な説明で済ませようとするのが多くて(14歳シリーズでさえも・・・orz)、かなりやっかいな状況に今立たされています(汗;)
>>744 この前のカメラ実装後に何故かゴールと経過時間表示が消えたので、これを直す予定です〜。
敵機や自機のアニメーションパターンを自由に切り替えられるようにいろいろ考える
細かい動作ごとに切り替えるとなると再生タイミングやらややこしいなぁ
>>746 状態遷移というのはよくわからないけどキャラが指示やスクリプトで途中で違う動きをしだすことなのかな?それならもう随分前に実装しているかも…(シューティングに必須だから最初に覚えてしまったのかな?)
14歳シリーズは上級者向けな気がするww
>>748 状態遷移・・・、自分も大体そのような解釈してます。
例えば味方がボールをキープしたら自チームは攻撃モード、敵がボールをキープすれば自チームは守備モードに切り替わるようなのも状態遷移なのかな〜みたいな感じで・・・。
14(15)歳シリーズという本の名前とあの表紙の絵のもたらすイメージに反して中身が難しいような気が確かにしますw
プログラム、もう忘れかけてたorz
ゴール表示、なんとか出来た。ゲーム内にあるオブジェクトでどれを表示すべきかの判定は、
カメラを640x480の四角と見て、カメラの現在位置とオブジェクトの位置から当たり判定で「当たり」となったオブジェクトだけ表示対象とし、
座標変換(カメラ左上を原点とした座標に直す)して表示。・・・なんだけど、
ゴールはグラフィックデータでなく、LINE命令で左ゴールは右上から反時計回り(Cの字みたいに)に書き、
右ゴールは左上から時計周り(コの字みたいに)に書いていて、上手く説明できないけど
当たり判定に使う座標を間違えてしまってたのが原因。
全板規制食らった(´・ω・`)
自分もついこの前規制でした。2ちゃん規制はいつ終わるかわからないのが難点〜。
こちらは実装の方法というかそれ以前の理解の段階で躓いており、もしかするとこの辺が自分の限界なのかな〜と諦め寸前になりそうですが、
細々とでもいいので、まだ作業は継続していく予定デス。・・・orz
規制オワタ
背景の仕組みを考える
規制解除よかったですね〜。規制がもう少し軽ければ2ちゃんは結構便利な掲示板なんだけど・・・。
こちらは停滞中・・・orz。実はここ最近は寝る前10分くらいしかやってなくて、>743の(その7)をまだ読んでいるところ。
5、6回読んだけど理解不能。もう少しやってみる予定。
>747の課題で残っていた「経過時間」が消えているのは、こちらの見間違いだった。
フィールドの外枠を極太の白塗りにして境界を分かりやすくしていたその白部分と
経過時間表示の白文字が重なっていて気が付かなかっただけだった。
時間の表示がデタラメになっている問題はとりあえず今の自分には無理そうなので放置〜。
まともに規制食らったのは初めてだな〜
自機ドット絵作成中
新しい描画方法を試すためにも50枚くらい描かないといけない
新しい描画方法というのが気になりマス〜。1日1枚だと50日。
自分も50日後に何か進捗を語れるようになるために頑張ってみるつもり。
10分X50=500分、やっぱり約8時間では厳しいかも・・・orz
現実の事情で時間を確保し難いのと、自分の理解力不足が原因なので
なかなか前に進まないのは仕方ない事なのかなと自分に言い訳してマス。
選手が目標とするマウスの座標がカメラの位置と連動してないと見た。
カメラの左上座標が cx,cy で、マウスポインタの位置が mx,my だとすると
選手が向かう位置は cx+my,cy+my でないといけないはずだが
mx,my に向かってると見た。
>>757 動きましたよー
ただ
>>758も書いてるようにカメラが初期位置以外だと
マウスの位置に来てくれない
>>758,759
ありがとうございます〜。まさに指摘通りです。
画面スクロールさせていない初期状態で選手の動き見ただけだったので気付かなかった・・・orz
次の段階に進められそうな感じになった時に修正しようと思います。
いまだ>743の(その7)で???な状態で、次の段階へ進むのはちょっと厳しいかもしれない予感です・・・orz
今日も進捗0
>743(その7)、最初の方はぼんやりと分かるような気もするが結局分からない・・・orz
これだけ時間掛かるなら、中級本にトライでもしてた方が早かったかもしれない。
いっそのこと状態を表す変数を列挙型で用意して、switch文で状態に応じて処理を振り分けるシンプルそうな方法でトライした方がいいかも?という気もしてきた。
まずはボールのクラスに手を加えてみようかな〜?
でもやっぱり(その7)の読解にもう少しだけ粘ってから始める予定。(できれば、その8も)
自分の場合、小目標を立て、それがあと何日ぐらいで完成の予感!・・・という見積りを立てにくいのが泥沼状態な感じ・・・orz (寝)
>>761 >>743を読んでみたけど、
Eぐらいまで行くとC++のエッセンスが詰めこまれてるから
あんまり慣れてないなら無理に使わない方がいいと思う。
簡単な状態遷移なら@(switch文)で十分かと。
状態によってコールする関数を分けておけば
状態遷移の処理はあとで差し替えることも出来るし、
さらに戻り値と引数を合わせておけば関数ポインタにもすぐ対応できる。
まぁどこで使うかにもよるけど、最初はとりあえずswitchでいいんじゃない?
と、酔っ払いが言ってみる
うちも以前はswitch文でもりもり分岐させてたけど管理できる量に限界が来そうだったから関数ポインタに乗り換えたんだぜー
なかなか進捗らしい進捗がない為、書き込みが滞りがちになってしまう自分・・・orz
>>762 一応>743の(その7)は引き続き読むつもりで、できれば(その8)も読むつもりです〜。
悩みの1つは、
>戻り値と引数を合わせておけば
・・・が、かなり難しい点。
とりあえずswitchで処理振り分け実装でトライの予定です。
>>763 実は今読んでる(その7)にも関数ポインタが出ていて、いずれはこれを理解する必要がありそうな予感〜。
ぼんやりと分かりかけた様な気もするけど、自分のソースにどのように実装すればよいか考えると、自分はまだ理解できてない感じ。
ボールにどの様な処理を実装するかは、「状態遷移図」を間違いでもいいから書いてみる予定。
ゲーム作りでこのような図を書く必要があるのかは自信なしw
「状態遷移図」はいろいろなホームページで紹介されていて説明も短いのがほとんどなので、
それほど書くのに時間は掛からないと予想。
だ・・・誰もいなくなったような感じ。
でも、もしかすると名無しでこのスレに戻ってきてるかもしれない・・・と思いつつこちらは細々とまだ何かやってはいるけど、進まずです・・・orz
(その7)は20回程は目を通したような気がする。(その8)も5回程・・・。
switch文でやると言いつつまだ足踏み状態。
もう少しだけ今までのプログラムを整理してから始めるつもり。
以前、クラス図もどきを描いたけどあれよりも簡単な図を書いて整理する予定・・・というか今進行中w
参考にしたのは、
ttp://d.hatena.ne.jp/mitsu_chie/20090317 検索キーワードは忘れてしまった・・・orz
今頃言うのもなんだけど、どうもオブジェクト同士のデータやり取り方法や変数の有効範囲がいまいち
理解していない状態なので整理したくなった感じ。たぶん今まではコピペが多かったからたまたま上手く動いていたのかもしれない。
たしか{ と } で囲まれたブロックの内と外では名前は同じ変数でも別物だったはずなので、
クラスも一種のブロックみたいなものかな〜と思い、クラスのつながりだけは最低限見れるようにすれば、
何かが見えるかも?と期待。
>764の状態線図は一応手書きでできあがってるけど、
プログラム整理して、(その7)を参考にswitch文をプログラムのどこにどう使うかが分かったら作業再開の予定。
生きてるぜー
最近は絵の練習メイン
お〜!順調ですね〜!
こちらも頑張らねば!
図は大体出来たけど、プログラム的にどう実装すればいいのかで結局また悩む。・・・orz
実装が進みそうになったら図もうpするかもです。
何かしら実行中にエラーが出たら問答無用でブッち切るようにした
画像ファイルの用意ミスとか防げる!
あのエラー時にデュン!って出るアレどうやってだすんだろう
try catch文のこと?
おお…そんなものもあるのかー
この前書き込んでからまだ2、3日しか経っていない様な気がしていても実際には一週間過ぎてる・・・。
でも、実生活でいろいろあるので作業はあまり進んでない・・・orz
ボールの状態遷移図を実装につなげるつもりが、特に理由もなくまずはスタート画面、選択画面、ゲーム画面の遷移を実装してみようと思いが変わり、
図の作業を始めるも挫折。手書きでは後で真ん中に書き入れたい内容が増えた時がつらい。
全部消しゴムで消して書き直す訳にも行かず。エクセルの図で書こうとすれば、手より時間が掛かる感じ。
これをどう解決するか・・・?といったプログラムと直接関係無いところで時間を消耗中w
switch文でやる件もギリギリまで保留中。switch文で先程の遷移を実装しようとすると、
それは14歳シリーズのC++本に書いてあった実装とほぼ同じ内容を復活させるだけなので、
なんとか(その7)を読み、なんとなくCまではいけるかもという気がしてきた。(気がするだけ。)
>>768、769
>エラー時にデュン!って出るアレ
については分からないけど、自分のプログラムにも try とか catch とか throw というのが、
画面をloadするところに書かれてるけど、これは14歳シリーズのコピペで済ませていて
理解できずにそのまま使ってマス・・・orz
本にも説明はあったけど理解できなかった。
エラーとか例外処理とかいう感じの部分についても、いつか勉強し直す予定〜!。
昨日の図は、四角がクラス型とオブジェクト、四角でないのはメンバ関数や変数、ポインタ等のつもり。
ツリーは、右側に書かれているものが左側に含まれているような関係。
今日は>764のボールの状態遷移図を間違い多くてもいいからUP。どうやらステートチャート図らしい。(違いがわからないw)
ttp://gamdev4.hp.infoseek.co.jp/cgi-bin/up/No_0034zip.html まぁ、昨日は時間にこだわってたけど、やっぱり元通りの少しずつ進める方が現実的かな〜と考えを改める。(1日で変化!)
生活が成り立ってこその趣味だし・・・。(汗;)
という事で、>771のスタート画面、選択画面、ゲーム画面の遷移を実装・・・は中止!
ボールのステートチャート図と(その7)を使った状態遷移の実装が出来る事を確認してからでも遅くないと思ったのが理由。
またしばらく時間掛かりそうな予感。
pdf 怖いよ pdf
>>773 ボールなんかはステートとかまどろっこしい事を考えず、
dx,dyを毎フレーム加算するだけでいいんじゃないかと思う。
もちろんそのままじゃ等速直線運動になっちゃうから、
dx,dyを毎フレーム小さくしていくのも忘れちゃいけない。
あと少し前からスレを見てるけど、SGGKは若干考えすぎな感じがする。
自分もC++を勉強してゲームを作り始めた時は、
クラス図とかきっちり書いてたけど、結局時間の無駄だった。
そういうものは誰が読むわけでもないんだから(一人で作ってるならなおさら)、
クラス構成なんかは自分がわかる最低限のドキュメントに済ませて、
その分ソースをガリガリ書いた方が、それが失敗だったとしてもためになる。
人それぞれやり方はあるだろうから、
別にやっちゃいけないとまでは言わないけど、
なんとなく変な所で躓いてる感じがしたから、ついでに言ってみたw
スルー推奨。
>>776 ど・・・どうもです〜。(ギリギリ起きてた・・・)
自分はいきなりC、C++でゲーム制作やろうとして下地が無かったので案の定理解が進まず、
図やHPに頼ったりしましたが、今も理解がぼんやりしてて、でも時間はかなり掛かるとしてもなんとか書けるかもしれないような気がしてきたので、
まずはボール関係からちょっと書いてみます〜(では就寝〜w)
俺はSGGK氏が別スレに登場した時から応援&口出ししてる人間だが
>>776と同意見。
とにかく難しい技術的な事は気にしないでいいから、目の前のものを動くようにするのが先決だと思う。
形から入る人はいるし、そういう人の方がなんでもキッチリこなしたりする。
変に独学でやっちゃうと、それがクセになって後々困る場合も多い。
だから最初に書籍とかで基本を身につけるのは決して悪い事ではない。
が、SGGK氏の場合は
やりたい事が上手くいかない → もっと勉強すれば解決するに違いない → 難しい部分に手を出す → 難しすぎて進まない
の繰り返しに見える。
難しい技術的な事はとりあえず気にせずに
手の届く範囲でやっていったほうが早いと思う……。
図を見たがクラスがよくわからん俺の脳は溶けた
俺も形から入るタイプ?なのかな
とにかくソースコピペしてきて動かして説明見ながら数値いじってどれがどんな意味を持っているのかを理解しながらで今まで来た
今は図は描いてないけど頭の中でコースに敵が配置されて、それぞれが行動して、弾を発射して、それぞれの弾が動いて…をそれぞれのオブジェクト単位でイメージしてる
こ、これがオブジェクト指向かっ!?
>>778 !!!。 も・・・もしかして最初のスレの頃からとか・・・?
そういえばあの頃から今年の8月末で制作活動2年経過・・・orz
そう考えると今は確かに手の届く範囲でいいから、2年経つまでにもう少し制作を進めたい感じデス。
>>779 オブジェクト指向といえば、以前自分はこの本で勉強した事があります。
「憂鬱なプログラマのためのオブジェクト指向開発講座」図のルールは、ちょっと古くなっているかもしれません。
今思えば、気になる部分かまたは最初の部分を読むだけでも良かったかな〜と思ったりもします。書いてた事を読むだけだと、自分の場合なかなか頭に残らなかった経験があるので・・・。
たぶんプログラム書いて試行錯誤した方が覚えるの早いと思います。自分もまた明日から少しずつやっていきます〜w
で・・・でもこの本、C++の理解にはかなり役立ったので捕捉しておきます。
(では、就寝〜)
(就寝〜)と書くのはやめる事にします。後で見ると恥ずかしい気がしてきたので、書き込み無ければ、それが就寝という事にしておきマス・・・。
とりあえず、
1.ボールの動きに関するプログラムを状態遷移図を参考に書き直す。(switch文か(その7)のCでやる予定)
2.必要なオブジェクトを考えて動かなくてもいいから一通り書きそろえる。(例えば、レーダー、得点や経過時間の表示)
を8月末くらいを目標にやる予定。(またしばらくの間、潜伏状態気味になるかも・・・)
画像見れました。以前うpされてた一面に合ってる感じでいいですね〜。(森のイメージかも?)
こ・・・こちらも次週こそは頑張らねば!(汗;)。
785 :
弾幕◇規制中:2009/06/22(月) 02:05:32 ID:N4D7tCzn
おお!イメージが伝わっているようで何より〜
エフェクト関係の処理を書き直し中ー
そして誰もいなくなった(・∀・)
ご無沙汰してます〜。
こちらは全然進んでないので書き込みし辛かったといった感じ・・・orz
まとまった時間が取れない、自分にスキル無い、そもそも出来るんだろうか・・・等
言い訳ばかり思いついてしまって・・・(汗;)
でもやっぱり一番の原因はちょっと休んでしまった事かも?
長距離走も途中で休むとまた走り出すのが大変だし、それと似た感じ。
毎日5分でもいいからコンパイラ開いて2〜3行の変更でもいいから続けるような感じで制作を習慣化する事をとりあえずの目標にして、
今は選手22人分のデータをswitchで読み分けできるように、#defineで番号を22人分(実際には、11人分用意してそれぞれ+1する感じ)用意した所。
switch一杯になって見ずらくなると思うから
こんな風にしてみては
#define HITO_MAX;
enum HITO_NAME =
{
P_GK,
P_FW,
:
:
NAME_MAX;
};
SENSHU *senshu[HITO_MAX];
あー、ゴメン読み込みか
ありがとうございます〜。そ・・・そうです。実は読み込み用なので
FW1,FW2,MF1,MF2,MF3,MF4,MF5,DF1,DF2,DF3,GKに1〜11を割り当てて
switchでデータ読み込みを区別するつもりです。
でも、これでは選手のポジションが分からないので、選手のメンバ変数に
FW1・・・GKを持たせて、判別出来るようにする予定。
今日はノートに手書きでフィールド書いて選手の初期座標の大体の見当を付けたのみ。
結局出来るのだろうか〜?という不安が常につきまとう〜・・・orz
選手データ初期化の箇所に(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
番号が飛んでるからかな〜という感じがするものの時間切れ。
間違ってるのは分かってるので、本来ならばそれを直して先に進めばいいんだけど、
その間違ってる場合にはこのような結果になっているはずだ・・・という自分の予想と
実際の結果が異なっていてそれが何故なのか分からず、足踏み状態。
>その間違ってる場合にはこのような結果になっているはずだ・・・という自分の予想
そういう思い込みはデバッグの敵だ。
確実にひとつひとつしらみつぶしにチェックしていくのが遠回りのようで実は近道。
確かにどこかに思い込みがあって気付いてないところがあるのだと思います・・・。
表示される選手の敵味方の数が自分の予想と違うだけなんだけど、これは気になるので
もう少しだけ粘って原因について考えてみるつもり。今日はあまり時間取れず・・・orz
色々考えてみた結果、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() } だから、
1,3,8,5,7のときしか仮のメンバ変数へのデータ入力しないので、画面には1,3の味方、5,7,8の敵、計5人しかでないはずなのに
なぜか味方が4人見えるし、ボールに向かって動かない選手もいるのでおかしいと思っていた。
しかし、switchにヒットしなくてもswitch文を抜けた直後にpush_back()で初期化データを入力されているはずなので、
本当は、1,1,3,3,5,5,7,8で8人分のデータで初期化されてたのでは?という気がしてきた。
もうひとつ問題、「選手がボールに向かわない」は>791で(cx,cy)、(px、py)を削除したのが
原因になっているのでは?という気がしてきたので、結局遠回りになったけどやっぱり見直すつもり。
(cx,cy)は、カメラの見えてる範囲を基準にした時の選手等のオブジェクトの座標。
(px,py)は、1ループ(1フレームとも言うのだろうか?)前の各オブジェクトの座標。
いずれも計算した直後にしか使わない数値だからメンバ変数にしなくてもいいかなと思っていたし、
改めてプログラムを見直しても削除による問題は見当たらなかった・・・。(どこか勘違いしてるかもしれないけど。)
時間掛かりすぎなので、少し前の内容で保存したプログラムファイルからやり直してみる事にする。
原因が分かったような気がしてきた。(cx,cy)、(px、py)の削除はたぶん関係なさそう。
選手8人分のデータはリスト(配列みたいなやつ)に入ってるので、デバッガで見れないのかと思ってたけど、
ブレークポイントの位置を色々変えてみたら見れた。
呼び出す移動関数のアドレスがコンストラクタで0にセットされてたのが原因。(コンストラクタについてはあまり理解してません。)
switch文の中で選手データ初期値を一時的に保持する為のオブジェクトをループを繰り返す度に定義していたので、
その時にコンストラクタが呼ばれて初期化されたと予想。
caseに該当してればすぐに代入されるから問題ないけど、
caseに該当しない時には、その前に該当したデータが残ってて代入してくれると思ってたのが勘違いだった感じ。
でも、なぜか座標(←コンストラクタには入れてない。)は前に該当したデータが代入されてるので疑問は残るけど、
勉強する余力も無い(・・・orz)のでソースをコピーして名前を変えてプログラムに戻る事に・・・。
とりあえず22人表示、自分以外の21人はボールに向かって動くとこまで出来た。
>>797 久々に見にきてみたが、言っている事が意味不明だぜ
リストってstd::listかな?
最初は素直に固定長の配列使った方がいいと思うよ。
何をしたら何の値がどう変わるのかは把握しておくべき。
あと、switch云々の部分は、
おそらく選手リストの作成時の話だと思って話を進めると、
class Player; // 選手クラス
ってのがあるとして、
// 選手リストの作成
std::list<Player> player_list;
for ( int i=0; i<22; ++i ){
Player player;
switch(i){
// ポジション毎の初期化処理(?)
}
player_list.push_back( player );
}
みたいな感じになってると(勝手に)予想するけど、これはまずい。
iがswitchのcaseで引っかからない場合、
「Playerのコンストラクタで初期化されている変数」以外のplayerの変数は
未定義(何が入っていてもおかしくない状態)になる。
この時”たまたま”playerの座標はその前のループで代入されていた値が入っていたんだと思う。
未定義なものは使う前にちゃんと初期化などをして定義してあげるべき。
あーでも「選手8人分のデータリスト」ってのが存在してるってことは、
選手22人分のリストとはまた別のリストか。。。
やっぱなんかよくわからんぞ・・・
俺もクラスについてはさっぱりだぜ
>>798 ほ・・・ほとんどその通りです〜。
ソースのところは、まるで14歳のC++を読んだのではと思うほどに的中してます。
>「選手8人分のデータリスト」
これは、最初はcaseを8通り用意していた(このときはswitch(i)とcaseがちゃんと対応してなかった)のを
22通り用意して22人分にして(今度はswitch(i)とcaseが必ず対応する様に直した)やり直したという事です。
た・・・確かに躓くことが多くなってきたので、自信は無いけどリストは使わないで配列で書き直すかもしれないです〜。
今までそうしなかったのは、元になったソースの大部分がC++で書かれていたので、これをCに直すと時間が掛かりそうだし、
書き直す自信もなかったから・・・。
>>799 お!おひさですぅ〜。
・・・という事で一部をCに直してみるに方針修正してみマス。
たぶんまた時間かかる予感。出来なければまた>797に戻ってやり直せばいい!!!ということで(汗;)
>>800 >>798です。
なるほど、理解できました。酔っ払った状態で考えるもんじゃないね、ごめんw
現状思い通りに動いてるなら無理にCに書き直す必要もないかと思うけど。。。
まぁごちゃごちゃ口出ししてしまうと、色々とよろしくない事になりそうなのでこの辺にしておきます。
がんばってー
>>801 ど〜もですぅ〜。
で・・・では、次にまたバグったらCの配列でデータを持つ方法を検討する等、その時の状況で判断してみます〜。
とりあえず、レーダー実装に挑戦の予定。自機の動きがおかしいバグも直さねば(汗;)
暑過ぎてソース読むとさらに暑くなって何も出来ない・・・orz
もうすぐ2年経つのでなんとか区切り付けたい気持ちだけが先走ってて、そう言う割には何も進まない状況に気付く。
「 区切り 」などという妙なこだわりがあったかもしれないけど、そんなこだわりは捨てて、別に時間掛かってもいいんだし、またまた方針変更。(心が揺れ動き過ぎるけどw)
とりあえずC++特有の標準ライブラリっぽい機能(list、vectorとか他にも色々・・・)やC++のややこしいデザインパターンがどうのこうのというのを無くし、
配列で書き直せないか検討してみる事にした。クラスの枠組みだけは残して、クラスの中身をCのみで書けないかな〜と妄想。
でもC++を勉強したからC++のゲーム本も多少は読めるようになったのだし、無駄ではなかったと自分で自分をフォロー・・・orz
C変更、出来るかどうかもわからないのにやると言ってしまった(汗;)
あえて納期は宣言しません。もう、戻れないかも・・・・・。
vectorだけでも覚えておけば便利だよ
配列でやりたいことはだいたいそれが機能持ってる
vectorの場合、配列の最大数をオーバーして呼び出す心配がないと自分では解釈してたので、確かに便利だと思います。
>803では、vectorを使わずにCでpush_back関数を作るような事を意味してるようなモノなので、むしろCでやる方が
関数を色々自前で用意する工数が増えるので、そのための勉強も必要だろうし、かなり難しい事になって相当時間が掛かりそう。
「昨日はCと言って今日はC++か!?」と言われそうなので、その辺は触れないでおく事にしマス。
昨日気持ちがCの方にググッと傾いたのは、ブラックボックスとして使っていた画像関係の処理が入ってるクラスの中に
push_back(要素のクラスのコンストラクタ())というのがあり、コンストラクタには戻り値無いはずなのに何故push_back()の引数に戻り値のないコンストラクタを入れる事ができるのか分からず、
「Cで勉強しなおした方が・・・」というのもあったのですが、Cで自前関数を作って・・・というのも確かに難しい話。
とりあえず「どれでプログラム書くか?」はよ〜く考えつつ作業を進めてみます。
考えてばかりでは進まないので、今日はやっとレーダーの画像データを作成。
ただの四角なので実はすぐ出来た。気持ちの問題w
やる気が残ってる内に画像をプログラムに取り込まなければ〜!
自分の書き込みを振り返ってみると、なんだか誤解されそうな気がしたので補足しておきます。
CとC++とを比較してどちらがイイとか悪いとかいうつもりは無いです〜。
今日はレーダーのヘッダファイルを作成。(まだコンパイルしてないので何とも言えないw)
関数の実体の定義ファイルは時間かかるかもしれない。
今まで書いたファイルを流用して一部書き換える程度に思ってても、
何度も繰り返しやってないと結構忘れてしまってる・・・orz
>>806 コンストラクタをpush_backの引数に・・・の話は、
ちょっと自信ないんだけど、こういうことなんじゃないかな
class Player;
std::vector<Player> players;
とあるとき、
players.push_back(Player());
は
Player player;
players.push_back(player);
と(厳密には違うだろうけど結局やってることは)同じ
>>807 ありがとうございます〜。
>805の文がそのまま伝わったような感じでなんだかスゴイです。
これはもう
>players.push_back(Player());
>は
>Player player;
>players.push_back(player);
>と(厳密には違うだろうけど結局やってることは)同じ
と考えるしかないのかもしれません。
Player()のようなコンストラクタをpush_back()の引数にすると、パソコンのどこかで自動的にPlayer player; が行われると同時に
vectorの末尾にplayerが追加される感じで理解してみます。
今日は、レーダーの画像をロードする処理関数の定義のみ作成。コンパイルは無し。(汗;)
残りは、レーダー画像の座標初期化、位置座標計算、描画の関数の実装。
座標初期化用関数、init()には選手全ての座標とボールの座標を引数に与えなければいけないんだけど書き方を忘れてしまっていた。
ソース内の似た箇所を探して、init(list<FieldPlayer> *,BallData *)だろうな〜という所までたどり着いて終了。←これは関数宣言用の書き方のつもり。
今日の作業はこの一行だけ・・・orz
810 :
ひややっこ:2009/08/07(金) 23:19:12 ID:XlX/eGfK
811 :
ひややっこ:2009/08/08(土) 21:27:29 ID:OnpPfR8B
VIPのプログラムスレにも晒して、ダウンロード50人ぐらい。
反応なし。
反応欲しければクソースでも晒すべきだったか。
今日はまだ何もしてない。
「ゲームのための3D数学」ちょっとページめくったけど、
胸を張って自慢できるぐらい全く頭に入ってない。
>>811 今時だとコンソールゲームは反応薄いかもね
それと突出したアイデアが盛り込まれてるというわけでもない
(もしかしたらあったのかも知れないけど・・・)ので、
ゲームの感想としてコメントできることはあまり無いかな
個人的にはちゃんとゲームになってるという点でよくできてると思った
調子に乗ってたらマーマンにやられてたんだぜ。。。
>>811 VC++でしょうか。コンソールでグラフィック描画関係処理が無くても
プログラムには他にも必要な処理が色々とありそうなのでそれを完成できてるところがイイ!と思います。
こちらは座標初期化用関数がうまく行かず・・・orz
814 :
ひややっこ:2009/08/09(日) 23:38:10 ID:4cX2q8XV
>>814 リンク先、拝見しました。サッカーゲーム制作、お互い頑張りましょ〜!
こちらは超スロー進捗でやってますが、年月かかっても2Dまではなんとか形にしたいな〜と思ってマス。
816 :
ひややっこ:2009/08/11(火) 00:09:41 ID:SWc0L4T5
1日でもう画面が出来上がって動いてるとは凄いです〜!。しかもグラフィックデータ無しで出来てる!
こちらは14歳シリーズの真似が限界なので、まるで進捗が止まってるかのように見える(実は止まってるorz)かもしれませんが、頑張りマス。
レーダーで選手を示す点の座標は初期化するときにスタート時に画面外で見えない座標(例えば、フィールドの隅っこ)にしておいて、
ゲームが始まったら、ループを繰り返す度に選手座標を取得してその座標を何倍かして、平行移動させてレーダーの範囲に収まるようにしようかと思ったところで終了。
今まで悩んでたのは、レーダーの各点がどの選手の点なのかを対応付ける必要があると思ってて、
そうするとレーダーの点も<list>で22個用意して、選手の<list>と常に1対1で対応させなければならなくなるので
それをやるのは自分には難しいと思ったから・・・orz
まずはレーダーの点は敵味方の2個だけ持たせて、その点をレーダー用に座標変換した選手位置に配置する方向で挑戦してみるつもり。
夏期休暇終わったけど、何も出来ず・・・orz
初期化関数作成は停止状態。
>808で出来たかなと思っていた「レーダーの画像をロードする処理関数」に気になる点があったので見直し。
フィールドは、184x120が1枚 ← LoadGraph でメモリに読み込む。
選手は、3x3の赤と青を連結した3x6が1枚 ← LoadDivGraph でメモリに読み込む。
ボールは、5x5の白が1枚 ← LoadGraph でメモリに読み込む。
ように書き直すつもり。
>808の時は全部LoadDivGraph(数コマが1枚の画像データになっているものを分割して読み出せる関数)
でやろうとしていてなんとなく書いていてすっきりしなかったので上のように修正するつもり。
いや、一枚にできるなら一枚にして、切り出したほうがいいよ。
それと画像のサイズは256とか512とかのように2の乗数にする。
(たとえば512×256とか128×1024とか)
不要な部分が増えるけど気にしない。
今作ってる規模のものならほとんど関係ないだろうけど、
そうした方が処理早いんだってさ。
820 :
ひややっこ:2009/08/19(水) 20:59:22 ID:lzem/ePR
>>819 ありがとうございます〜。
DXライブラリには、一枚の画像から異なる何種類かの大きさで切り抜く関数が無いようなので、
例えば32x32を4枚結合させて、
1枚目は、レーダーフィールド用、これを横6回x縦4回=24回分タイルを並べるような表示で192x128を表現する。
2枚目は、選手の赤3x3を左上に書いて残りを黒く塗って透過色を指定できたと思うので、これで表現。
3枚目は、選手の青3x3を(以下2枚目と同様)
4枚目は、ボールの白5x5を(以下2枚目と同様)
とすれば、メモリに読み込むデータは32x128で済むような感じで出来るかもとちょっと妄想してみました。
>>820 大丈夫ですよ〜。こちらはゲーム作るのが本当に無理だと自覚できるまではプログラミングが遅くても不定期でもまだ続けるつもり。(・・・の予定でいます。)
もう、動きを付けるところまでいってるとは!自分はまだまだ出来そうにないですがガンバリマス〜。
DXライブラリで乱数(10)が0〜9でなく0〜10というのは知りませんでした〜。
>>821 宣言 int DerivationGraph( int SrcX, int SrcY, int Width, int Height, int SrcGraphHandle ) ;
概略 指定のグラフィックの指定部分だけを抜き出して新たなグラフィックを作成する
引数 int SrcX, int SrcY : グラフィック中の抜き出したい矩形の左上座標
int Width, int Height : 抜き出すグラフィックのサイズ
int SrcGraphHandle : 抜き出したいグラフィックのハンドル
戻り値 −1:エラー発生
−1以外:新しいグラフィックのハンドル
解説 LoadDivGraph、LoadGraph、MakeGraph等で読みこんだ(作成した) グラフィックの一部分を抜き出し、
新しいグラフィックのハンドルを 作成します。
主に一つの画像ファイルに複数のグラフィックが詰まっている場合、
それらを個々のグラフィックとして扱いたい場合などに使用します。
>>822 DXライブラリの関数リファレンスページで探していたにも関わらずこの関数に気付いてませんでした・・・。
これなら>818で考えてた画像を1枚に詰め込んでおいて、その1枚の四辺を2の乗数にし、
このDerivationGraph関数を4回使えば出来そうな気がしてきました。
これでちょっとやってみます。ありがとうございました〜。
俺もはっきりと解ってるわけじゃないけど、今まで俺が得た情報では
「元の画像」が2の乗数のサイズなら
切り出した画像のサイズはどうでもいいみたいだよ。
俺が誤解してるのかも知れんけど、俺はそう認識してる。
もっとも、切り出した方の画像も2の乗数サイズにしてしまえば
誤解か誤解でないかは気にする必要もなくなるけどね。
>「元の画像」が2の乗数のサイズなら
>「切り出した画像のサイズはどうでもいいみたいだよ。
自分もその認識で明日、画像データを作って、プログラムを直してみようと思います〜。
826 :
ひややっこ:2009/08/27(木) 22:19:44 ID:GmqjVtRm
規制明け。
ごめん飽きた。
プレイヤーを動かす前提のところまでは作って、
さてこれから敵AI、盤面評価に取り掛かろうかという土台作りのところまで。
ここまででもクソース晒してるんだから、穴が開くまで視姦して必要なもの盗んでくれ。
レーダーの実装は、レーダー用に別座標を用意するんじゃなく、座標一元管理して
割り算とかで描画ごとに計算して求めるのがスジ。
1日かからない仕事なんで作って見せてもよかったんだけど。レーダー作るつもりではあった。
あと、よくわからんけど固定数の配列じゃなくstd::list持ち込んで人数可変にするとか。
画像の2乗サイズは、3Dポリゴンに貼り付けるテクスチャの縮小表示関連の、ハード寄りの話。
まあDXライブラリもDirectXに依存してるんで無関係では無いんだけど
2乗サイズに合わせれば無駄なく効率的にメモリを使えるというだけで、それを守らなければ
目に見えて遅くなるような事態になるようなものではない。・・・はず。
ミップマップとかでぐぐってみると何かわかるかも。
>>826 お・・・お疲れ様です〜。でも再開の時には何時でもまた戻って来てください〜。
色々頂いたヒントもいつか活用できるようになれるよう修行は細々と続けていこうと思ってます(超ゆっくりですが)。
>782や>825で自分で言った事がまだ出来ずの状態・・・orz
一応822氏の関数で画像データ読み込みの関数は書き直し、座標の初期化関数はいらないかもしれないので保留。
レーダーのクラス内にviewという名前のメンバ関数でも用意して表示しようかなと思ってるけど、物凄く作業が遅いので完成予想言えずな状態・・・orz。
レーダー画像読込、表示位置初期化、描画の関数を書いてコンパイル。
ヘッダファイルの書き忘れ、関数の定義と宣言での変数の個数不一致、メンバ変数のアクセス範囲間違い、
グラフィックハンドル4個欲しかったのにgh[3]と定義してgh[0]〜[3]あるような思い込み間違い。(gh[4]で定義したら直った。)
その他色々直してコンパイルは通ったものの、
1.選手を動かすとレーダーのフィールドが微妙に動く。
2.レーダーの点が1個しか出なくて、しかもボールが表示されない。
という現象が残ってるので、ゆっくりと考える・・・予定デス。
あてずっぽな勘
>1.選手を動かすとレーダーのフィールドが微妙に動く。
動き方によるが、除算した時に端数が出て余計な事をしてるのかも。
>2.レーダーの点が1個しか出なくて、しかもボールが表示されない。
全部表示させるつもりが一個しか表示してなかった、とか
全ての点が計算間違いによって一箇所に重なってしまってるか、
一個を除いて画面外に出てしまってるのか、で原因を絞り込むのがいいかも。
>>829 レーダー付きました〜。
原因は、描画する時に指定するレーダーのグラフィックハンドルと選手やボールのグラフィックハンドルの指定が入れ替わっていた事。
レーダーは、自分がコントロールできる選手の動きにあわせて動こうとしてしまい、選手やボールはレーダーの座標左上に全部重なって表示されていた・・・orz
>全ての点が計算間違いによって一箇所に重なってしまってるか、 ← が原因。ありがとうございました〜♪
次は、
>>760で言っていた所を直す予定。3ヶ月以上過ぎて忘れかけてますが、
原因は分かってるのでどのようにプログラムを書くかを考えていく予定〜。
>>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)に向かう」関数に渡して解決。
ボールが動かない問題については、昨日やっと原因に気が付いたけど、正解かどうかは未確認なので、後日の予定。
うpに備えてフォルダをコピーしてそのフォルダと主要なファイルの番号を1つ上げる。
>>831のボールが動かず微妙に振動してる問題が解決。
ボールが画面端に来た時に反射するためのif文の範囲が(0,0)〜(640、480)になっていた。
ボールの初期位置はフィールドの範囲(0,0)〜(1696,1088)での座標(848,544)にしていたので
このif文だと常に条件に引っ掛かりループ毎に向きが反転して、1ループでの微小な移動しかしてない状態で向きが反転するので
振動しているように見えたのが原因。
ボール反転のif文の範囲を(0,0)〜(1696,1088)にして解決!
しかし、今度はボールをどの向きから蹴っても、ボールが右斜め下にしか移動しない問題が発生。
これも運良く解決。
原因は、ボールの移動関数の中で、選手が蹴る瞬間のx、y方向を計算する為の毎ループ更新されてる数値を
呼び出してるのだけど、その数値は選手の移動位置を計算する時にループ毎に更新され、選手のメンバ変数に入力しておかなければ
ならないけど、その計算式が入ってなかった為、x方向、y方向ともに初期値の1が使われ続けていたから。
が、それを直しても何故か動かない。・・・orz
相当悩んだが、ふと「コンパイルされてないのでは?」と思い、フォルダ内のobjファイルを見ると日付が古い!更新されてない?
良く見ると、選手の移動関数は、ヘッダファイルに宣言、定義、オブジェクト(インスタンス?)の生成処理がまとめて記述してあり、
これを修正したのに何も反映されてない事に気付く。(printfDX入れても変化無いのでおかしいと思った。)
結局、このヘッダファイルを取り込んでいるcppファイルをコンパイラ画面で右クリックすると「コンパイル」のメニューが出たので、
これでコンパイルしてからいつもの全体でのコンパイルをしたら動いた!
こちらのスレには久々の出没。エターナったわけではない
PC移行した直後に新PCのマザー死んだり規制巻き込まれたり散々だぜー
クラスの使い方というか便利さがやっと理解できたのでソースを1から書き直す。スパゲティを解消するためでもありより良い処理を実装するためであり
クラス便利すぎワロタ
>>834 問題なく動いたー
ボールか操作キャラを追いかけるように自動でカメラ動かすとサッカーゲームっぽくなりそう
画面外にボール蹴り出そうとしたら跳ね返ってきたww
>>835 PC移行、規制解除おめです〜!
>ボールか操作キャラを追いかけるように自動でカメラ動かす
な・・・なるほど!難しそうだけど次はこれ(↑)を目標にしてみます〜!。
改めて見ると自分の書き込み口調が2ちゃん的になりつつあるような気が・・・orz
それにしても時間の流れのなんと早いこと・・・、作り始めて約2年と1ヶ月半程でこの進み具合では
諦めるのが普通なのかもしれないし、続けるべきか悩むところ。
>836の課題はまだ出来ず・・・orz
カメラ(画面)の中心がボールを追いかける方法でやろうとしたのに対し、カメラ(画面)はボールのある方向とは異なる方向に向かってしまう。
>カメラ(画面)の中心がボールを追いかける方法でやろうとしたのに対し、
>カメラ(画面)はボールのある方向とは異なる方向に向かってしまう。
カメラの位置ってのはカメラの位置として独立したものでしょう?
そのカメラの座標に、プレイヤーが操作したキャラクターを中心とした座標を入れるか、
ボールを中心とした座標を入れるか、の違いでしかないでしょう?
もしそこが正しくできているのに違う方向に動いてるのだとしたら
それは入れる座標そのものが間違ってるとしか考えられません。
ありがちなのがプラスマイナスを間違えたとかそんなのだと思いますが……。
>>834でうpした時のデータで作業していて上書きしてしまった事に気付く・・・orz
>>838 助言ありがとうございます〜。
1日おいて目を皿にしてソースを見たところ、間違い発見。
>それは入れる座標そのものが間違ってるとしか考えられません。
↑どうやらこれが原因のようです。
ボールの座標とカメラ中央座標の距離を出す式の中でカメラ中央座標はフィールド全体で見た座標にしなければいけなかったのに、
フィールドでのカメラ左上座標(cx、cy)+(フィールド横幅/2、フィールド縦幅/2)になっていた。
正解は、
フィールドでのカメラ左上座標(cx、cy)+(カメラ画面横幅/2、カメラ画面縦幅/2)
実は、この修正だけでは何故か画面がぶるぶる振動するという不具合が出たけど、
ボール座標とカメラ中心座標の距離(絶対値でみる)が0.001(←適当に決めた数値)より小さくなったら、
ボール座標 = カメラ中心座標 ということにしてみたら直るという謎。
ここで区切りのうp
ttp://gamdev4.hp.infoseek.co.jp/cgi-bin/up/No_0054zip.html
テンプレートを覚えた!
SUGEEEEEEEEEEEEEEEEEEEEEEE
型自由って何てチート
多態勢によって適切なオーバーロード関数が呼び出される!
その分余計にメモり食うけどねー
>>834の時点でボール分裂するよ
って言おうとしたら、>>SGGK氏じゃなく>>せいれい氏だった(笑)
テンプレートやオーバーロード・オーバーライドは意味不明バグの温床になるからなあ。
理解はしててもイマイチ使う気になれない。
テンプレ推奨のSTLとかは使うけど。
ゲームプログラムならば、ソースがキレイになるならメモリや実行速度程度は許容範囲。
>>842 なるほどー、やっぱりデメリットもあるのね
>>843 SGGK氏は気づいてるのかな
強力で便利な機能だけど危険だよなぁ
STLはやりたいことが微妙にできそうに無かったから似たようなのを自作
一年前のCを始めたころのソースはひどくてとても手直しできそうに無いから
1から作り直す羽目になってるwww整理は大事だww
>>840 ありがとうございます〜。これは気付いてませんでした。(汗;)
>左の壁にボール押し込んで
↑このコメントがヒントになってるような気がするので調べてみます。
画面に出るオブジェクトの移動計算と描画を別々の関数にしたときに何か見落としがあったのかもしれません。
原因がわかるまで日数かかりそうな予感・・・orz
2、3日しか経っていないような気がするのに、実際は10日以上過ぎてた。orz
ボールの表示は1個になった感じ。
自分のプログラムのメインループは順序がおかしいかもしれないけど次のようになっていて、、
(1)カメラ画面の座標計算
(2)カメラの見ている範囲にあるもの全ての描画
(3)選手の座標計算
(4)ボールの座標計算
(5)ゴールの座標計算
(6)レーダーの描画
原因は、(4)のボール座標計算の中に残っていたボールの描画関数を消し忘れていたから。
(4)の中で描画されたボールの座標はフィールド全体の座標でしめす位置に描画されてるので、
(2)のカメラで見ている範囲(640x480)の外の位置を示しており、実は2個のボールを描画していたにも関わらず、
(4)の描画は見えなかった。
でも、カメラが左に動き、左の壁に近付くとカメラで見た時の座標値とフィールド全体で見たときの座標値が同じ値に近付いてきて
(4)で描画していたボールもゲームの画面に収まってしまうので描画されるのでボールが2個表示になっていた様です〜。
今日は画面の切り替え(スタート画面、ゲーム画面と終了画面)が出来る様にしようと思ったものの、
やり方をすっかり忘れてしまってる(忘れるのはものすごく早い)ので、
14歳からはじめるC++の該当部分を読むつもり。(今日はあと30分くらいしかないorz)
画面の切り替えは元々参考にしていたソースに残っていたのに当時は画面遷移処理があるとソースが理解しにくいので削除してしまっていた・・・orz
結局それをまた元に戻そうというのは時間の無駄だったかも・・・。
本当はこのスレで一時期いろんなHPで調べてた「状態遷移の考え」を使いたかったけど、
14歳ソース復活の方がたぶん作業が早く進むと思うのでこちらを選択。
もちろん「状態遷移」についてもちょこちょこ時間つくって復習するつもり。
キーコンフィグ関係をざくっと組んだー
ここに来て初めてビット演算を勉強
849 :
SGGK:2009/10/29(木) 00:23:49 ID:WOQZyTTw
パソコンが不調でコテハンの番号が見つからず、復帰に時間がかかりそうなので生存報告〜。
「ビット演算 ゲームプログラム」で検索!
難しそうなページがいろいろヒットしましたが、ひとつの変数でいろいろな
状態をチェックするテクニックみたいなものかも・・・。
いまやろうとしている「状態遷移」での判定にも応用できそうな感じ。
・・・と言ってる状況なので実はまだ画面の遷移はできてませんorz
時間の過ぎるのはアッという間だけど、今はまだあきらめないつもり。
すっかり書き込みなくなったけど、やってるかな〜。
>>850 久々に来たかと思ったら違ったw
もう辞めちゃったかもね。。。
俺は生きてるぞー
他の人は知らんww
853 :
436:2010/01/17(日) 02:33:13 ID:n4iFgyhw
すいません、すっかり怠けとります・・・俺は駄目な人間です
ストーリーや設定のアイディアだけが溜まっていく駄目進行・・・
パソコンの不具合はなんとかなり、コテハン番号も無事見つかった。
書き込み規制が昨年末から続いていたけどやっと解除されたので久々に書き込み〜。
>>850 かなり休んでしまいましたが、まだ諦めてはいないです〜。
>>851 諦めてはいないけど、これ以上先にいけるか微妙に思ってます・・・。
>>852 お久しぶりです〜。今年もお互いに完成を目指していきましょ〜!!
>>853 お!?・・・お久しぶりです〜!!。こちらも同じような感じです〜。
一応まだ1月だし、自分としては不可能でもいいから大きな目標を立ててなんとか細々と続けてみよ〜と思ってます。
プログラムなんて小さな目標の積み重ねだと思うけどなぁ。
「画像表示させてみよう……できた」
「動かしてみよう……できた」
「操作してみよう……できた」
「動ける範囲制限してみよう……できた」
「背景つけてみよう……できた」
(中略)
「ぎゃーいつのまにか膨大に〜! 最初の頃に作った部分どうなってるか覚えてねぇ!!」
おお、意外にも(ごめんw)みんな生きてる
久々に自分も何か作ろうかしら
>>855 書いた直後に自分も(大きな)は(小さな)だよな〜と思いましたw
まずは小目標として、昨年止まっていた画面の状態遷移の実装を今月中に出来るよう急ごうと思ってます。
>>856 自分は昨年末頃から制作継続が微妙な感じでしたが、なんとか戻ってきましたw
たぶん制作カモ〜ン!だと思いますよ〜。
なんとなくぼちぼちやってる。
タワーディフェンス系って、勝利の快感が薄いんだよなあ。
ボロボロになるまで攻められて虫の息でも守りきったという事実への達成感がどうにも実感できない。
タワーディフェンス系といえば過去にコマンド&コンカーみたいなゲームをプレイしたことがあって、
資源採掘、武器生産、建築、防衛、侵攻、その他などのバランスを取るのが難しくてなかなか勝てなかった記憶があります。
こちらは昨年のパソコン不具合でソフト全部入れ直したのがうまくいってないようで、
問題無かったはずのプログラムがなぜかコンパイルエラー・・・orz
本(14歳シリーズ)の設定見直してコンパイラがDXライブラリを認識してくれるようにはなったみたいだけど、
ある変数が初期化されてないというエラーが残ってて、これをどう初期化すればよいのかわからずSTOP。
適当な数字入れると画面がものすごくちらついたり、画面が上下に2分割して画像が入れ替わったりする。
この変数については、いままでは初期値入れてなくてもエラーにならなかったのに・・・orz
とりあえずソースを全部プリントアウトして布団に入る時に少しずつソースを読んでなんとかするつもり。
コンパイラは通るようになったけど、画面の振動は直らず・・・orz
この症状は直っていたと思ってたけど、そうではなかったらしい。
原因としてはカメラがその中央にボールを見るように移動するところでカメラの中心座標とボールの座標を元に次のフレームでの座標を計算するための
sin、cosを算出する時に使うカメラ中心〜ボールの距離(←ちなみにこれが昨日言ってた初期化してなかった変数値)が
0に近くなるときに四捨五入でもされて座標が1ドット分振動してるではと考えてた。
なので距離が一致してもおかしくないほどに「カメラ中心〜ボールの距離」が小さくなった時には
座標の更新をしないようにしたにも関わらず振動する。
まぁ、そのうちわかるかもしれないということにして、今度こそ画面の遷移に移ろう〜!!。
マルチスレッドについて勉強中
これは面白そう
こ…こちらの方はあまり進んでなくて昨年から遷移のやり方を時々色々調べてたけど理解できそうにないので、
結局if〜thenでやりそうな予感デス…orz
エクセルで遷移図もどきを一枚だけ書いてみたところ。
解らない事にいつまでもこだわってたら前へは進めないよ。
もちろん困難を乗り越えていく事で成長するわけだから、そういう姿勢は大事だが、
今はそんなレベルの話じゃないでしょう。
赤ん坊が歩こうとするのに、先に右足を出すか左足を出すか悩んでるみたいなもんだ。
た…確かにそのような気がします。
とりあえず現状で出来るやり方でトライしてみます。
今日は遷移に使う画像を2枚作成。
私も修行させてもらいますね
どうぞどうぞ
マルチスレッドおもしろい
調子に乗ってバックでBGMデータ1000個読み込ませたらメモリ死んだ
原因らしきところはわかってきた感じだけど、まだバグは取れず。
画面の状態が切り替わった時に必ず一度だけ(例えばゲーム画面からゲームオーバー画面に切り替わる時)
starttime = GetNowCount();
を実行し、その後はループを繰り返すたびに例えばゲームオーバー画面中のプログラム内では、
if((GetNowCount()-starttime )> 5000){
setGameState(GAME_TITLE);
}
を行いifを満たせばタイトル画面に移るはずなのに上記2つのstarttimeの中身が
全く異なっていて2番目の方のstarttimeにはものすごく大きなマイナスの数値が入っていたため、
ifがすぐに満たされてしまいゲームオーバー画面が瞬間的にタイトル画面に切り替わってた・・・orz
人によってぜんぜん違う方法で実装してて新鮮だ
俺の場合はメインループを60fpsで回してそこから各画面にとんでるから5秒カウントするなら毎フレームごとにカウンタを++して300以上なら画面遷移呼び出しとかになるかな
なるほど!そういう方法もありますね。
ループ時間を精密な同一時間で制御する技をまだ自分が持ってないので、現状での導入は難しいですが、
どうしても今のバグが取れなかったら、大体5秒みたいな感じでもいいのでカウンタ式でやってみます。
バグの方はまだちょっと…な感じ。
変数のスコープ(有効範囲)をどこかで勘違いしてるんだろうけど、それらしき記述が見当たらず…orz
デバッグ作業に「思い込み」は厳禁ですぜw
久々にこんな時間まで粘ってしまったけど、なんとかバグが取れました。
>>871 まさに「思い込み」でした…orz
原因は、変数のスコープというよりは、基底クラスと継承クラスの両方で同じ名前の変数starttimeを宣言していた事。
自分のプログラムは基底クラスにメインループ関数やsetGameState()が定義してあって、
それを継承したクラスからもそれらの関数がそのまま使えるんだけど、
メインループ関数の中で動く関数、つまりタイトル、ゲーム、コンティニューの処理に関する関数は、
継承クラスで定義されていて、それらの関数の中からもsetGameState()を呼び出す使い方をしてる。
たぶん、基底クラスにあるメインループ内で呼び出した時のsetGameState()は基底クラスのstarttimeを見ていて、
継承クラスで定義した関数内から呼び出すsetGameState()は継承クラスのstarttimeを見ていたのではと考えてみた。
とりあえず、継承クラスで宣言していたstarttimeを消したら動いた。
という事でようやくUP。
なぜか画面振動が直っていて、画面が上からスクロールしてくる現象が出てます…orz
ttp://gamdev4.hp.infoseek.co.jp/cgi-bin/up/No_0083zip.html
プログラミングもできない
超初心者でも参加していいんですか?
参加するのはいいけど、ここは別に住人が親切に教えてくれるスレじゃないよ?
あくまで自分が自分の力で修行するだけ。
俺みたいな部外者はその経過を見て、ただ茶々入れるだけ。
修行するぞ修行するぞ修行するぞ
とりあえずC言語やってみます
こんばんは!
自分は過去に何度か挫折してて、今回だってどこまでやれるのかは自分でも見えてないです…orz
なので、お互い気楽にいきましょ〜!
(次の目標)
ゲームの最低限の流れの部分作成に挑戦の予定。
とりあえず簡単なイメージ図を書いてから始めるつもり。
やっと掲示板につながるようになったみたい。
>>874 どうもです〜!(スルーっぽい形になってしまったかのように思えて気になり戻ってきました…)
自分はいつ躓いてもおかしくない状況ですけど、やれるだけ頑張ってみます〜!
次の図は出来た。理由が言葉に出来ないけど実装が出来そうにない予感。
もう少し考えてみて、たとえ出来なくても図はUPするつもりです〜。
878 :
436:2010/03/03(水) 03:06:40 ID:onEVT9cS
どさくさに紛れて規制解除されてた
>>872 バグ取り乙です。上からスクロールはそういう演出かと思ったら偶然だったのかw
>>875 自分も去年始めて、今C言語の復習やってる様な亀初心者ですが
お互い頑張りましょう
>>875 がんば(・∀・)
ずいぶん前に作っていた双方向リストを実際に動かしてみたらバグだらけでワロタ
とりあえず見つかったバグはとれたけどまだ何か潜んでいそうで恐ろしい
今日は試合時間表示処理の修正に挑戦。
今までメインループ関数の最後の方に命令文をズラリと並べてたのを一つの関数にまとめてみた。
今回の定義にはvirtualを付けなくても良かったのに間違えて付けてコンパイルしたら、
画面が完全にフリーズしてしまい、パソコン再起動…orz
皆さんは作ったゲームとかをどこかに掲載してるんですか?
>>881 こっちはブルースクリーン
あんまり関係ないかもしれんがデバッグ始まった瞬間になったから怖い
>>882 まだ掲載とかできるレベルじゃないなぁ
>>882 自分はこのスレでUPに使ってる掲示板で全部です〜。
>>883 OSの動作にまで影響していそうなバグが出た時は冷や汗ものです〜。
>>884 サッカーゲーム完成→サイトオープン!!に向けて道は険しいけど、これからも頑張ります〜!
今日は選手のデータ初期化を修正。
今までは、縦に
x=1;
y=5;
みたいに250行位書いてたけど、これでは今後の改造(選手の攻守座標初期値の入れ替えとか)が大変やりにくそうなので、
色々考えてみた。配列なんかだと={(1,2),(5,7),…,(1.5)}みたいに一括代入が出来てた記憶があったけど、
C++では見当たらない…orz
結局、縦に並ぶ代入命令を全部ひとつの関数にして、選手22人分を並べて
22行程度に収めてみた。
fieldplayerlist.clear();//←FieldPlayer型オブジェクトが入るコンテナクラス?fieldplayerlistを空?にする処理。
FieldPlayer *fp = new FieldPlayer();//一時的に変数のセットを代入するための仮のFieldPlayer型オブジェクトを生成する。
fp->dataSet(32,32,30,30, ALLY,FW,636,408,1,1,&fieldplayeranim,0,&goxymover); fieldplayerlist.push_back(*fp);
//↑仮のFieldPlayer型オブジェクトに関数dataSetで変数を1セット分代入し、直後にそのオブジェクトをfieldplayerlistの要素の末尾にpush_backで代入する。
…20人分略
fp->dataSet(32,32,30,30,ENEMY,GK,1696- 50,544,1,1,&fieldplayeranim,0,&goxymover); fieldplayerlist.push_back(*fp);
delete fp;
のような感じ。
こ…これでネタがほぼ無くなってしまった…orz
昨日のデータセット関数はすぐには動かなくて、最初に動いた時には選手の数が半分くらいだった。
この方法を諦めかけてた頃にデータセット関数の中の記述が以下の様に間違ってる事に気付いた。
pos_x=pos_x0;//pos_x0は関数の引数
pos_y=pos_x0;//pos_x0は関数の引数
正解は、
pos_x=pos_x0;//pos_x0は関数の引数
pos_y=pos_y0;//pos_y0は関数の引数
原因は=pos_x0;をコピペしてxをyにした方が早く書けると思い、コピペした後にyに直すのを忘れていたから…orz
次にやろうとしている事は、ボールの移動関数の書き直し。これもややこしくなりそう。
俺も参加していいかな?
簡単な3DのRPGを作ってみたい。
どうぞどうぞ
3Dの時点で簡単じゃない気もしてくるけど
ゲーム内ウィンドウとか文字列云々の制作。
もうちょっと作れば一番楽しいゲーム本体部分の制作にとりかかれそう
889 :
887:2010/03/16(火) 17:01:23 ID:PauBuwXO
890 :
887:2010/03/17(水) 09:26:15 ID:4WiRN6jG
どうぞです〜!
自分もいつかは3Dに挑戦したいと思ってるので期待してます〜!
ボールの移動関数書き直しはバグが40個近く出てしまい、まだまだ取れそうにない状態。
892 :
887:2010/03/18(木) 00:46:51 ID:0fv2BQKl
HP、色々参考にしてみます〜。
ボールのオブジェクトが持っているデータ、例えばxにアクセスするときに
getx()という関数作っていたけど、変数の個数分の関数を作るのが
結構大変な作業なので、xを外部から自由にアクセスできるようにしてデータアクセス用の関数を
なくそうとしてみた。例えば、
if(ball.getx()<0) ball.dx=-1*(ball.dx); を
if(ball.x()<0) ball.dx=-1*(ball.dx); にすればいいかなと思ったら以下のメッセージ付のバグが発生。
error C2064: 0 引数を取り込む関数には評価されません。
このメッセージの意味がわからなくてネット検索しても理解できなかった。
しかし改めて良く見ると
if(ball.x<0) ball.dx=-1*(ball.dx); であったと気づき、コンパイラも通った。
単なる()の消し忘れだったとは…orz
894 :
887:2010/03/20(土) 14:51:43 ID:FMPMmQsj
モデル表示でテクスチャ表示もできるようにしようとすると
メッシュデータとかテクスチャデータとかのリソースの管理が煩雑になるなぁ。
リソース管理周りからしっかり作らないと厳しそうだ。
895 :
887:2010/03/20(土) 20:16:13 ID:FMPMmQsj
896 :
887:2010/03/21(日) 01:30:40 ID:fya3TTIM
実は終了時に永久ループになってた!!
直して上げ直した。落とした人ごめんよ…
こちらはボール関係で色々作業中〜!
今までのボール移動処理はボールクラスのmove関数の中で選手とボールのあたり判定が「真」であり、かつxキーが押されている場合に
ボールのx、y座標の更新が開始され、30ループの間、微小な移動量dx、dyをx、yに加えていくやりかた。
でもボールのクラスの中で選手22人とボールのあたり判定をしたり、選手のキー入力をチェックするのは
なんとなく不自然でわかりにくい感じがするように思ってきたので、それらの処理を選手関係のクラスにカット&ペーストしてみた。
しかし、そうすると今度は選手のクラスを作る側がボールクラスの移動アルゴリズムまで把握していなければ、プログラムを書けないような書き方になってしまうので、
30ループ座標更新するところは、kicked(dx、dy)という名前の関数にして、これをボールクラスのメンバ関数にして、
選手クラスでxキー押してボールとのあたり判定が「真」なら、ball.kicked(dx、dy)を実行するような感じに改造中。
ゲーム内のメッセージウィンドウとかその他オブジェクトまわりの処理をうんたら
自機も敵も弾もエフェクトも背景、ウィンドウも全部同じ型のクラスを継承しているから面白い実装ができたりややこしくなったり
描画関数や移動関数が一つで済むのがうれしい
メッセージを表示するウィンドウをなめらかに表示させようとして発生したリスト関連のバグの修正に二日費やした。双方向リスト怖い
899 :
887:2010/03/22(月) 21:48:33 ID:A/K5vhYE
なんとなくスキンメッシュの概念が分かった。
スキンメッシュは自前とシェーダーどっちでやるのがいいんだろうか。
シェーダーが動かないPCのことも考えて自前にしようかな。
こちらも少しだけどやってマス〜!
多少変更があったけど、kick関数実装終了。
選手データを管理するクラスから直接ボールデータにアクセスできないのが後になって分かり、
ボールデータクラスのオブジェクトをメンバに持つボールコントロールクラスのメンバ関数にkick関数を定義した。
という具合に自分でもソースをあまり良く理解出来ていないため作業効率がよくない感じ…orz
次はゴールのあたり判定をやる予定。
901 :
887:2010/03/23(火) 22:09:14 ID:qWz/PVJb
3D動いてるの確認できました〜!(呼吸してるみたいな感じ)
こちらの作業は進まず…orz
今日の進捗は、いままで線を引く命令で書いてたゴールの絵をやめて
グラフィックにしようかなと思ったところまで。
903 :
887:2010/03/25(木) 10:56:44 ID:SnoPjuNE
モデルとかのリソース作りが面倒だ…
今週はblenderの使い方の勉強と
リソースの作り方を考えることで終わりそう…
ゴールの絵(単なるコの字型だけど)を画面に表示させようとしてる段階。
いままでブラックボックス同然にしていた表示処理の中身を完全に忘れてるので、
今後の事も考えて今この段階で思いだそうとしてるところ。
905 :
887:2010/03/27(土) 00:39:15 ID:PrpcgIm6
ttp://github.com/happana/srpg/downloads SRPG version 0.0.4
右クリックでモーション切り替えができます。
今のところ、アイドル・走り・パンチの3つ。
モデルを作ってしまえばモーションを作るのは楽なことが判明。
2Dでアニメーションを描くことを考えれば、やっぱり3Dにしておいて正解だった。
さて、次はどうしよう。
戦闘画面を作ろうかなぁ。メニュー描画が難関だ。
おお、スゴイ
俺もSDL+OpenGLでやろうと思ってるから励みになる
よくよく見てみたらそこかしこからデキる人臭がしてワロタ
俺のような底辺とは地力の違う人のようだ…
>>898 「シューティング 双方向リスト」で検索〜!
弾幕の管理に使ってるらしいところまで分かったものの、今の自分に実装方法を理解するところまでは行けず…。
サッカーゲームでも必要な場面が出てきたら挑戦してみます〜。
>>905 か…開発スピード速いですね〜!
>>906 作品をうpされる日が来るのを待ってます〜!
>904で言ってた表示処理の中身がまぁまぁ分かった感じなのでここで区切り。
なのにゴール表示はまだ出来てない状態…orz
909 :
887:2010/03/28(日) 18:08:24 ID:I5+++/+C
>>909 ソースが汚すぎてモチベーションが下がる事もあるので注意。
まぁ結構出来る人っぽいからそこまで酷くなる事はないのだろうけど。
それにしても早いな
SDLもOpenGLも初めてだと言ってるけど
こうもサクサク進められるって事はプログラミング自体は素人じゃないだろう。
ゲームプログラミングは初めてだとしてもそれ以外でかなり慣れてるんじゃないかな。
でなければかなりの勉強好き。
出来るヤツが妬ましいぜ
俺もがんばろーっと
>>909 武器の切り替え、自分のPCでも動きを確認できました〜!
ゴール表示は結局失敗の模様…orz
コンパイル通って直後に現れる画面はすでに真っ黒表示で、
例外がどうのこうの…というメッセージが出て終了。
疑わしい部分を次々とコメント化してコンパイルして動けばそこがバグの発生位置のはずと思い、
色々やってみたものの、結果は同じ。
どこでerrorですというメッセージが出てくれないバグなのでお手上げの予感。
おそらく来週末にひとつ前のバージョンからやり直す事になりそう…。
書き直す前の内容をバックアップしておいて助かった〜。
例外がどうのこうのってのはわかんないけど
強制終了するってのは
・配列の添え字がオーバーしてる
・0除算
のどちらかくらいじゃないかなぁ。
文字列が大体自由自在に描画できるようになった。 コンフィグ関連まとめたら次はゲームの中心部分だー
>>913 例外が出たら大体どこで発生したか教えてくれそうな気もするけど…
エラー内容でググったりしてみるとわかったりすることもある(・∀・)
>>887の人はきっと出来る人だ…
俺みたいなハムスターとは実装速度が違う
>>914 どうもです!当たってみましたが見つかりませんでした〜orz
>>915 ググってみると出ては来るのですがちょっと自分のバグ状況とは違うみたいで、自分の理解を越えているような記事ばかりという状況です。
来週末からやり直すと言ったけど、今日から少しずつやり直してるところ。
すると今度は今までは全くなんでもなかったところがERRORになって止まってしまった。
画面にassertionがどうのこうのと出てたので、とりあえず検索してみたら
これまた書いてることが難解過ぎて、それにその問題が紹介されているHPと
自分のソースとは当然別物なので、さらに解らないという状況。
でも、その文中にコンパイラのデバッグモードをリリースモードにして云々という記述を見かけ、
自分のもデバッグモードだったのでリリースモードにしてみたら、assertionがどうのこうのというバグメッセージが
出なくなった。なんとか出来たもののかなり不安な感じ。
>>916 アサート(=assert,assertion)は、「プログラムがここを通る時には、この条件を満たしているはず。そうじゃなきゃおかしいですよ」っていうトラップコードみたいなもの。
つまりそれに引っ掛かっているということは、何かプログラムに問題があるという事。
ちなみにリリースビルドではこの処理は負荷にしかならないため、普通はスルーする設定になっている。
が、問題は依然として残っているので、ちゃんとデバッグビルドでアサートが出ないようにデバッグしないと、
異常なままプログラムが走って、最悪の場合どえらい事になる。
追記。
上でサラッと「トラップコード」って書いたけど、
これは単純に「罠」という意味で使っただけで、そういう言葉がある訳ではないです。
ググって混乱してもらっても困るので念のため。
紛らわしい説明で申し訳ない。
919 :
887:2010/03/30(火) 02:48:09 ID:n0Y7jW06
とりあえずマップを歩かせようと妄想。
マップとの当たり判定は難しそうなんで、今回のプログラムに合わせて簡略化する。
ジャンプできない仕様なんで、歩けるところだけポリゴン張って、
ポリゴンとキャラの真下に伸びる線分との当たり判定だけとる事にしてみる。
マップ毎にモデルは描画用と当たり判定用の2つを作る予定。
後、キャラ操作を妄想中。
>>917,918
アドバイスどうもです〜!アサートについてはその後もググって調べてみましたけど、やっぱり自分にはあまりにも難解過ぎたようです。
でも、そういうのがあるんだな〜という雰囲気のようなものはおかげさまで伝わりました。
もう一度コンパイルするとやっぱりすぐに止まって、vectorと書かれたタブ画面に意味不明なソースのリストがずらりと現れ、その中の何行目で
ストップしたというような記述が出るけど、そのリストは自分が書いたものではないし、正直これは降参だ〜という感じ…。
が!?ひょんな事から、昨日のバグメッセージが出なくなった模様。
>>919 自分も実は今、当たり判定で悩んでて、バグまで出してしまってます〜!
コンパイラの上に「ソリューションのリビルド」があったのに気が付き、なんか以前にも困った時にこれを実行した事があったような記憶があり、試してみたら昨日のバグメッセージが出なくなった!?
それで早速、バグのあったソースの修正箇所を今回のバージョンのソースに少しずつコピペしては、コンパイルを繰り返していき、バグが出ないか確認しながら作業していたところ、ゴールの表示をさせるところで躓いてしまう…orz
自分のプログラムはカメラの枠(640x480)や選手、ボール、ゴールオブジェクトがワールド座標的なサッカーフィールドの中を動いていて、
カメラの枠(640x480)とのあたり判定を行い、当たっているオブジェクトだけを描画処理(フィールドは見えてる部分だけを切り取る感じ)するアルゴリズムなんだけど、
ボールを蹴りつつ画面をスクロールさせていき、「そろそろゴールが見えるぞ!」というところまで来たら、強制終了してしまう…という状況。
くどいけど、配列の添え字がオーバーしてる気がするけどなぁ。
>>921 ちなみに自分もそうだと思う。
アサートした時にバックトレースとか見てないのかな?
VCだよね?デバッガ使えないとか?
924 :
887:2010/03/31(水) 09:31:07 ID:7cJ29iPq
>>920 VC++EEなら止まった時に、
呼び出し履歴のタブで知ってる関数なりメソッドに移動、
変数とかにマウスカーソルを当てて変数のチェック。とかできるよ。
925 :
887:2010/04/02(金) 09:32:56 ID:hzdsXNXW
めんどくさいなら「ここまで作った!」って書き込みだけで十分だと思う
しかし凄いな、もう3DRPGの原型が出来てるw
これはプロの犯行
928 :
887:2010/04/04(日) 12:56:13 ID:lPdlCBa6
マップの切り替えを実装。
ttp://github.com/happana/srpg/downloads SRPG version 0.0.7
ちょこちょこ上げるのは面倒じゃないんだけど、
変わり映えしないと見てくれている人が飽きるかなと思って。
後は github の容量が気になることくらい。
ちょっとでも反応あると励みになるんで、上げていきます。
マップ切り替えは難しい。
マップ切り替えポイントとの当たり判定。
複数マップ管理(リソース読み込み・捨て等)、
もしかしてイベント処理もまとめれるんじゃないかという妄想による
無駄なクラスの肥大化等。
次は戦闘画面でも作ろうかなぁ。
俺が世界樹で遊んでる間にどんどん進んでいくなw
世界樹オモシロイ
930 :
887:2010/04/06(火) 01:24:08 ID:IqRudg/u
画面切り替えの効果を作った。
フェードイン・アウトとワイプイン・アウト(上下左右の方向)
色々と処理の流れを考えないといけなくて難しい。
ゲームってこういう処理の間の表現が重要なんだと思った。
A を押したら1から2に変わる。みたいな処理も
普通のプログラムなら即、1から2に変えればいいと思うんだけど
ゲームだと1から2に変わる様子を見せないといけないというか。
右押したらカーソルを右に移動させるってのにも
プログラム的には移動先の座標をそのままつっこみたいんだけど
ゲームだとわざと移動途中の処理も書かないといけないとか。
この処理の間の表現ってのが
ゲームプログラミングの難しいところなんじゃないだろうか。
931 :
887:2010/04/08(木) 02:36:53 ID:OGaBCtim
戦闘画面を作りたいけど、フィールドマップとバトルマップの管理など
色々と悩ましいのでちょっと寄り道。
TTFな文字列を描画するために作業中。
色々と面倒な感じなので事前に使用する文字をテクスチャに描きこんで
そのテクスチャを使用して文字を描画するようにしてみようと思う。
932 :
名前は開発中のものです。:2010/04/08(木) 16:34:34 ID:Zu3iQc3M
期待
漢字とかも画像にするの?
文字描画に関してはまだ調べてないからどんな風にやるのか気になる
934 :
887:2010/04/08(木) 22:22:40 ID:OGaBCtim
今回やろうとしているのは
1)使用する文字を列挙して順番を振る。
2)順番に従ってテクスチャに文字を描く。座標データも一緒に出力。
例えば、ゲーム中で
ID:1「こんにちわ」
ID:2「こんばんわ」
ってテキストを使用する場合なら
1)で['こ','ん','に','ち','わ','ば]って配列になって
2)で['こ','ん','に','ち','わ','ば]をテクスチャに描く。
0番は(0,0)の座標,1番は(20,0)の座標みたいなテクスチャの座標も出力。
テキストは
ID:1 -> [0,1,2,3,4] (上の配列の添え字です)
ID:2 -> [0,1,5,1,4]
みたいに変換してゲーム中は2)の座標データと番号を使ってテクスチャを
描画って感じにしようと思ってます。
30秒勇者の人の三十人勇者ってゲームのデータもそんな感じになってたんで
参考にさせてもらいました。
936 :
887:2010/04/09(金) 01:24:09 ID:ecdSoKKW
もう日本語表示、す…凄い進捗速度な感じ。
こちらは例のバグがどこで出てるのか判明。
グラフィック表示の処理関数のところで止まっている。
しかし、そこを見る限り問題はなさそうだが、何度か眺めている内に画像表示のループ回数を設定する数値が
10にしたはずが1になっているのに気付き、よくよく調べると、
メインループで各オブジェクトの画像データをロードする関数を一括して呼び出す処理の部分で
ゴール画像のロード関数だけが呼び出されていなかった…orz
それでアサーションとかがひっかかっていたのかもしれない…。
そんな間違いしてると思わなかったから発見に異常に時間がかかってしまった…。
コンパイラに関するアドバイスが効いてどうもです〜みたいな感じ。
次はゴールのあたり判定について検討の予定。
コの字型のゴールにボールが入ればゴールの判定、それ以外はボールが跳ね返るようにしようと思うものの
かなり難しそうな予感。
規制解除(・∀・)
キーコンフィグをぼちぼちつくる
ついでに文字を管理するクラスを改良
もうちょっとでモチベが上がるSTGゲーム本体の部分にとりかかれそう
規制解除オメ!(←2ちゃん風に)です。
こちらは進捗0でゴールは早くても来週になりそう。
ゴールとボールのあたり判定とゴール(得点)の判定を同時に考えるとこんがらがりそうなので、とりあえず前者の判定の実装だけを考えてみる予定。
940 :
887:2010/04/13(火) 02:01:27 ID:9mjTs9U0
ジョイスティック対応、リファクタリングと見た目には進捗なし。
ここまで適当にコーディングしてきたツケが回ってきた感じ。
そろそろ戦闘画面を作る。
こちらは当たり判定に「線と線のあたり判定」が使えそうだ(ゴールは3本の線で出来てるともいえるから)と思い、検索してみたけど内容がよく理解できず。
どうやら数学の素養が必要なのかもという気がしてきたけど、今からそれをなんとかするにはかなりの時間を要するのではと悩んで終了。
判定できる理由が理解できなくてもプログラムに書けそうならブラックボックス的にやってみるしかないかもしれない…orz
942 :
887:2010/04/14(水) 02:04:03 ID:g5ssTNuB
>>941 ゴールを矩形、ボールを点と考えるのはどうですか?
ボールの速度が速すぎると突き抜けたり
横からねじ込めたりしてしまうけど。
>>942 どうもです〜!
そうですね。改めて考えてみるとゲームの処理の流れを作る事の方が優先事項だと思うし、ボールがゴールに入ったかどうかの判定の実装は今は諦めて、
ゴールはコの字でなく矩形と考えて、ゴールにボールが当たったら得点したという事にしてやってみようと思います。
また色々バグが出ると思うのでプログラムをコピーして、プログラムファイル名の数字をひとつ増やすところまでで今日の作業終了。
944 :
887:2010/04/15(木) 01:33:00 ID:4v9noV6V
画面の動き、確認できました〜!
こちらも頑張ろうと思い、コンパイラでソースを開いてみたものの、
ちょっとでも見てないとすぐ中身を忘れてしまう自分。
土日があっても何ともいえない状況だけど、まだ諦めないつもり。
946 :
887:2010/04/16(金) 00:42:02 ID:VnlBj8j6
半月も経っていないのにマップデータの作り方を忘れていてびびった。
ソースコードにコメントを、ってのはよく聞くけど
データの作り方とかもドキュメント化しておかないとやばそう。
自分はソースを1日見なかっただけでも中身を結構忘れてしまう方なのでいつも苦労してます。
以前にプログラムの構造を図にしてみたけど、中身もだいぶ変わってしまったので、
また区切りが付いたら図にしてみようかな〜と思ってます。
こちらの進捗についてはやっぱり1日単位ではなかなか進まないのが現状な感じ。
ゴールの得点処理の実装の前に時間の経過に合わせて前半、ハーフタイム、後半の状態遷移的な
処理をするためにif文でそれを書こうとして途中までの段階。
948 :
887:2010/04/17(土) 02:26:08 ID:cElL6nxn
戦闘時の攻撃を作ろうと思って長考。
武器ごとにモーションって変えたいですよね。剣と槍じゃ全然違うモーションになりそう。
全武器種ごとのモーションをキャラクタデータに入れちゃうと
キャラクタデータが大きくなりすぎるので困りそう。
後、モーションの呼び出しも大変になりそう。
if(剣装備中) {
chara->start_motion(剣攻撃モーションID);
}
else if(槍装備中) {
chara->start_motion(槍攻撃モーションID);
}
みたいな。できれば
chara->start_motion(攻撃モーションID);
にしたい。で、武器側にモーションデータをくっつけて
武器を装備した時にその武器用の攻撃モーションを読み込むようにしたらいいじゃないかと妄想。
*キャラモデル
*汎用モーション(待機、歩き等)
*剣攻撃モーション(モーションID:10)
*槍攻撃モーション(モーションID:20)
*...攻撃モーション(モーションID:30...)
+
*武器モデル
↓
*キャラモデル
*汎用モーション
+
*武器モデル
*攻撃モーション(モーションID:10)
みたいな。武器変更しても常にモーションID10を流せばOKみたいにできそう。
949 :
887:2010/04/17(土) 02:28:00 ID:cElL6nxn
問題はキャラごとに攻撃モーションも変えるかどうか。
男/女用で変えることはありそう。
*武器モデル
*攻撃モーション(モーションID:10)
が
*武器モデル
*男用攻撃モーション(モーションID:10?)
*女用攻撃モーション(モーションID:10?)
とかになって、もうちょっと考えないといけない。
でもモンスターハンターとかって男も女も一緒のモーションだったっけか?
とりあえずシンプルなRPGなんだから全キャラ攻撃モーションは統一でいいような気がしてきた。
なんかがんばって長文書いたら改行が多すぎとか言われて色々説明削った。
こんなことはチラシの裏にでも書いていた方が良かったかも…
スレ汚しごめん。
通常攻撃のこと考えてるみたいけど
ワザとか使うことを考えると、モーションなんて行動毎に毎回違うものになるんじゃないかと
って個人製作じゃそこまでモーション作るのが無理かw
951 :
887:2010/04/17(土) 18:15:32 ID:cElL6nxn
確かに通常攻撃も一種の技(MP消費なしの物理ダメージを与える技)として管理すれば
こんなことしなくても良いかも…
そう考えるとまず、戦闘システムを考えた方が良さそうだな。
つかまだステータスも考えてなかった…
王道でいくと HP,MP,攻撃力,防御力,魔力,すばやさ とかか。
適当に RPG ツクールとかを参考にすればいいのかな。
952 :
887:2010/04/17(土) 19:00:10 ID:cElL6nxn
RPGツクール2000,VXの体験版を落としてみた。
初めて見たけど、こういう感じなんですね。
まだまだ色々と作らないといけないことが分かった。
先は長いな。
自分の方は選手の移動パターン1つだけなので将来増やす時に悩みそうな予感です。
進捗はまだゴール得点処理と状態遷移関係実装を書いたり考えたりしてる状態。
前半から後半に切り替わる時に選手のデータの座標だけ左右入れ替えるような初期化したいのに
他のデータも全部一緒に初期化してるのが我ながら変な感じだな〜と思いつつ、他にいい方法も浮かばないのでそのままプログラミング中。
コンパイル開始出来るのは早くても明日…だといいんだけど自信なし。
なんとか一通り書いてコンパイルしてみたけど失敗。エラーは80個程。
if文で条件分岐させる為に色々と定義した変数がソースの各所にちらばってしまい、
それがうまく認識されていないのが原因のひとつになっている様子…。
955 :
887:2010/04/19(月) 08:42:20 ID:9OCZeS1T
ttp://github.com/happana/srpg/downloads SRPG version 0.0.10
仮ステータス,装備変更実装、まだ戦えない。
装備変更画面はまだで、装備をタイトルから選べるようにした。
HP,STR(力),VIT(体力),AGI(素早さ)などを実装。
体格(Physique)という値を用意した。
体格は大きいと HP,STR,VIT は大きくなり、AGI は下がる補正値。
今は敵の体格値50-150で変動。
のちのちはマップごととかに体格範囲を決めれるようにしようかと思ってる。
体格値がやたらとでかいのばかり出る、巨人のダンジョンとか
逆の小人のダンジョンとか作れたらいいなあ。
体格はモンスターハンターとかペルソナ4あたりの
時々大きさが違うのがいたのを参考にした。
動き、確認できました。場所によって2体の敵キャラの距離感が変わるのも確認出来ました!。
これが体格値変動の効果かも。
こちらの方は、昨日のバグはなんとか取れました。バグの大半は、
「 '0x3000': この文字を識別子で使用することはできません 」というメッセージで、
これは全角を使ってるのがいけないという事を言ってるらしく。
最初気付かなかったけど、空白部分に空白の全角文字が使われていたのが原因。
(以前にも似た事あったからか今回は早く気付いた。)
では何故全角になってたのかというと、switch文を書くのが面倒だったので、
どこかのホームページからコピペしてcase:以降の中身だけ書き変えてすまそうとしたら、
そのコピペした部分に含まれている空白が全角だったから。
ということで現在は得点が0対0で右上に表示されるところまで進んだところ。
バグとれたのになんで画面の遷移がないのかというと、if文の条件を満たした時の中身はまだ何も書いてないから。
コンパイルが通ったという事は、今回新しく用意したいくつかの状態遷移に使うための変数がとりあえず認識されてる様だな〜というレベル。
今日はあまり進まず。
15秒後に状態が前半からハーフタイムに切り替わり、その切り替わった時の時間カウント表示が、
再び0から開始するようにしたかったのにうまくいかず。その後、運よく気付き、解決〜!
if(matchstate == FIRST_HALF){ 略 }
のenum型変数matchstateをゲーム開始時にif文に処理が来る前にFIRST_HALFに初期化しておく必要があり、
そのように初期化してたと思ってたところが間違っていた。
自作の初期化関数initStage()の中で、
matchstate==FIRST_HALF;と書いていたのが間違い。
正解は、
matchstate=FIRST_HALF;
これで動いたのでたぶん今のところは大丈夫かも。
958 :
887:2010/04/21(水) 00:27:35 ID:WN11nJQN
デバッグも兼ねてステータス表示画面とかを作ろうと思ったが
画面レイアウトが面倒くさい。
ハードコーディングはしたくないんだけど
2Dレイアウト用ツールとかあるのかなぁ。
Inkscapeでsvgを吐き出してどうにかならんかなと調査中。
何かいいツールが見つかるといいですね〜。
自分のサッカーゲームは、ソースとデータが混在しててかなり分かりにくくなってマス…orz
今日は、前半でゴールした時に「RED TEAM GOAL!」と表示されるように出来た(まだ赤チームの方しかゴールできない)けど、
その表示がいつまでも消えない…。今日はここまで〜!
960 :
887:2010/04/23(金) 01:38:14 ID:GvbKseDL
2Dのレイアウトの前に単なる画像表示をしていなかったことに気づいた。
一枚の画像にいくつかの絵を敷き詰めて
x,y=0,0から32x32の領域を表示。みたいにしようと思った。
一枚の画像に絵を描くのはいいんだけど、座標と幅、高さの指定が面倒だった。
Inkscapeの勉強がてら矩形のIDと左上の座標、幅、高さを
出力するExtensionを書いてみた。
Inkscapeに画像をドラッグアンドドロップして
矩形で切り出す領域を囲っいつつIDを振っていく。
そして下記のようなJSONを出力できるようにした。
[
{'id': 'title',
'x': 0, 'y': 0, 'width': 128, 'height': 64},
{'id': 'menu',
'x': 0, 'y': 64, 'width': 128, 'height': 64},
]
後はパースしてゲームで表示するときは
Sprite.draw(ID);
みたいな感じで表示できるようにした。
Inkscape、Extension、JSON、ググってみたけど、後者2つは難しすぎて解りませんでした〜orz
こ…こちらは、バグの話しか出来ない状態…。
error C2440: '=' : 'bool' から 'GOALSTATE' に変換できません。
(誤)if(goalstate1 =! goalstate){略}
(正)if(goalstate1 != goalstate){略}
error C2143: 構文エラー : ';' が '}' の前にありません。
(誤)
switch (goalstate) {
( 略 )
default:
}
(正)
switch (goalstate) {
case RED_GOAL:
( 略 )
default:
break;
}
これの解決だけで昨日はかなり時間を消耗…orz
そして最後にもうひとつ、
、
error C2653: 'SoccerGame' : 識別子がクラス名でも名前空間名でもありません。
というキツいのが出て、昨日の夜には解決できなかった。
962 :
887:2010/04/24(土) 01:11:18 ID:WvIyGjkM
>>961 ExtensionはInkscapeの機能を拡張するための仕組みです。
Inkscapeの保存形式とかを自分の好きなように拡張できる仕組みがあるんです。
情報が少なくて苦労しました…
JSONは単なるテキストのフォーマットです。XMLとかCSVみたいなもんです。
今帰宅で明日も嫁の来客の対応などで日曜まで何も手をつけれない予感。
なるほど!どうもです〜!(たしかにExtensionは検索してもあまり出てこなかった感じ)
こちらはほとんど進まずだけど、一応バグは取れた感じ。
やろうとしていた処理は、GOAL!という文字表示の経過時間を覚えさせておくための変数を宣言、定義して、
5秒後に消えるようにする内容だけど、この変数のところで昨日のバグメッセージが出てた。
大雑把に書くと、
soccergameクラスのヘッダファイル、soccergame.hの中で
static unsigned int timer;
static unsigned int s1;
static unsigned int e1;
と書いて、soccergame.hに書いてあるsoccergameクラスの宣言の外側で、
unsigned int timer=0;
unsigned int s1=0;
unsigned int e1=0;
と書いてた。これは静的変数なんで外部で値を定義しなければいけないみたいな事が書いてあって、
実際、目的は同じで名前の違う変数もソースに含まれててそれはバグになってなかった。
だから、それとの違いを見つければバグも取れるだろうと思い、よく見てみると、
private:かpublic:の違い←これは関係なかった。
変数の定義をするときに変数名の前にその変数がメンバになっているクラスの名前が付いていたのでとりあえず同じように書きなおす、
unsigned int SoccerGame::timer=0;
unsigned int SoccerGame::s1=0;
unsigned int SoccerGame::e1=0;
しかし、これでもバグが消えない。
そして、よ〜く見てみるとうまくいってる方の変数は、ヘッダファイルではなく
定義を書いているファイルの方に書いてあることに気が付く。
soccergame.hではなく、soccergame.cppの方に書くと動いた〜!
原因を理解した上での解決ではないので今後の不安が残るもののこのまま作業を進めることにするつもり。
言語レベルのことで引っかかりすぎだろw
た…確かに!
プログラマじゃないので要領がつかめず、なかなか前に進まないのがつらいところです。(汗;)
今日も少しだけ作業…。
ゴール得点後にボールがまだゴールに接したままなのでさらに得点がカウントされてしまう問題を直す。
ゴール判定直後から5秒間までは、ゴールの状態を表している変数をNO_GOALにしておいて、五秒後に
選手とボールの座標を初期位置に戻すようにプログラム!
ここまでを前半戦の処理については一応実装出来た感じ。
あとはハーフタイムと後半戦にも同じようにするだけ。
書くとわずかな内容に見えるけど、頭こんがらがった。(苦笑)
試合開始から結果表示までの処理の流れの実装がなんとか完了。
テキストっぽい文字が表示されるだけなので見栄えは今までと変わらないように見える…orz
とりあえずこれで休める〜!
次の小目標は、
今まですべての選手が一斉にボールを追いかけていたのをやめて、
FWは前1/3、MFは中1/3、DFは後ろ1/3の範囲にボールがある時だけ
ボールを追いかけるようにプログラムを直す。
…にしてみる予定。
それとプログラムソースの方は作業ペースを少し落としてもやむを得ないので、
ネット、3D、APIの勉強にも少しずつ並行作業で挑戦してみよ〜かな〜という気もしてマス。
ちなみに3DとAPIについては、ゲームプログラムの勉強を始めたばかりの頃に
一度挑戦してすぐに挫折した経験あり…orz
かじってみて挫折したものは必要に迫られてからやり直せばいい。
必要でもないのに再挑戦したってまた挫折するだけ。
わき道にそれすぎ。
969 :
887:2010/04/28(水) 00:06:08 ID:Bz3TRBQw
2D描画とツール探しでプログラミングが停滞中。
3Dはモデリング、オブジェクト配置、アニメーション、全てblenderで作れるが
2Dでオブジェクト配置、アニメーションができるツールが見当たらない。
ファイルフォーマットでいえばSVGが限りなく答えに近い気がしてて
InkscapeがSVG Animationに対応すれば完璧なのに!
ツールでいえばFlashが一番近いと思うんだけど有料ソフトは一切使いたくない。
とりあえず wysiwyg できないけどテキストでアニメーションデータ書くか…
>>968 そ…そう言われたらなんとなくそんな気もしてきました。
2Dで作れなければ結局その先の事を考えても意味が無いかもしれないと考えてみれば、
まずは2Dをどこまでやれるか試す方が先かな〜とも思うので、やっぱり2Dを優先する方針でいきます。
>>969 自分も何か知ってれば書きこみたいのですが、実はそのジャンルのツールを使用した経験が無くて…orz
971 :
887:2010/04/29(木) 00:34:08 ID:ahTxsaJx
適当に2Dの配置+アニメーション用データを定義してみた。
タイトル(ID:title)のy座標が0〜10フレームの間で-50.0から10.0に変化し、
項目0(ID:item0)のx座標が30〜40フレームの間で340.0から230.0に変化する場合だと
[
{"id": "title",
"animation": [
{
"name": "y",
"type": "ease_out",
"begin": 0, "end": 10,
"from": -50.0, "to": 10.0
}
]
},
{"id": "item0",
"animation": [
{
"name": "x",
"type": "ease_out",
"begin": 30, "end": 40,
"from": 340.0, "to": 230.0
}
]
}
]
みたいに書く。
まだ色々機能が足りないけど、とりあえず動くところまでできた。
972 :
887:2010/04/29(木) 13:24:26 ID:ahTxsaJx
GWはしっかり休めるのでゲーム作りに励めそう。
さっそくVS2010EEが出てたけど、
今回のゲームが落ち着くまでは2008で行こうかと思う。
>>971 自分も何かテクニックを使ってみたいけど、まだ自分には無理そうな感じです〜。
中身を見てそう言えば自分の選手データにはIDに相当するものが無かったと気付き、
後々不便が起きるかもしれないので、今すぐ使わなくてもとりあえず選手データ初期化するときに
IDも入れておこうかな〜と思ってみたり…。
一応
>>967で言っていた選手の動きを実装する前に選手の動きの種類を切り替えるしくみとして使っていた
ストラテジーパターンというやつを無くすことができないか考えているところ。
これもテクニックなのかもしれないけど、もともと14歳シリーズの本がこのやり方を使っていたので
やむを得ず良く分からないまま使っていたのが現実なので、このまま続けると後々苦労する予感。
何故かというとどうもこのやり方だと動きを切り替える事ができるといっても
入力と出力の形は同じでなければならないという制約があるようだから…。
ちょっとだけ考えてみていい方法が思いつかないなら、このまま進めてその制約で出来る範囲の動きで我慢するか、
またifとか使って対応するかのどちらかでいくつもり。
974 :
887:2010/04/30(金) 01:01:47 ID:AR5Zrq/a
>>973 デザインパターンにこだわらずに作ったほうがいいと思います。
switchを全部strategy patternにする必要なんてないんだし。
自分が作りやすいように作ったほうがいいんじゃないかな。
メニュー操作周りを作ってます。ドラクエみたいな
コマンド一覧->使用者一覧->まほう一覧->対象一覧(まほうを使うとき)
のように選択対象が切り替わっていったり、キャンセルで戻ったりの仕組みを考えていた。
なんとなくスタックでいけそうな気がする。
開いたメニューをスタックにpushしていって、topの奴が操作対象になる。
キャンセルでpopして前のやつに戻る。みたいな感じで。
僕も修行していいですか?
Cのポインタでつまるレベルなんですけど
テトリスとかオセロとかのミニゲームをなんとか作ったけれど、基礎を固めていくのは性に合わないのかいよいよ限界です。
タクティクスオウガを初めてやったとき目ん玉飛び出るくらい楽しかったので
クォータービューのマップを使ってなんかやれたらいいなと
976 :
887:2010/04/30(金) 10:47:13 ID:AR5Zrq/a
>>976 がんばりやす。
初心者らしくVC++2005とDXライブラリで作ります。
簡単に変数を表示できる簡易デバッグ用のクラスや、FPSを取得する関数がミニゲームつくりの段階で作ったのがあるんで
これを使ってしばらくは負荷テストに終始する予定です。
何も考えずに作ってみたらどうやらクォータービューはマップの描画だけでかなり負荷がかかるみたいなので。
今日までのテストでわかったことは
マップチップを長い逆三角形のように並べてマップを動かして負荷の推移を調べた
・マップチップが画面に多く表示されている部分は高負荷で、チップが少ない部分は低負荷だった
→画面からはみ出た部分に関しては描画処理を行わない仕様っぽい。
同じマップでマップチップのサイズを大きくしてみた
(はみ出た部分は処理を行わない事がわかったのでチップを大きくし、面積当りの処理の回数を減らした)
・負荷が軽減した
→描画面積より処理の回数の方が負荷に与える影響は大きい。
クォータービューの醍醐味である高さ方向へチップを重ねてみた とりあえず単純に全てのチップを2段3段と重ねて厚くした
・負荷が一気に大きくなった
→描画に関しては、画像が上書きされて見えなくなった部分も描画が行われていると考えられるため単純に2倍3倍の描画の負荷がかかっていると推測
次のテスト予定
3次元配列と構造体配列マップデータとしてどっちが適してるか
僕の環境で1画面にいくつまでチップを表示させても良いのか
馬鹿でかい画像と、ウィンドウと同じサイズの画像とで、ウィンドウいっぱいに表示したときの負荷は同じなのかどうか
こんな作業がしばらく続く予定です。
>>974 なんとなくそのような気がしてきた感じ…。
ストラテジーパターンで書かれているところを普通にifとswitchに書き直してみようかな〜と思います。
>>975 ど〜ぞヨロシクです〜!。自分はいつも言語段階で躓いてます!!
979 :
887:2010/05/01(土) 20:09:26 ID:c0JfoAQI
ttp://github.com/happana/srpg/downloads SRPG version 0.0.11
キャンプメニュー追加。簡単な装備切り替えを実装。
今回は2D周りのアニメーション実装でかなり時間がかかった。
結局2Dのアニメーションは手書き…
1.テキストで座標とか書く
2.バイナリ化
3.ゲームで確認
を繰り返すことに…面倒臭い!
メニューはかなり面倒臭いことが分かった。
画面遷移からレイアウトやら表示すべき情報やら
考えないといけないことがいっぱいある。
980 :
975:2010/05/01(土) 22:48:24 ID:5bFAyxjg
>>978 どうもよろしくお願いします。僕も言語レベルで躓きます
分岐なんてifとswitchとあとなんか関数ポインタとか言うのがあるというのを聞いたことがある程度で
ストラテジーパターンなんてはじめて聞きました。そんなレベルです。
クォータービューを軽く描画するための残りの負荷テストが大体終了
まだあるけどキリがないんで
ふわっふわと実装へ向かってます
複数の画像を組み合わせた画像を新たな単一画像としてメモリにロードできるような方法があれば
画像をたくさん用意しないでも済むんですけど、色々さがしてみまーす
>>979 キャンプメニュー、見れました〜。
自分は、状態の遷移でifやswitchのスパゲティになってます。
>>980 もしかしてこのスレで紹介されてた
>>822の事だとか…。
前半後半の遷移実装版をアップしようとして、
VC++でreleaseモードでコンパイル(デバッグ実行)したらなぜかバグ。
debugモードなら問題無くコンパイル出来るのにという謎に遭遇。
場所は画像を表示する部分で登録してる数よりもはるかに大きな数の
配列が用意されてしまってるところまではわかったけど、原因わからず…orz
もう1年ぐらいかけてもいいからCで書きなおすのが良いかもと思いかけた時、
なんとなく「リビルド」してから、コンパイルしたら出来た!
でもこの調子だといつの日かCで全部やり直し!なんてことになるかもと少し心配な感じ。
とりあえず、うpしてみます〜!
ttp://gamdev4.hp.infoseek.co.jp/cgi-bin/up/No_0100zip.html
982 :
887:2010/05/02(日) 01:26:58 ID:sxxH9fJ2
>>981 ソースコードも上げてれば困ったときに誰かが教えてくれるかもしれない!
とか言ってみる。
そんな希望を持ちつつ僕の場合はソースコードも上げてます。
みんなでソースコードとかも見せ合って
バグとか技術とか教え合ったりできたらいいなぁとか思ってます。
外野だけど887にアドバイスできるレベルの人はたぶんほとんど居ないと思うの
>>981 おおっと日向君強引なドリブルからのぉ・・・ゴォオオオオオオオルッ!!面白かったです。
サッカーゲームはAIも難しそうですね。サッカーやってましたけど人間の僕もよくわかんないで動いてましたし。
DerivationGraph は近いんですけどやりたいことはこれとまったく逆の処理で
DXライブラリでいえばGetDrawScreenGraphが該当するんですけど透過情報が消えてしまうのが困り物です。
透過情報でなく、透過色指定をDXライブラリで出来た気がするんでその線で行ってみます
プログラムだけではアレなんでドット絵も晒して行こうかと思います。
憧れのタクティクスオウガ風のキャラ雛形です。
本音では解像度的にもう少し大きいサイズがいいんですけど大きすぎると一人で作るには作業が大変なんでとりあえず小さめに
ttp://www.gazo.cc/up/10455.png