12/10/27 15:51:21.57 XWfc1mIR
>>10
間違ってるのかは知らないけど、キャラクターの移動制御とか
WASDで上下左右斜めを移動させようとする時if文が気持ち悪いからを回避させようと思って考えた
12:名前は開発中のものです。
12/10/27 16:01:25.19 0RCdMBm4
のちの二進数である
13:名前は開発中のものです。
12/10/27 16:59:50.06 8ecSlhuk
二進数だと0~10にならないか
14:名前は開発中のものです。
12/10/27 17:05:30.73 f+1+ewbY
上下左右4bit分のテーブル用意したほうが解りやすくね
それで思い出したけど上と下同時に押された時どうするか迷う
大抵面倒くさいので相殺しちゃうけど、
後から押した方を有効にしてやったほうが操作感よさそう
15:名前は開発中のものです。
12/10/27 17:35:07.05 8ecSlhuk
>上下左右4bit分のテーブル
テーブルに使用しない要素ができるのが、なんだかねえ。
16:名前は開発中のものです。
12/10/27 17:43:29.40 PILDR8EH
ケチ臭いなw
17:名前は開発中のものです。
12/10/27 17:48:53.76 aY+YsFGu
Cプログラマらしいっちゃらしいけどな
無駄の無い方が美しい
18:名前は開発中のものです。
12/10/27 17:59:19.86 8ecSlhuk
現場でしょっちゅうこんな口論して、主導権争いしてるんじゃ?
19:名前は開発中のものです。
12/10/27 18:45:38.01 TyYhYgA9
過疎 m9(^Д^)9mザマァ
20:名前は開発中のものです。
12/10/27 20:16:43.05 0RCdMBm4
>>15
キーボードだと左右同時押しはありえるんじゃない?
21:名前は開発中のものです。
12/10/27 20:33:54.92 FPQPdfrs
同時押してキーボード側の制限あるから厳しい事もあるな
22:名前は開発中のものです。
12/10/27 20:59:36.97 aY+YsFGu
>>7のアルゴリズムだと反対方向同時押しは押さないのと同等になるな
それはそれで問題無さそうだが
もし何か特別な処理が必要になったら根本から破綻するな
まあ、最適化されたアルゴリズムなんてそんなもんだけど
23:名前は開発中のものです。
12/10/27 21:47:05.59 f+1+ewbY
>>15
使用できない要素はたしかに出来るんだけどね
0-8に変換だったら64bit整数1個で済むし気にならなく無い?
n = (0x0576108734052310LL >> (k << 2)) & 0xf;
24:名前は開発中のものです。
12/10/27 22:20:47.43 B8sptMGD
>>12
後の3値論理じゃないかな
DB屋さんがクソNULLがとか言ってるのは、まれによくみる光景かと。
25:名前は開発中のものです。
12/10/27 22:41:01.57 83zyeglk
そんな性能的に無視できるところで必要以上に最適化する奴はセンスがないんじゃないか
26:名前は開発中のものです。
12/10/27 22:54:33.03 aY+YsFGu
キー入力以外でなんか使い道あればなあw
入力が2値になるからかなり限定的になるが
27:名前は開発中のものです。
12/10/27 23:08:35.48 0RCdMBm4
スマホとかのソフトキーなら、左右同時押しでスピンとか入れるのも楽しそうだ
28:名前は開発中のものです。
12/10/28 00:43:53.84 V6fh8U3v
>>7が何を言いたいのか、私には良く分らない。
29:名前は開発中のものです。
12/10/28 03:37:51.14 VC1NUKM6
一瞬俺も謎だったが
0を起点に上下左右で同じ数を足し引きしてるから何となくわかった
左上なら3+1で4と言う風に計算させてキー入力判定できるじゃんてこと(だよな?)
30:名前は開発中のものです。
12/10/28 04:15:46.38 l36h33Qo
真下と斜め下を区別しないようなときはちょっと面倒かな?
31:名前は開発中のものです。
12/10/28 05:25:22.20 VC1NUKM6
数値の配置変えるだけで良いだろう
32:名前は開発中のものです。
12/10/28 09:14:30.41 dFYfbBkK
>>22
同時押しを定義しておけばいい
想定していない操作は押さないのと同等になるのがメリット
33:名前は開発中のものです。
12/10/28 09:46:35.50 wnJwOgy7
>>23のアルゴリズムなら同時押しも別に定義できるな
メモリと処理の無駄も特に無さそうだし、応用もききそう
34:名前は開発中のものです。
12/10/28 15:52:19.16 j5L9gX8T
そんな性能要らないところで最適化する奴はセンスないぞ
そういうところは何やってるのかが明確に分かるよう読みやすく書くべきだ
35:名前は開発中のものです。
12/10/28 15:57:47.90 kJebQXhg
センス君乙
36:名前は開発中のものです。
12/10/28 16:01:49.10 j5L9gX8T
レッテル貼り乙
37:名前は開発中のものです。
12/10/28 16:03:39.20 kJebQXhg
>>36
返しにセンスを感じないなw
38:名前は開発中のものです。
12/10/28 16:05:52.76 j5L9gX8T
便所の落書きなんかよりコーディングでセンスを発揮できる奴のほうが社会的に有用だぞ
39:名前は開発中のものです。
12/10/28 16:09:33.74 rrtnkDUA
>>38
レッテル貼ってるのはお前だろ
センスクン
40:名前は開発中のものです。
12/10/28 16:10:40.01 kJebQXhg
>>38
自己紹介乙
41:名前は開発中のものです。
12/10/28 16:21:59.20 euVvYrvz
ここでやるなageるなクズども
42:名前は開発中のものです。
12/10/28 16:22:40.69 j5L9gX8T
URLリンク(blog.ashodnakashian.com)
Premature optimization; Most of us have been there.
And that’s what makes those words very familiar. Words of wisdom, if you will.
We’ve all decided to do a smart trick or two before fleshing out the algorithm and even checking if it compiles,
let alone checking the result, only to be dumbfounded by the output. I can figure it out! we declare… and after half a day,
we’d be damned if we rewrote that stupid function from scratch. No chance, bub.
43:名前は開発中のものです。
12/10/28 16:24:37.70 Nz6O7Olc
ID:j5L9gX8T のコーディングまだ?
44:名前は開発中のものです。
12/10/28 16:29:23.69 u2a2keHh
そりゃ仕事でやるなら効果無いような細かいこと気にしないけど
話のネタまで否定しなくていいのに
45:名前は開発中のものです。
12/10/28 16:33:09.38 j5L9gX8T
馬鹿な奴が>>7とか>>23みたいな巧妙なトリックを真に受けて真似しかねないからな
1/60秒で1回しか実行されないような実行時間的にほぼ無視できる場所で
こんな最適化するのは無駄どころの話ではない
ぶっちゃけ害悪である
あなたは半年後に同じコードを見て何をやっているのか一瞬で理解できるだろうか
46:名前は開発中のものです。
12/10/28 16:34:57.34 qrTVy0A0
とりあえず話題があればセンスとか無くていいです
47:名前は開発中のものです。
12/10/28 16:35:37.85 qrTVy0A0
1fpsかよw
48:名前は開発中のものです。
12/10/28 16:36:01.76 qrTVy0A0
読み違えたわw
49:名前は開発中のものです。
12/10/28 16:38:12.60 Tr+QQlDk
つまんねーやつ。可読性モンスターはこういうの多いよな。
昨今の技術書の影響だろうけどさw
50:名前は開発中のものです。
12/10/28 16:40:51.07 j5L9gX8T
つまらなくて結構
コーディングで笑いを取る必要は全く無い
面白いコードより分かりやすくて効率的なコードを書きましょう
51:名前は開発中のものです。
12/10/28 16:41:19.38 Tr+QQlDk
はいはい、先生様。
52:名前は開発中のものです。
12/10/28 16:43:12.92 j5L9gX8T
人格批判やレッテル貼りばかりで詰まらん奴らだな
何か反論できないのか?
実行時間的に無視できる部分を巧妙な手法で最適化することを擁護する意見はないのか?
53:名前は開発中のものです。
12/10/28 16:43:39.78 Tr+QQlDk
効率的じゃなくて読みやすいコードのお間違えでは?
54:名前は開発中のものです。
12/10/28 16:44:37.24 Tr+QQlDk
ここの連中も、センスなんて言葉でレッテル貼ってるやつに言われたくないと思うぞw
55:名前は開発中のものです。
12/10/28 16:46:44.64 qrTVy0A0
>>52
いや、話してるやつらは最初からわかってやってんじゃないの
>>7についた最初のレスが「それなんの役に立つの?」だぞ
56:名前は開発中のものです。
12/10/28 16:47:18.26 euVvYrvz
いいからハードウェア半分触るレベルで最適化してるんでなければ、コンパイラの最適化にまかせてろ
57:名前は開発中のものです。
12/10/28 16:48:27.57 rrtnkDUA
わからんのだろ?
センスってセンス悪いって言いたいだけみただしな。
58:名前は開発中のものです。
12/10/28 16:53:37.83 j5L9gX8T
>>55
>>11-33あたりを見てると、そうは思えなかったな
書き込んでる奴らには「そんな糞コード書くな糞が」と思ってる奴がとても少なそうで残念だ
59:名前は開発中のものです。
12/10/28 16:56:02.25 Tr+QQlDk
だから俺が教えてしんぜようってか?
傲慢な奴めw
60:名前は開発中のものです。
12/10/28 16:57:15.74 rrtnkDUA
苦笑
61:名前は開発中のものです。
12/10/28 16:59:55.14 rrtnkDUA
以上。新入社員研修でした。
62:名前は開発中のものです。
12/10/28 17:20:53.85 j5L9gX8T
ディスプレイの前でROMってるお前
そう、お前だ
ここまでの流れで分かったと思うけど、便所の落書きを真に受けるなよ
何が正しくて何が間違ってるのかは自分で判断しなさい
この書き込みのことも真に受けず自分で判断しなさい
63:名前は開発中のものです。
12/10/28 18:41:42.17 230DDn6p
なんか荒れてるなー
64:名前は開発中のものです。
12/10/28 19:38:11.09 u2a2keHh
これはコードゴルフの流れだな
65:名前は開発中のものです。
12/10/28 20:12:04.01 TbEep54T
なんか理想のゲーム作ろうとして詰まったから逃避で
STLの学習がてらミニゲーム作るつもり
それが適当にゴリゴリコード書いただけなのに
パラメータをGUIでいじれるようにしたら
自分がハマりまくって目がヤバイ
66:名前は開発中のものです。
12/10/28 20:43:17.42 qrTVy0A0
>>65
面白いゲームってのは案外そういう風に生まれるのかもな
67:名前は開発中のものです。
12/10/29 00:43:29.41 TWnpiUK4
>>45
>>7や>>23は、スコープが非常に限定されているじゃない。
何か後々作業が膨らんでしまう可能性ってあるか?
あの程度を半年後に見てすぐわからなかったら、それこそセンスないぞw
68:名前は開発中のものです。
12/10/29 01:14:46.27 NNB0oxO0
どうして何のメリットもないことをそうまでしてやりたがるのか全く理解できないな
どうせ性能には1ミリも影響しないのに無駄な時間かけて最適化()笑とか馬鹿じゃないのか
69:名前は開発中のものです。
12/10/29 03:27:35.61 TWnpiUK4
別に誰も、話題に上っていないスコープも含めて、問題の優先順位の相談してないからwww
ところで、
>1/60秒で1回しか実行されない
>何のメリットもない
>どうせ性能には1ミリも影響しない
どうしてそう言い切れるんだ?
思い込み激しいんじゃねえの?w
70:名前は開発中のものです。
12/10/29 03:30:43.60 pkHkKL53
最適化なんてある程度書けるようになった中級者以降がするべきもので、
初心者がこだわるのは非常に無駄っていうのには同意
71:名前は開発中のものです。
12/10/29 05:22:10.53 WCV9+Tmj
最近のコンパイラはますます優秀になってくなぁ・・・
必要以上の最適化はもう不要な時代なんだろうけど
最適なデータ構造を心がけるクセは早めから意識するといいと思う
72:名前は開発中のものです。
12/10/29 06:58:56.92 f+Zrcf1Y
>>71
とはいえコンパイラが最適化してくれるのはアセンブラレベルで、アルゴリズムの最適化してくれる訳じゃないし
ボトルネックになりやすい箇所はやっぱり自分で工夫しないといけないんだよな
まあアセンブラレベルの作り込みとか絶対やりたくないけど
家庭用ゲーム機だと結構普通に必要らしいね 特にソニーの奴
73:名前は開発中のものです。
12/10/29 07:05:43.04 Nah+Du53
例のセンス君はどうせ本読んで囓っただけだろ
74:名前は開発中のものです。
12/10/29 07:12:16.61 kX9uezSJ
マシンパワーが向上した事も理由の一つじゃね?
数パーセントの最適化程度じゃ、大して差はないし
75:名前は開発中のものです。
12/10/29 12:01:08.46 kMq1Bnep
レベル低いなーお前ら
76:名前は開発中のものです。
12/10/29 13:01:28.01 0MIK6w9Q
>>75
なんだかんだでCはそういうのに向いた言語だからなー
77:名前は開発中のものです。
12/10/29 13:06:19.01 kK1qumnh
スクリプト言語組み込む時代だからなあ
78:名前は開発中のものです。
12/10/29 19:34:42.93 CthfwFfZ
ぶっちゃけCPUの処理能力は余る方向にある
最適化が必要なのはGPUのほうだ
ちょっと重い処理をしたら簡単にフレームレートが下がる
GPUの処理がスムーズにいくよう工夫するのも重要な最適化だな
視野カリングして見えない物体をGPUに送らないようにするとか
頂点キャッシュが効くようにインデックスを並べ替えるとか
79:名前は開発中のものです。
12/10/29 21:39:45.34 0MIK6w9Q
コンシューマだとメモリもよく聞くなあ
80:名前は開発中のものです。
12/10/29 21:49:50.77 wP42oojN
マシンパワーの向上って念仏みたいにいってるけど
CPUやGPUが性能を発揮できる流れに沿ってることが大前提だな
例えばマルチコアCPUならマルチスレッドを多用すること、
GPUだったら一括描画やカリングだな
ハードウェアの特性に逆らったり、設計から生じたボトルネックの重さは
マシンパワーの向上では解決できんよ
SSE2でバッファコピーの高速化云々みたいな小さい話なら
コンパイラの進歩まかせでいいと思うがな
81:名前は開発中のものです。
12/10/29 23:40:45.73 gi/SrGX8
不毛な争いだなw
82:名前は開発中のものです。
12/10/30 08:40:00.34 snIQuAh1
そういやシェーダの話ってスレ違いになんのかね?
83:名前は開発中のものです。
12/10/30 09:10:26.11 QFOFN70d
各ゲームエンジン用のシェーダならそのスレへ、glslならopenglのスレへ
hlslならdirectxのスレへ
84:名前は開発中のものです。
12/10/30 09:22:27.12 2s6uouZg
組み込む場合の直接C++に関わってくる部分はこのスレでも
85:名前は開発中のものです。
12/10/30 10:11:54.77 uPwiuQHo
->commitchanges();の呪文詠唱を忘れて時間喪失
86:名前は開発中のものです。
12/10/31 02:38:09.90 ULo/cr7A
新スレたってたのか
87:名前は開発中のものです。
12/11/01 00:30:46.07 yAoFpDQg
C++のゲーム作りなんて実質テンプレ化されてるから、
ツール使いとそんなに大差が有るわけではない無い。
88:名前は開発中のものです。
12/11/01 07:12:24.20 XpgpfYdy
それでもツール使いの方が絶対数は多いな
人間、新しい事をするのは面倒なんよ
89:名前は開発中のものです。
12/11/01 14:55:34.09 YcgTOK0e
XM/MOD/IT形式の音楽を鳴らせるライブラリってありますか?
かつて使い慣れていたので
90:名前は開発中のものです。
12/11/01 22:40:12.86 y3qRsTHC
URLリンク(www.un4seen.com)
basemodとかあるけどこれって金とるんだっけ?
91:名前は開発中のものです。
12/11/02 20:20:59.47 G703aHFB
ぶっちゃけ、お前らC or C++でゲーム作ってる?
作ってるのは仕事で?趣味で?
趣味でやってる人はどれくらいの規模のもん作ってるの?
ちなみに俺は趣味で3Dシューティング(パンツァードラグーンみたいなの)作ろうと
思って始めて、エンジンすら完成しないまま放置してたのを最近また進めようと思ってる
多分アーキテクチャを流用してほぼ書き直しすると思うけど
みんなどれくらいのモチベーションでやってるのかちょっと知りたいわ
92:名前は開発中のものです。
12/11/02 23:00:21.22 pvjO2WuT
教えてほしいか?
趣味で世界規模だ
93:名前は開発中のものです。
12/11/03 08:33:21.87 JAkDSb9o
趣味
規模は小さいけど自分の手にあまり気味
94:名前は開発中のものです。
12/11/03 12:16:24.80 YlTYGWm1
エスパー向け質問で悪いんだけど、
シューティングゲームの攻撃判定ってどうやってキャラクターやエンティティが取得してる?
各キャラクターが更新されるたびに攻撃マップとか除いてふるまうの?
それとも、すべてのキャラクターやエンティティが更新し終わってから
攻撃判定用のクラス(?)が判定して、各キャラクターやエンティティにフィードバックするの?
95:名前は開発中のものです。
12/11/03 12:24:18.50 mhjBy24C
何が言いたいのかわかんないけど、普通は毎フレーム1から構築
96:名前は開発中のものです。
12/11/03 16:55:57.71 u2hBXnIg
>>94
>攻撃マップとか除いてふるまう
ってのがよく分らん。
決まったやり方なんてないだろうな。
俺はアクター単位の更新前にやっている。
97:名前は開発中のものです。
12/11/03 20:12:18.93 MPi99ujn
久しぶりにゲームプログラム戻ってきたけどほんと訳分からんw
勉強し直しだな…
98:名前は開発中のものです。
12/11/03 21:22:47.48 JSIHKqgA
プログラムは自分で作るとして、ゲームの素材ってどうすればいいんだ
みんなフリー素材使ったりとかしてるのか?
全部一人で自作しようとして、終わらなくて心が折れそう…
99:enpel
12/11/03 21:27:44.18 bHLe96K0
URLリンク(www.ustream.tv)
Unity勉強会の配信してます
みてください
100:名前は開発中のものです。
12/11/03 22:07:00.11 dBvT5/6H
>>98
買えばいいじゃない
101:名前は開発中のものです。
12/11/03 23:26:20.15 Zt/6Kn8V
>>98
俺は自分で作るよ。
102:名前は開発中のものです。
12/11/03 23:45:44.30 MPi99ujn
>>98
自分で作るしかない
みんな3Dエフェクトはどうしてる?
103:名前は開発中のものです。
12/11/04 00:31:03.81 tGjg6t73
最近だとeffekseerとかbishamonとかは見かける
104:名前は開発中のものです。
12/11/04 06:39:38.34 YUTURfMs
ゲームの背景に使える素材サイトってある?
写真じゃなくて、アニメの背景のような水彩画っぽいのが
いいんだけど、そういう素材って見かけなくて。
105:名前は開発中のものです。
12/11/04 06:42:46.21 0aBxGlv8
エロゲの背景みたいなのならググれば出てくるが
106:名前は開発中のものです。
12/11/04 12:28:31.26 A1XAKU4Y
イラストサイトでも回れば
107:名前は開発中のものです。
12/11/04 12:49:37.26 q6gcsEXK
著作権とかライセンスとか気にすると以外とめんどくさい
108:名前は開発中のものです。
12/11/04 18:30:45.75 t8zQvkkV
点A: X,Y,Angle
点B: X,Y
とあった時に、
点AのX=0,Y=0,Angle=0度 とした時の点Bの位置をsqrtを使用せずに求めたいのですが
どうしたらいいでしょうか?
URLリンク(codepad.org)
自分の頭だとどうしてもsqrtを使っちゃってこうなります。
109:名前は開発中のものです。
12/11/04 18:40:22.68 ESy0DDjV
意味がわからん
ベクトルで駄目なのか?
110:名前は開発中のものです。
12/11/04 18:51:07.76 t8zQvkkV
>>108
これ間違ってました
>>109
無知ですゆえ
111:名前は開発中のものです。
12/11/04 18:55:58.67 t8zQvkkV
>>109
仮に点Aから見てAngleの方向に点Bがあった場合、
点Bの座標を(0,距離)として表現したい
112:名前は開発中のものです。
12/11/04 19:13:46.25 FFX64lFq
ビュー変換の関数使うのが一番楽そうだけど
113:名前は開発中のものです。
12/11/04 19:20:54.59 FFX64lFq
距離で出したいのか
だったらsqrtはいるんじゃないのかな
114:名前は開発中のものです。
12/11/04 19:27:15.24 t8zQvkkV
距離は過程で、座標さえだせればいいです。
ややこしくてすいません。
115:名前は開発中のものです。
12/11/04 19:55:14.08 +eKQim6x
距離分かってんなら三角関数で座標求めるだけじゃないか・・・
116:名前は開発中のものです。
12/11/04 20:35:21.06 FFX64lFq
x'=(xb-xa)cos-(yb-ya)sin
y'=(xb-xa)sin+(yb-ya)cos
二次元なら多分これで出ると思う
変換行列の作り方がパッと出てこないヤバイw
ちょっとやってないとすぐ忘れる
117:名前は開発中のものです。
12/11/04 20:38:18.78 FFX64lFq
あ、回転は-Angle
118:名前は開発中のものです。
12/11/04 20:40:02.40 +eKQim6x
xbやらybを求めたいのにそれを式の中で使ってどうするんだ
119:名前は開発中のものです。
12/11/04 21:57:57.68 obDXMYF5
距離がないと位置は出せないだろw
120:名前は開発中のものです。
12/11/05 08:40:42.35 EzdeqMcY
>>108
BからAを引けばおk。
relativeX = B.x - A.x;
relativeY = B.y - A.y;
121:名前は開発中のものです。
12/11/06 19:53:02.05 eNz//o3J
なんで距離求めて
x,yに分解するんだ
122:名前は開発中のものです。
12/11/06 23:19:03.48 STH5OQ9t
点Aを(0,0)とした点B(bx-ax,by-ay)があった時
点Aを座標軸ごとθ度回転させた時に、θ方向を基準とした点Bの座標が>>116...??
URLリンク(gyazo.com)
URLリンク(gyazo.com)
Angleはどこに代入すれば・・・
123:名前は開発中のものです。
12/11/07 00:15:23.58 VREKKmj9
画像の通り。
(cosθ, -sinθ)(sinθ, cosθ)と(x, y)の行列の積。回転行列。
>Angleはどこに代入すれば・・・
sin()やcos()に何渡すんだよw
124:名前は開発中のものです。
12/11/07 00:34:19.50 VBlYDNDl
そもそも>108の日本語がワケワカメで何がやりたいのかさっぱりわからん
125:名前は開発中のものです。
12/11/07 02:11:54.93 amzJWZHs
>116の書いた
x'=(xb-xa)cos(-Angle)-(yb-ya)sin(-Angle)
y'=(xb-xa)sin(-Angle)+(yb-ya)cos(-Angle)
これが正解だろ
126:名前は開発中のものです。
12/11/07 05:25:09.69 Wwvr1glG
>>124
全くだな。一生ROMってろレベルだ
127:名前は開発中のものです。
12/11/07 06:13:29.64 F1nCS+Bd
>>120
この方法で解決しました!
ありがとうございました。
128:名前は開発中のものです。
12/11/07 09:00:37.96 Xletgf7N
相対座標求めたいだけだったのかよw
129:名前は開発中のものです。
12/11/07 09:02:49.31 Mr7fX9Z7
>>128
回転が加わると育ちが悪いせいかどうも遠回りな計算しか・・・
130:名前は開発中のものです。
12/11/07 09:03:26.42 Mr7fX9Z7
>>109-128
ありがとう
131:名前は開発中のものです。
12/11/08 06:32:08.18 ELEjlKZe
見下しているつもりのバカの滑稽さがなかなか楽しかった
132:名前は開発中のものです。
12/11/08 10:09:58.85 8AHptFMp
なんだかんだ言って教えてくれる人がたくさんいるツンデレ空間w
133:名前は開発中のものです。
12/11/08 11:16:16.68 ELEjlKZe
>>1332
教えている奴の大半がまともにコード読めないアスペか
池沼だったけどな
まあマシンスペック上がってるしこんなんでもいいのか
134:名前は開発中のものです。
12/11/08 12:15:49.62 8AHptFMp
( ´∀`)σ)∀`) >>133
135:名前は開発中のものです。
12/11/08 13:14:42.55 zP8ZUOET
sqrtはx86の拡張命令セットにあるはずだからそんなにリソース食わないと思う
10年前のコンパイラ使ってるとかなら話は別だが
136:名前は開発中のものです。
12/11/08 20:35:57.54 1/7WKa2O
カンスト時のオーバーフロー対策として範囲チェック付きのintのラッパークラス作って
多方面でintの代わりに使うのって悪手なのかな?
チェックしないワケにはいかないから毎回毎回チェック用の関数に通してたけど
そんなことするくらいならラップしたほうがいいよね?
137:名前は開発中のものです。
12/11/08 20:45:48.77 Z+cFsqvj
>>136
それ演算子オーバーロードして計算する度にチェックしたりすんの?
結構なオーバーヘッドになりそうな気がするが…
一回ベンチマーク取ってみた方がいいと思うけど
あとはオーバーフローする可能性のあるところだけ使うとか
138:名前は開発中のものです。
12/11/08 21:01:40.06 1/7WKa2O
>>137
もちろん単純な計算とかはintと同じような振る舞いができるようにしようと思ったんだけど
思いつきだったから他所の各種フォーマットのこととか考えると一気にめんどくさくなってくるね・・・
139:名前は開発中のものです。
12/11/08 21:36:07.56 G2+9xcvR
多倍長整数クラスみたいなのは自作しないのが鉄則だと思う
140:名前は開発中のものです。
12/11/09 16:35:38.97 X+TCzH6/
ググッてみたが連絡必須な作者ばっかりだな
141:名前は開発中のものです。
12/11/09 19:50:15.35 VSrh+osv
「任意倍長整数 std::vector」でググッた?
しかし、ゲームではスコアぐらいしか使い道が無いような・・・
142:名前は開発中のものです。
12/11/09 20:23:54.88 r5dUZ16H
intがダメならlongを使えばいいじゃない
現実的な時間でカンスト出来なきゃおkでしょ
143:名前は開発中のものです。
12/11/09 22:04:54.38 VSrh+osv
それを言うならlong longじゃね?
longとintじゃ、サイズ一緒だし。
144:名前は開発中のものです。
12/11/09 22:08:31.43 VSrh+osv
C#やVBとC++じゃ、データサイズ違うしな
145:名前は開発中のものです。
12/11/09 22:20:24.27 iHmFaNL/
さーせんintが16bitと勘違いしてた
146:名前は開発中のものです。
12/11/09 22:34:04.03 Dzz1dA77
少し質問です。
最近のFPSゲームなどはどんな言語、環境、ソフトを使って開発しているのでしょうか?
147:デジタルハリウッド偏差値45
12/11/09 22:36:07.04 8DN5+ede
>>146
Unity
148:名前は開発中のものです。
12/11/09 22:42:50.09 Dzz1dA77
>>147
ゲームエンジンが主流ですか、Unityなら言語はC++でしょうか?
DXライブラリというものも耳にしますが、あれは何なのですか?
149:デジタルハリウッド@偏差値45
12/11/09 22:44:39.99 8DN5+ede
>>148
わかりません
Unityやってます
はいjavasciptでUnityを使います
シューティングゲームみたいなのを作っています
150:名前は開発中のものです。
12/11/09 22:48:57.56 lyg7gPNA
>>145
>さーせんintが16bitと勘違いしてた
16bit機なら間違ってない。
151:名前は開発中のものです。
12/11/09 22:51:56.08 pwxZtJFc
PCのFPSなら、作品数で多いのはudk またはunreal engineかと。やったことあるならロゴはみたことあるよね。
それかc++とdirectXで内製するかかな?
dxlibは公式みればわかるけど、directXのラッパーで扱いやすくしてるらしい。2dがメイン?
3Dは一応dxlibでもあるらしいよ。使えるか使うほどのものかは自分で調べてね。
公開されてるゲームエンジンならtorque3dとか、ogre3d(c#とかあるけどどれだけ利用されてるかはしらないな。
152:デジタルハリウッド@偏差値45
12/11/09 23:03:02.76 8DN5+ede
>>148
あ、javascirptやってればいいと思います
僕は学校でunityのjavascirptを使ってunityゲームつくってます
あ、そうなんですか
FPSはあれがすきです
ゴーデンアイです
日本のゲームしかわかりません
153:名前は開発中のものです。
12/11/09 23:17:07.62 Dzz1dA77
>>149
>>151
おぉレスありがとうございます、早速いろいろと調べてみます
ちなみに好きなFPSはAVAです
154:デジタルハリウッド@偏差値45
12/11/09 23:22:45.88 8DN5+ede
>>153
AVAですか
でもAVAってネトゲですよ
運営のGAMEONは韓国資本です
搾取されてる感じなのでネトゲはあんまり好きじゃないです
155:名前は開発中のものです。
12/11/10 00:06:42.01 ZRDvwXZX
(^q^)FPSが大好きです、どうやって作ればいいですか?
156:名前は開発中のものです。
12/11/10 00:09:07.07 /iHA2cHX
>>155
まず服を脱ぎます
157:名前は開発中のものです。
12/11/10 00:26:49.89 C6N3xOd/
C++製の同人ゲーでオススメは?
158:名前は開発中のものです。
12/11/10 00:51:56.35 c/VcRE9w
CかC++かとかわからんやろ~
159:名前は開発中のものです。
12/11/10 01:42:45.45 jSSOLfjK
>>157
どうやって判断すんだw
160:名前は開発中のものです。
12/11/10 01:51:18.61 uDOWmTU2
readmeや自サイトに書かれてることは少なくないけどね
161:名前は開発中のものです。
12/11/10 08:04:43.07 vuCkQhFB
DXライブラリ使ってれば大抵C++
162:名前は開発中のものです。
12/11/10 08:58:28.72 WCv+J7TM
同人ゲームならコミケ行って開発者に聞くのが早くね?
163:名前は開発中のものです。
12/11/10 09:08:47.06 vuCkQhFB
バイナリエディタでexeを開いて「C++」で検索すると、「Visual C++ Runtime Library」という文字列が出てきた
VC++製のプログラム全部に含まれるみたいだからこれで判別できるな
164:デジタルハリウッド@偏差値45
12/11/10 09:41:21.35 LnFUWnqt
>>155
Unityがいいですよ
DirectXっていうのは時代遅れです
C++も時代遅れです
Javascriptがブームです
Unity Game Jamっていうサークルがあるのでよかったらきてください
FPS作ってる人もいます
165:名前は開発中のものです。
12/11/10 09:44:50.76 JDLvE6hN
UnityみたいなゲームエンジンもJavascriptで作れる時代なのか・・・
GooogleのV8もJavascriptで書かれてるのかな
そのうちJavascriptでOS書いたりデバイスドライバ書いたりできるようになるかな?
166:名前は開発中のものです。
12/11/10 10:17:43.51 hp96843s
>>165
なんか勘違いしてるっぽい
167:名前は開発中のものです。
12/11/10 11:19:24.13 JDLvE6hN
まさか時代遅れのC++やさらに古いC言語で書かれてたりしないですよね?
168:名前は開発中のものです。
12/11/10 11:20:29.38 7J8tbM/I
俺はjavascriptで身長伸びて彼女できて宝くじが当たったよ
169:デジタルハリウッド@偏差値45
12/11/10 11:23:04.28 LnFUWnqt
僕はUnityとjavascript使ってゲーム作ってるよ
C++とか時代遅れだよ
javascriptの時代だよ
170:名前は開発中のものです。
12/11/10 11:24:43.50 GU+cQ84R
高度な釣り
171:名前は開発中のものです。
12/11/10 11:39:58.87 ugQSrMUN
高度ではないだろ
172:名前は開発中のものです。
12/11/10 12:39:11.62 HViNGugV
どこからが釣りなの?
>ゲーム製作におけるC/C++全般に関するスレです。
まさかこれ?
173:デジタルハリウッド@偏差値45
12/11/10 12:42:27.01 LnFUWnqt
???
174:名前は開発中のものです。
12/11/10 12:47:00.70 L5/NCAoO
馬鹿と無知としったかはほっておけ。スルースキルは2chのスキルの中で最も重要
175:名前は開発中のものです。
12/11/10 12:51:39.87 HViNGugV
>>174
もともと釣りじゃなかったのか、了解した
176:デジタルハリウッド@偏差値45
12/11/10 12:58:26.41 LnFUWnqt
C++のnewってどういう意味でしょうか?
177:名前は開発中のものです。
12/11/10 13:01:59.44 7J8tbM/I
newはjavascriptにもあるだろ
178:名前は開発中のものです。
12/11/10 21:44:09.79 kdgWH7qz
javascriptwwwww
ブラクラゲームかwwwww
179:デジタルハリウッド@偏差値45
12/11/10 22:20:18.38 LnFUWnqt
何がおかしいんですか?
180:名前は開発中のものです。
12/11/10 22:39:49.87 zPoeI4Ci
初心者でも今時JavaとJavascriptは混同しねーよwww
181:名前は開発中のものです。
12/11/10 22:51:17.47 0f/wz9cV
誰かブラクラゲームに突っ込んでやれよw
182:名前は開発中のものです。
12/11/10 22:57:47.64 zPoeI4Ci
余計なJavaScriptはウザいからそういう皮肉かと思った
183:名前は開発中のものです。
12/11/13 09:12:21.25 9N5q0Xsj
話題ないみたいだからちょっと質問
透明色含んだビルボード表示するときにvectorに突っ込んで表示順ソートしてるんだけどなんか遅そうな気がする
もっと効率的にソートする方法ないかな
もしくはzバッファ切った方がいいの?
184:名前は開発中のものです。
12/11/13 09:30:12.70 8Q0utp4J
>>183
何個ソートしてんの?
185:名前は開発中のものです。
12/11/13 10:33:03.40 9N5q0Xsj
>>184
3Dシューティングぽいので弾を全部ソートしてるから最大で300くらいかな?
敵増やすと増えるからちょっとあいまいだけど
186:名前は開発中のものです。
12/11/13 10:37:25.65 4wR9uF6j
たった300なら何も問題ない
ただ、vectorにはポインタを詰め込むべき
vectorはlistと違ってソート時にメモリを直接置換するから、構造体のサイズがそのままネックになる
ポインタを詰めれば毎フレーム10000以上の要素をソートしても60fps余裕だよ
187:名前は開発中のものです。
12/11/13 11:35:18.71 A9vKBFCi
vectorの中身をポインタにして比較関数の中でポインタの先参照して比較って感じでいいのかな?
188:名前は開発中のものです。
12/11/13 14:36:53.02 7uL1yheX
でも「毎フレーム全ソート」って本当に必要?
弾が作られた時にだけ適所にインサートすればいんじゃない?
189:名前は開発中のものです。
12/11/13 15:38:57.87 4wR9uF6j
ソート方法によるけど、STLのマージソートは未ソートの要素が多いほど時間が掛かって、
ソート済の場合ほとんど処理を食わないから毎フレームソート処理してても大して問題ないはず
それに>>185は3D空間のオブジェクトのソートをしてるというから、カメラがちょっと動いただけでもソートの必要が出る
ソート関数にかけること自体がソートする必要があるかの判定になってると言ってもいい
190:名前は開発中のものです。
12/11/13 16:39:59.60 eWkVVOn6
>>183ですが
とりあえずstlのソートでも十分速いと言うことなので安心した
勉強になりました
191:名前は開発中のものです。
12/11/13 21:04:01.78 cEtJDQKT
横。
vectorにポインタを格納するとして、本体はどこに置くの?
もちろん状況次第だとは思うけど、別のvectorとか?
192:名前は開発中のものです。
12/11/13 21:19:11.80 a9WU8SHc
ヒープ
193:名前は開発中のものです。
12/11/13 21:43:47.14 HVfjUt4J
newしろ
194:名前は開発中のものです。
12/11/13 21:56:20.66 Oj4WY+EN
固定で別の配列にするのが普通だと思う
195:名前は開発中のものです。
12/11/13 22:23:30.25 4pvX9vHm
なら実データをvectorに入れればいいじゃん
196:名前は開発中のものです。
12/11/13 22:35:19.83 R7nFxA7+
シーンの最初と最後に生成、破棄するならauto_ptr使って
ポインタだけvectorで管理するのもありなんじゃないかと
思ったんだがどうだろうか
197:名前は開発中のものです。
12/11/13 22:43:12.39 HVfjUt4J
とりあえずauto_ptrとかいうゴミを捨てるんだ
198:名前は開発中のものです。
12/11/13 22:57:50.27 R7nFxA7+
よく考えたらauto_ptr使って元のポインタだけ管理しようとしたら
newしてる関数抜けた瞬間deleteされるからダメかw
199:名前は開発中のものです。
12/11/13 22:58:45.26 BrAT+Ts5
もうauto_ptr時代遅れなん?
200:名前は開発中のものです。
12/11/13 23:01:15.07 KobHHPjK
気にせず使ってください^^
201:名前は開発中のものです。
12/11/13 23:01:32.88 k2b3NisB
auto_ptrってなんですか? どうしてunique_ptrを使わないんですか?
202:名前は開発中のものです。
12/11/13 23:02:03.36 R7nFxA7+
c++11でdeprecated指定だって
URLリンク(en.m.wikipedia.org)
なんかunique_ptrが代わりになるのかな?
203:名前は開発中のものです。
12/11/13 23:07:03.03 k2b3NisB
スコープを抜けるときに自動で閉じるファイルポインタとか
例外いつ投げても閉じてくれるので便利ですね?
std::unique_ptr<FILE, decltype(&fclose)> fp(fopen("filename", "r"), fclose);
204:191
12/11/14 00:25:26.13 CmmzPOW9
>>192-194
最初から数が分かってるか、途中で増えるか等に応じて、
普通の配列、配列の動的確保、vectorあたりを使い分けるって感じかな?
205:名前は開発中のものです。
12/11/14 07:47:57.43 f09Uuje+
vectorで実体まとめるとバッファのリサイズ発生した時にアドレス変わるんじゃない?
206:名前は開発中のものです。
12/11/14 08:50:51.27 Za6Nl7tI
そんなの当たり前じゃん。
207:名前は開発中のものです。
12/11/14 08:58:13.52 f09Uuje+
vectorで実体管理してソートのためにポインタのvector使ったら
リサイズ発生した時点で参照変わるからちゃんと動かなくなるよね
最初に確保した分より増えないなら大丈夫だろうけど
これ発生したら原因特定めんどくさそう
208:名前は開発中のものです。
12/11/14 09:06:59.91 CmmzPOW9
あー、それもそうか。失敬
209:名前は開発中のものです。
12/11/14 15:05:59.50 Za6Nl7tI
>>207
っていうか「Vectorで実体管理」がそもそも意味不明。
ポインタで管理してるならそれだけでいいじゃん。
210:名前は開発中のものです。
12/11/14 16:31:57.71 OuQGweox
確かにvectorにポインタいれときゃそれでdelete出来るな
自分でちゃんとdeleteするならそれで十分か
211:名前は開発中のものです。
12/11/14 17:44:55.77 3cThVkCw
newしたポインタはとりあえずstd::unique_ptrかstd::shared_ptrに入れるべき
deleteなんて自分で書いたら負けだぞ
デストラクタもハンドル管理クラスみたいなの以外では自分で書いたら負け
212:名前は開発中のものです。
12/11/14 18:27:52.20 lHOdfYqK
それは一般レベルの場合な
我々のように国家機密レベルでやってる場合は違う
213:名前は開発中のものです。
12/11/14 18:36:32.02 5BbMRJco
何に負けるんだよ
見えない敵と戦う労力こそが一番の無駄
214:名前は開発中のものです。
12/11/14 19:00:59.45 3cThVkCw
見えない敵というとメモリリークですね
まあ、お遊びプログラムならすぐに終了されるので
リークしても問題ないのかもしれませんが
215:名前は開発中のものです。
12/11/14 19:09:24.21 3BI2eEEx
shared_ptrはvectorに入れても大丈夫なのか
vector<shared_ptr<クラス>>でやっときゃ勝手に消えてくれそうだな
216:名前は開発中のものです。
12/11/14 19:15:38.28 CmmzPOW9
>>211
十行くらいのブロックで、かつ外に出すつもりもないならnew/deleteで書いちゃうなあ
217:名前は開発中のものです。
12/11/14 19:28:19.33 BbQiy07V
リークするのはお前の脳みそだけにしておけ
218:名前は開発中のものです。
12/11/14 19:32:08.10 FHk4zIEt
うんまぁお前らも一番実感してると思うけど、自分のルールの一貫性を保つことが一番大事だからな
もちろん柔軟に対応するのも大事だし柔軟に対応できるような構造にしておくことはもっと大事だが
219:名前は開発中のものです。
12/11/14 19:38:37.20 3BI2eEEx
>>216
ブロックの外に出さないならローカル変数の方がよくない?
可変長だと無理かもしれんけど
220:名前は開発中のものです。
12/11/14 19:40:11.42 3cThVkCw
生ポインタの場合
A* a = nullptr;
B* b = nullptr;
try {
a = new A();
b = new B();
doSomething(a, b);
}catch(...){
if (a) { delete a; }
if (b) { delete b; }
throw;
}
delete a;
delete b;
std::unique_ptrを使う場合
std::unique_ptr<A> a(new A());
std::unique_ptr<B> b(new B());
doSomething(a.get(), b.get());
なぜわざわざ生ポインタを使おうとするのか、理解できない
221:名前は開発中のものです。
12/11/14 19:52:16.75 3BI2eEEx
生ポとは関係ないんだけど、例外処理ってしてる?
tryは遅いらしいと何かでみたから基本投げっぱなしスープレックスなんだけど
実際どうなん?
222:名前は開発中のものです。
12/11/14 19:56:47.63 aP39cEyY
投げっぱなしだとexeが落ちちゃうだろ…(Windowsなら
223:名前は開発中のものです。
12/11/14 20:00:51.70 K6TezrTK
落ちなかったらバグったまま続いちゃうじゃん?
224:名前は開発中のものです。
12/11/14 20:45:10.81 S4/fLXg9
なんでC++11前提で話してるのか理解できない
225:名前は開発中のものです。
12/11/14 20:49:59.82 3cThVkCw
C++11じゃないならboostを使えばよろしい
226:名前は開発中のものです。
12/11/14 21:04:33.08 KC8fJK0S
>>222
デバッグで例外が発生したら例外の原因箇所にチェック入れて防ぐように修正してる
基本は例外じゃなくて戻り値で成否を返すような感じ
227:名前は開発中のものです。
12/11/14 22:40:22.29 FilUuDwR
スマートポインタの名前の長さは
C++スタイルキャストを思い出す
228:名前は開発中のものです。
12/11/15 00:52:00.71 CCQxRnc8
ふと思ったんだが、ゲーム・アプリのプレイ期間中に、
同一スコープ内でnewして解放する局面ってあるか?
つうか、プレイ期間中じゃなくても、同一スコープ内で
newして解放する局面って思いつかないな。
同一スコープ内なら、非ポインタのオブジェクト変数で済ませる。
229:名前は開発中のものです。
12/11/15 08:27:34.76 kybbSnHR
コンストラクタに引数必須とか?
230:名前は開発中のものです。
12/11/15 13:27:32.69 CCQxRnc8
>>229
変数定義に引数記述してもコンパイル通るよ。
class Test {
public:
Test(int arg);
:
};
int a = rand();
Test ins(a);
231:名前は開発中のものです。
12/11/15 13:44:36.27 FiWT7kKo
>>230
出来るんだ…
考えてみれば出来ない理由もないか
じゃあ>>203みたいにポインタ返すけど、後始末は呼び出し側がやらないといけない関数とかかな?
あとはスタックにデカイ領域作りたくないとか?意味があるかはわからんけど
232:名前は開発中のものです。
12/11/15 17:38:22.10 CCQxRnc8
>スタックにデカイ領域作りたくないとか
これはあるかもね。
とは言っても具体的な局面が思い浮かばない・・・
233:名前は開発中のものです。
12/11/15 19:13:59.62 JDzb/9N7
スコープ抜けたら勝手に消えるだけがメリットじゃないだろう
メンバ変数にしておけば親が死ぬとき勝手に死んでくれるし
ていうかスマートポインタ使わないとコンストラクタで例外が発生した時どうするんだ
234:名前は開発中のものです。
12/11/15 20:24:55.99 CCQxRnc8
具体的にどんな例外を想定してるの?
235:名前は開発中のものです。
12/11/15 21:06:29.19 JDzb/9N7
なんでスマートポインタを使うのを躊躇うの?
unique_ptrは自動的にdeleter呼んでくれる上に
性能的には生ポと同じコストで使えるんだぞ
236:名前は開発中のものです。
12/11/15 21:15:04.36 V2Q8QmNk
>>235
別に躊躇ってる人は居なくね?
237:名前は開発中のものです。
12/11/15 21:16:59.75 /bYy5p67
なんかこの流れ前にも見たな
今話してるのはunique_ptr使うんだったら普通にautoで変数定義すればよくね?
って所だと思うが
238:名前は開発中のものです。
12/11/15 21:17:12.28 f9BWxP4M
なんでC++11やboost前提で話してるのか理解できない
239:名前は開発中のものです。
12/11/15 21:24:24.52 V2Q8QmNk
この板的には、まだまだ11前提とするには厳しいかなー?
240:名前は開発中のものです。
12/11/15 21:37:01.79 JeS5pTB2
新しいもの好きなのはいいけど自分がマイノリティなのに気づけよ
241:名前は開発中のものです。
12/11/15 21:41:59.03 JDzb/9N7
>>237
お前は何を言っているんだ
スマートポインタと型推定は全然違う話だぞ
>>239
STLすら厳しそうだ
なぜだか自作ライブラリのほうが優れてるとか勘違いする奴が多いんだよな
242:名前は開発中のものです。
12/11/15 21:45:29.61 JDzb/9N7
ゲーム開発とSTL
URLリンク(d.hatena.ne.jp)
C++を知らないゲームプログラマ達
URLリンク(d.hatena.ne.jp)
243:名前は開発中のものです。
12/11/15 21:48:28.33 Dmy8apjq
>>241
まず話の前提として>>228があってそもそもnewする必要なくね?という問題提起があるんすよ
あと型推定ってなんすか
244:名前は開発中のものです。
12/11/15 21:51:46.71 V2Q8QmNk
autoには2種類あるから、そこですれ違ってるんじゃない?
245:名前は開発中のものです。
12/11/15 21:55:52.06 Dmy8apjq
ごめん、c++11のautoと勘違いさせたか
俺が言ったのはただの自動変数のことです
246:名前は開発中のものです。
12/11/15 21:56:18.09 V2Q8QmNk
>>241
>STLすら厳しそうだ
>なぜだか自作ライブラリのほうが優れてるとか勘違いする奴が多いんだよな
いや、既存ライブラリを使わない病気のじゃなくw
247:名前は開発中のものです。
12/11/15 21:56:44.58 JDzb/9N7
スタックオーバーフローしないならnewする必要はないな
でもスマートポインタの使い道ってそれだけじゃないよ?
むしろクラスのメンバ変数にこそ使ってほしい
デストラクタを自分で書くのはもうやめよう
あと、C++11ではautoの意味が変わりました
C#のvarみたいに変数の型を推定してくれるので
STLのイテレータとか死にそうなくらい長い型名でも
for(auto i = v.begin(), e = v.end(); i != e; ++i) { ... }
こんな風に書けて超便利な機能です
248:名前は開発中のものです。
12/11/15 21:58:09.46 JeS5pTB2
STLは慣れるまでは内部でどういう処理してるのかわからなくて気持ち悪い部分はあったな
249:名前は開発中のものです。
12/11/15 22:06:00.91 AHySL0i4
内部のことなんて知らなくていいんだよ
使い方を知ってれば、低能でも使えるのがSTL
だからこそ意味がある
250:名前は開発中のものです。
12/11/15 22:11:50.11 AKJanR6y
>>249
それでバグ出したらデバッグで死ねるな
251:名前は開発中のものです。
12/11/15 22:14:31.65 JeS5pTB2
コード書き間違えるとたまにSTL内部のコードに誘導される時があるよな
記述ミスったところでエラー検知してくれよと言いたくなる
あと気になるのはゲームだからだろうな
静的プログラムなら負荷が発生するパターンなんてどうでもいいけど、
動的プログラムだとそこら辺完全に把握してないと非常に気になる
252:名前は開発中のものです。
12/11/15 22:18:29.51 CCQxRnc8
>>247
>むしろクラスのメンバ変数にこそ使ってほしい
なぜ自動変数ではダメなん?
253:名前は開発中のものです。
12/11/15 22:25:11.84 JDzb/9N7
STLだとメモリを自分で管理できないとか言ってる奴はいないか
URLリンク(www.slideshare.net)
>>252
スタックオーバーフローしないならnewする必要はないな
254:名前は開発中のものです。
12/11/16 07:35:50.58 wj9cLs/W
URLリンク(www22.atpages.jp)
URLリンク(www22.atpages.jp)
255:名前は開発中のものです。
12/11/16 13:39:30.43 BTfLhLXO
絵柄と相まって小学生が好きそうなノリだなw
256:名前は開発中のものです。
12/11/16 16:46:04.64 N1OcN+jA
vector配列のvector配列をvector配列で管理する三次元配列って開放する時大本だけ開放しておけばおk?
257:名前は開発中のものです。
12/11/16 17:19:36.14 BTfLhLXO
vector<vector<vector<int> > > か?
実体さえ行方不明にならなければどうとでもなるが
newしたものを格納してるならshared_ptrじゃないと危ないかもな
258:名前は開発中のものです。
12/11/16 18:07:16.53 sOBt52RE
typedef shared_ptr<MapData> MapTip
typedef vector<MapTip> Map1D
typedef vector<Map1D> Map2D
typedef vector<Map2D> Map3D
259:名前は開発中のものです。
12/11/16 19:28:23.88 N1OcN+jA
ポインタじゃなくて実体を格納するなら大丈夫なのか
クラスのメンバとしてコンテナ使ってると混乱してくる
260:名前は開発中のものです。
12/11/16 21:05:15.58 JKxfRh2i
別にポインタを格納しても何の問題もねえよ混乱しすぎ
Actor* actor = MapTip[0][4][6];
a->Draw();
みたいなアホな事してないなら何の問題もない
261:名前は開発中のものです。
12/11/16 21:08:12.91 N1OcN+jA
混乱してるのはそこじゃねーよ!
262:名前は開発中のものです。
12/11/16 21:16:48.82 JKxfRh2i
>>261
悪い、ちょっと想定がアレな上にアホな事コード(vectorのアドレス保存して云々が正しくアホなコード)も間違ってるというアレっぷり
実体なら問題はないが、個人的にはコピーコストが馬鹿みたいにかさむからshared_ptr推奨したいな
メンバのメンバのメンバの...みたいに順々にデストラクタは働くので、実際にユーザーが使用した型であるvector<vector<vector<T>>>をclearすれば、Tのデストラクタがちゃんとしてるならば処理される
263:名前は開発中のものです。
12/11/16 21:28:55.22 bHfLv1nY
所有権を共有する必要はないのでunique_ptrを使いたいけど
ポリモーフィズムに対応してないという弱点のせいでshared_ptrにせざるをえない
264:名前は開発中のものです。
12/11/16 21:37:31.95 BTWHJeh/
ていうかunique_ptrってコピーしても大丈夫なん?
265:名前は開発中のものです。
12/11/16 21:56:59.63 Tl4n6tnv
なんのゲーム作ってるのか誰も書かないではないか。
266:名前は開発中のものです。
12/11/16 21:59:18.17 JKxfRh2i
>>264
unique_ptrはコピー不可能だよ moveは可
>>263
ポリモーフィズムに対応していない、とは……??
URLリンク(ideone.com)
267:名前は開発中のものです。
12/11/16 22:12:13.09 bHfLv1nY
あれ、できるようになってる・・・?
前はva[1] = std::move(b);で怒られてた気がしたんだけど
#include <memory>
#include <vector>
struct A {
int val;
A(int i):val(i){}
};
struct B : public A {
B(int i):A(i){}
};
int main()
{
std::vector<std::unique_ptr<A>> va(2);
std::unique_ptr<A> a(new A(1));
std::unique_ptr<B> b(new B(2));
va[0] = std::move(a);
va[1] = std::move(b);
for(auto& i : va) {
printf("%d\n", i->val);
}
}
268:名前は開発中のものです。
12/11/16 22:48:49.93 EdJd2yN1
すみません
質問です
1次元配列で使用可能な要素を前に詰める関数を書きたいのですがどういう方針で行ったら良いでしょうか?
例えば
TestArray[8]があって、その関数実行後に
|○|○|×|×|○|×|○|×|
↓
|○|○|○|○|×|×|×|×|
のようにしたいのです
どなたか良いアイデアをお持ちの方よろしくお願いします。
269:名前は開発中のものです。
12/11/16 22:51:01.79 b7Jxtx/j
普通にソートじゃだめなん?
270:名前は開発中のものです。
12/11/16 22:57:44.20 bHfLv1nY
安定じゃなくても良いなら
for(;;) {
前から×を探す
後から○を探す
swap
前と後ろが逆転したらbreak
}
271:名前は開発中のものです。
12/11/16 22:58:20.10 EdJd2yN1
>>269
1フレームで10以上呼ぶつもりなので出来るだけ高速な処理をしたいんです。
値の大小が無いだけで、ソートのようなプログラムになることは理解できるんですが・・・。
272:名前は開発中のものです。
12/11/16 22:58:32.75 BTWHJeh/
間つめたいだけじゃないの
普通に先頭から見てってつめればいんじゃない
273:名前は開発中のものです。
12/11/16 22:59:05.57 JKxfRh2i
>>268
std::sort使って、比較関数だけ自前で書く
>>270
std::sortを薦めろや…
274:名前は開発中のものです。
12/11/16 23:01:41.02 BTWHJeh/
ソートだとO(nlogn)になるじゃん
間つめるだけならO(n)ですむ
275:名前は開発中のものです。
12/11/16 23:03:52.15 N1OcN+jA
今時ゲームにその程度の高速化必要か?
276:名前は開発中のものです。
12/11/16 23:07:21.91 bHfLv1nY
そもそもなんでそんなことになるかな
途中の要素を削除するときは末尾の要素とswapしてから削除すれば良いだけだろ
277:名前は開発中のものです。
12/11/16 23:16:25.42 JKxfRh2i
出てるのに加えて使用可能と不可能で別のスタックでも使えばいいとか、色んな方法が考えられるな
>>274
汎用のブツを使うべきだろ、高速化が必要な風にも見えんし
必要ならその時点で書きなおせばいい
278:名前は開発中のものです。
12/11/16 23:19:43.28 EdJd2yN1
>>272さんの言う通り普通に前から詰めます。ありがとうございました。
279:名前は開発中のものです。
12/11/17 04:14:11.89 Yvb5b4+U
パフォーマンスを気にしたら、その分ゲームが完成から遠ざかる気がする
「できるだけ速く」ではなく、
「aaの環境でbbくらい時間がかかるが、ccくらいの時間にしたい」
が明確になるまでは、パフォーマンス気にしないほうがいんじゃね
もちろん遅すぎて論外なことをやらない、って前提ありきだけど
280:名前は開発中のものです。
12/11/17 11:37:53.11 aR98lbIK
昔はSLGを遊ぶ場合、敵の思考モードに入るとそれだけで数分かかったものだよ
281:名前は開発中のものです。
12/11/17 16:54:20.20 WXt99mEx
数分?
282:名前は開発中のものです。
12/11/17 17:03:31.27 N5wMv0H7
・・・思考中デス・・・
今じゃパターン総当りでもまったく気にならないからなー
いい時代になったもんだ
283:名前は開発中のものです。
12/11/17 21:31:41.79 lAYofdVH
処理ごとの時間を測れるライブラリみたいのつくっておけばいいのに。
そうすれば、
遅くなりそうなところが、実際は、別のところがネックだったってのが
わかるし、変に悩まなくてすむ。
284:名前は開発中のものです。
12/11/17 21:33:12.27 N5wMv0H7
普通に計測プログラム用意したり、処理の途中に時間計測して個別に比較したりするんじゃダメなん
285:名前は開発中のものです。
12/11/17 21:36:26.15 wjcsv03f
プロファイラぐらい使えよ
286:名前は開発中のものです。
12/11/17 22:50:47.28 4SSSv3ja
俺のプロファイリングによるとこのスレの住人は10代から20代、もしくは30代から40代、50以上の年齢の男性あるいは女性
プログラミング自体には精通しておらず、文法を覚えている程度の初心者と思われるが、必ずしもそうとは言えない
287:名前は開発中のものです。
12/11/17 22:53:57.31 FLG+6H3e
最近は「素人が○○することは考えにくい」って言うんじゃないのか
288:名前は開発中のものです。
12/11/17 23:00:28.20 4SSSv3ja
これか
URLリンク(www.jiji.com)
バイナリからソースが外付けストレージにあったとか判るもんなのか
289:名前は開発中のものです。
12/11/17 23:09:23.72 vLrNZqQF
何らかの形でディレクトリのパスが入ることはあるだろうけど
ストレージの種類までは記録されたりせんよ
CやDじゃないから、ぐらいの根拠だろう
290:名前は開発中のものです。
12/11/17 23:15:36.55 wjcsv03f
>>288
自分でコンパイル後のバイナリ確認してみ?
パスは入ることもあるよ。
気になるならバイナリエディタ辺りで消せばいい。
動作に問題はない。
291:名前は開発中のものです。
12/11/17 23:45:04.79 N5wMv0H7
龍神録の館ですら説明してるし
292:名前は開発中のものです。
12/11/18 02:01:16.37 a/mIzCX9
ボタンのクラス作ったんだけど
class ButtonにDraw()関数にboolの戻り値つけて押されているか押されてないか判定するのってあり?
293:名前は開発中のものです。
12/11/18 03:37:14.26 G8vKCtAR
混乱するのでナシ
自分でちゃんと把握できるのなら挙動がすべてなのでどう書いてもいいが
294:名前は開発中のものです。
12/11/18 04:23:18.47 OtH/PY93
ありがとう。ボタンクラスが、出来た!
class Button{
POINT CoordUL,CoordDR;//右上、左上座標。
int m_nONButtonTexture;//押された時のテクスチャ番号
int m_nOFFButtonTexture;//押されてない時のテクスチャ番号
XMMATRIX m_Transform;//変形行列
public:
void Draw();//画面上に描画。
//コンストラクタ。
Button::Button(int ulX,int ulY,int drX,int drY,
int nONButtonTexture,int nOFFButtonTexture);
//押されているかどうか。
bool PushCheck(int nMousePosX,int nMouseY);
};
295:名前は開発中のものです。
12/11/18 04:33:06.01 JhTLY1BD
C++では多少の粗は速度でカバーする!
296:名前は開発中のものです。
12/11/18 09:28:38.84 1KRliL9g
まあ適当に作ってもそれなりに速度でるもんな
コードに時間かけるよりバグ出さないような
設計、書き方に気を付けた方が幸せになれる
jsでブラウザゲームとか作ってみたら遅すぎて泣けてくる
297:名前は開発中のものです。
12/11/18 09:42:02.13 t3/vK/l2
最近の女子小学生はブラウザゲームとか作るのか
298:名前は開発中のものです。
12/11/19 00:02:52.78 xStQIj1y
遅すぎると逆に萌えるなそれは。
299:名前は開発中のものです。
12/11/19 08:00:26.59 Z7RVi5qW
ふええ、こんなにいっぱいしょりできないよお
300:名前は開発中のものです。
12/11/20 05:52:27.33 JIlX6vOn
>>267
これ見てて思ったんだけど、
struct A と struct Bはそれぞれ非仮想の暗黙のデストラクタを持つじゃない。
すると std::vector<std::unique_ptr<A>> va(2) が破棄されるときには Aのデストラクタが呼ばれるよね。
#include <iostream>
#include <memory>
#include <utility>
struct A{
int val;
A(int i):val(i){};
};
struct C{ int dummy; };
struct B : private C,public A { // 多重継承を用いて vtbl の計算を複雑にする。
B(int i):A(i),C(){};
};
int main(int,char*[]){
std::unique_ptr<B> b( new B(10) );
std::cout << "\(^-^)/" << b->val << std::endl;
std::unique_ptr<A> a(nullptr);
a = std::move( b );
return 0;
}
(これは、わざと落ちるようstruct Cを入れて多重継承してみたんだけど、
問題はBのデストラクタは走らないよの部分)
暗黙のデストラクタって気にする?
301:名前は開発中のものです。
12/11/20 07:24:43.57 JIlX6vOn
暗黙のデストラクタって気にする?じゃ意味がつたわんないな。
多分 struct Aの定義は、割と普通にやるとおもう。
じゃあ Bを書いた時点でAを public 継承してるけどAには仮想のデストラクタが用意してないから、
B*をA*にキャストして、それをdelete したらこけるじゃん Aに仮想デストラクタを用意するように
お願いするかAの継承をあきらめてメンバで持つようにするか B*を A* にキャストして、delete
するのはだめよとココロの中でお願いするか選択肢が出てくると思うんだ。
main 書いてる最中も std::move の時点で、struct Aのデストラクタは、非仮想だから、
unique_ptr<A> の破棄時にstruct Bのデストラクタが呼ばれないなと気がつかないといけない
と思うんだけど、正直最初、自分は全部スルーしてた。
暗黙のデストラクタは非仮想であることにみんなどのあたりで気がつくように訓練してる?
302:名前は開発中のものです。
12/11/20 11:56:10.65 Hewg6tab
継承元になるクラスにはvirtualなデストラクタを付ける、を習慣にするしか…
303:名前は開発中のものです。
12/11/20 12:42:09.27 /LQmBJc6
C++ではAが継承を想定しないなら
Aを継承しないのがふつうじゃん?
トラブルを避けるためにメンバに持つ。
暗黙のデストラクタが非仮想なのはあたりまえじゃん?
訓練してるってたんに知識の問題のような。
304:名前は開発中のものです。
12/11/20 18:03:15.21 YMT95jvg
常に全てにvirtual付けてりゃいいんじゃね
最適化の段階で外していけばいいよ
305:名前は開発中のものです。
12/11/21 02:32:47.54 O0QHrPFm
javaかよw
306:名前は開発中のものです。
12/11/21 08:07:42.08 Sa/LjIte
javaみたいにクラスの継承禁止って出来ないの?
と思って調べたらc++11からfinal追加されたのね
307:名前は開発中のものです。
12/11/21 19:50:13.57 i5WslLE/
小学生の息子にアクションゲームを作ってる所だけど、背景とか音楽が難しいー。誰かファミコンぽいやつ作れる人いないかな。
308:名前は開発中のものです。
12/11/21 20:13:31.23 RN32Cd3P
とりあえずプログラムでウィンドウを画面に出す
↓
画像を読み込んでウィンドウに表示させる
↓
キー入力を受け付ける処理を作る
↓
キー入力で画像の表示位置を変えたりアニメーションさせたりする
↓
画像表示のパターンを増やす
↓
完成
309:名前は開発中のものです。
12/11/21 20:56:45.03 i5WslLE/
>308
ありがとう。
一応、横スクロール、プレイヤー移動、弾発射まではできてて、今から敵とかダメージ判定とかやるつもり。音楽ないとさみしいなーとか、背景もっと森とかしたいなーとかおもってるけど、雲とかがせいぜいで、、、
310:名前は開発中のものです。
12/11/21 21:03:39.96 1xP0Jxk2
ファミコン風背景なんざペイントでグリグリでいいんじゃないの?
311:名前は開発中のものです。
12/11/21 21:17:48.26 e4cilLWo
>>310
素人が知ったかすんなよw
312:名前は開発中のものです。
12/11/21 21:19:49.30 1xP0Jxk2
何が知ったかなんだよw
313:名前は開発中のものです。
12/11/21 21:23:14.86 4ruuHy6d
>>307
えーと、質問の意味が分らないんだが。
絵や音楽を作るのが難しいと言ってるのか。
プログラムの話しどっちだ?
文体から前者にとれるんだが。前者ならスレ違い。
314:名前は開発中のものです。
12/11/21 21:25:40.22 1xP0Jxk2
「風」って言ってるから俺は素材だと理解したわ
風でいいならスプライトや和音の仕様をプログラムで再現する意味はないし
315:名前は開発中のものです。
12/11/21 21:25:58.45 hLXHgUEm
ファミコンはドット絵だからペイントで描くようなもんじゃないだろう
316:名前は開発中のものです。
12/11/21 21:29:25.50 4ruuHy6d
>>315
ルーペで拡大して描くんだろwしらんけどw
317:名前は開発中のものです。
12/11/21 21:34:52.78 1xP0Jxk2
ペイントでドット絵描いてる人は今も多いぞ
ドット絵なんてアンチエイリアス掛からないツールなら問題ないしな
それほどクオリティを求めないファミコン風なら、アンチエイリアスもかけないしペイントで十分
318:名前は開発中のものです。
12/11/21 21:53:06.25 i5WslLE/
>313
前者です。スレ違いみたいでした。すみません。
背景が難しいていったのはマップチップ作ってそれをループで並べてるんですけど、樹木とか遺跡っぽいのが作るの難しくて。
子供が寝たから今からまた作ります。
319:名前は開発中のものです。
12/11/21 22:32:54.29 Ar9mPays
実際にどういう絵にすればファミコンっぽくなるかが気になるなら
CG板にあるドット絵スレで質問するといいよ。
スレリンク(cg板)
一応この板にもドット絵スレは幾つかあるけど、あんまり動いてない。
あと音楽は分からん。たぶん2chのどこかにチップチューンスレとかあると思う。
320:名前は開発中のものです。
12/11/21 22:38:13.26 i5WslLE/
>319
ありがとうございます!
曲のほうはこの板の別スレで、リクエストできるスレがあったので、そちらにレスしてみました。
ドット絵は後で調べてみます。
今は、穴に落ちた時やライフゼロのときのゲームオーバーの判定実装してます。
321:名前は開発中のものです。
12/11/21 22:41:06.45 vU7vV5c8
ファミコンっぽくしたいなら、解像度を荒くする、色数を8色以下にする、マップチップのサイズを8*8にする、くらいじゃないのかな。
322:名前は開発中のものです。
12/11/21 22:47:05.46 4ruuHy6d
>>320
ドット絵なら素材じゃだめなんか?
素材サイト回れば一通りそろいそうだが。
323:名前は開発中のものです。
12/11/21 23:05:03.40 i5WslLE/
>322
前にマップチップで探してみたんですけどRPG 用ぽいのが多くて、とりあえず探すのやめてました。
324:名前は開発中のものです。
12/11/21 23:05:22.18 BpQGjbQp
マウス押された時呼ばれるコールバック関数があるのだけど、
メインループの関数内の処理によってコールバックの内容も変えたい。
どういう設計すればいいの?
325:名前は開発中のものです。
12/11/21 23:09:17.43 GbUHGBi8
コールバック関数を設定しなおすとかすればいいんじゃね?
326:名前は開発中のものです。
12/11/21 23:11:57.28 hLXHgUEm
int f;
main()
{
f=0;
f=1;
f=2;
}
コールバック(int f)
{
switch(f)
}
こんなんでいいんじゃないの
327:名前は開発中のものです。
12/11/21 23:31:26.12 BpQGjbQp
>>326
やっぱりそうかー。
fに当たる変数はグローバル変数で取ってるから受け渡しは必要ないんだけどやっぱりそうなるか。
main()で配列に関数ポインタ設定して、コールバックのほうで設定されている関数ポインタ配列から自動的に呼び出しとか面倒なこと考えてた。
ありがとう。
328:名前は開発中のものです。
12/11/22 00:45:52.42 Y6G4CBGg
敵がマップスクロールに引っ張られてくる、、
実装の仕方がまずいのかなー。プレイヤーはマップの真ん中の座標にきたらマップの描画位置をずらすようにしてる所が悪いんだろうか。
329:名前は開発中のものです。
12/11/22 01:20:33.58 ds3F2YzA
言ってる意味がわからない。
330:名前は開発中のものです。
12/11/22 01:45:38.18 Y6G4CBGg
画面が右にスクロールすると、左に進んでた敵の速度が遅くなってしまう。
331:名前は開発中のものです。
12/11/22 02:56:28.36 3oA0zPbz
大きく分けて、2つの実装方法があると思う。
例えば毎フレーム5ドットずつマップスクロールすると仮定した場合、
(1)スクリーン座標
プレイヤーキャラや敵キャラの位置を、画面上の座標として保持する方式。
「カメラ」は固定のまま、「舞台」が移り変わるイメージ。演劇みたいな。
背景はスクロールするが、実質的に固定画面ゲーと同じようなデザインなゲーム向きだろうか。例えばシューティングゲーム等。
プレイヤーキャラ: プレイヤーが操作しなければ座標は変更されない。
敵キャラ: 通常の動作(前進や停止など)に加えて、毎フレーム5ドットずつ加算される。
背景: 毎フレーム5ドットずつ加算される。
カメラ: 動かさない。
(2)ワールド座標
プレイヤーキャラや敵キャラの位置を、マップ全体から見た座標として保持する方式。
「カメラ」が移動して、マップ上の各オブジェクトを映しだす。TVのマラソン中継や競馬中継みたいな。
よって、自動スクロールの場合、プレイヤーが操作しなければプレイヤーキャラも画面外に消えてしまう。
画面上に表示される位置は、(マップ上の座標)-(カメラ座標)で求められる。
広いマップを探索するようなゲーム、スクロールのタイミングや速度がプレイヤーの操作で変わるゲーム向きか。マリオ等。
プレイヤーキャラ: プレイヤーが操作しなければ座標は変更されない。
敵キャラ: 通常の動作(前進や停止など)による変更。
背景: 動かさない。
カメラ: 毎フレーム5ドットずつ加算される。
……みたいな感じ。
332:名前は開発中のものです。
12/11/22 08:50:06.52 Y6G4CBGg
やりたいのは(2)のほうで、マリオとかみたいにプレイヤーが画面中央より左右に進もうとしたら、画面スクロールしようとしてます。
>331の内容見て、また考えてみます。
333:名前は開発中のものです。
12/11/22 09:18:15.26 3oA0zPbz
なら、次の順番で試してみるといいかもしれない。
各オブジェクトを表示するときは、(マップ上の座標)-(カメラ座標)に表示すること。
i. カメラを固定してキャラを動かす。
ii. プレイヤーの操作とは関係なく、カメラが自動的に右方向へスクロールするようにする。
iii. プレイヤーキャラが常に画面の中央に表示されるようにカメラを動かす。
iv. プレイヤーキャラがマップの端に居るときは、カメラが動かないようにする。
334:名前は開発中のものです。
12/11/22 11:19:22.25 RlzqnUp+
>>328
どんなのが作りたいのかそれだけじゃわからないけど
マリオっぽのならこれが参考になるじゃねーの?
ソースも入ってるよ?ライブラリはSDLだけど
URLリンク(www.vector.co.jp)
335:名前は開発中のものです。
12/11/22 11:50:57.17 eFQjOjmf
スクロールしたら敵ずれるって、スクロールした分敵の座標移動するの忘れてるだけじゃないのか
そんな単純な話ではないのか?
336:名前は開発中のものです。
12/11/22 12:26:19.16 3oA0zPbz
>>334
懐かしい! この板が発祥のゲームなんだよな。
337:名前は開発中のものです。
12/11/22 13:14:20.80 YppVmW6v
>>335
敵を移動するんじゃなくて、カメラを移動するのが王道。
ゲーム内のキャラクターはすべてワールド座標で処理すべし。
338:名前は開発中のものです。
12/11/22 13:25:14.45 eFQjOjmf
>>337
どっちにしろ描画するときに座標変換は必要だし
カメラ移動分の座標さっぴいてやらないとずれるし
パラメータをどう持つかはともかく、処理は必要だし
339:名前は開発中のものです。
12/11/22 14:44:38.27 XkqVanxt
>>338
カメラ座標変換マトリックスに任せておけ
340:名前は開発中のものです。
12/11/22 15:46:56.07 XgY5u7US
>>338
描画モジュールとそれ以外のモジュールがゴチャッてなければそこで不整合は起きないだろ
341:名前は開発中のものです。
12/11/22 18:47:04.04 BilY3FWQ
このスレってこういう初心者っぽい質問があるかと思えばたまに異次元みたいなワケわからない話が始まるし
距離感が掴みにくいな
342:名前は開発中のものです。
12/11/22 19:35:19.32 giYr9TgY
STLのアルゴリズムを使え使えって本に書いてあったから使って見てるけどコンパイルエラーを変なところに飛ばしやがってむかつく
343:名前は開発中のものです。
12/11/22 20:31:45.22 IVKuNp4c
STLのコンパイルエラーメッセージって分かり肉いよね
344:名前は開発中のものです。
12/11/22 22:06:07.74 44UwHnvI
>>342
中身完全把握しとけって事だよ
言わせんな恥ずかしい
まあ現実的に考えても最低限使い方だけでも完全把握してないとデバッグすら出来ない
なんとなくで使ってるといつか痛い目を見る…っていうか今見てるのか
345:名前は開発中のものです。
12/11/22 22:28:38.51 tBmxJtaY
初心者こそSTL使えという奴もいればこういう奴も居る
困ったもんだな
346:名前は開発中のものです。
12/11/22 22:35:28.92 44UwHnvI
配列の代わりに使うくらいなら問題ないんだろうけどな
347:名前は開発中のものです。
12/11/22 22:36:52.36 Gl1QEKN/
>>344
いや。
実際、STLの配列絡みのエラーの場合、エラーメッセージでなく、
むしろ自分の作業過程を思い出して、
配列やメモリを扱うロジックに思慮不足が無かったかを見直さないと、
訂正すべき個所をなかなか特定できない場合が多いぞ。
他人のコードをハックするには、当然センスが必要になってくるってことさ。
俺は、なるべく難しい問題を、なるべく自分でフルスクラッチすることが上達の早道だと思うね。
勿論、チーム制作で、未熟者にフルスクラッチされたら、たまったもんじゃないがな。
348:名前は開発中のものです。
12/11/22 22:41:09.07 F4NAJzUg
>>337
それは状況によるんじゃないの?
俺は固定マップの時はそうやったけど、
ループマップで、自機周辺でしか当たり判定等の処理をしない、という時は敵を移動させるようにしたぞ。
349:名前は開発中のものです。
12/11/22 22:46:01.23 Y6G4CBGg
>>333
今の処理の順序見直してみます。
今日とりあえずそこをなんとかして、形にしようと思ってます。
>>334
後でやってみます。ありがとうございます。
350:名前は開発中のものです。
12/11/22 23:23:16.03 uWBDaITV
音楽はRetro Music Editorでやってみる?
351:名前は開発中のものです。
12/11/22 23:38:20.65 Y6G4CBGg
>>350
インストールして適当に再生してみました。
ファミコンっぽい音が出るwww
ゲームの基本的な流れが出来たら、こっちも触ってみようかな。
352:名前は開発中のものです。
12/11/22 23:50:53.87 Y6G4CBGg
すみません。(マップ上の座標)-(カメラ座標)というのはどんなイメージになるんでしょうか。
今、
// マップを描く
for( int i = 0 ; i < MAP_DRAW_HEIGHT ; i ++ ) {
for( int j = 0 ; j < MAP_DRAW_WIDTH ; j ++ ) {
DrawGraph(j * MAP_SIZE + (mapMoveCnt) , i * MAP_SIZE , map[Map1_Data[i][j]] , true);
}
}
って感じでマップ描画してます(DXライブラリ使ってます)
mapMoveCntっていうのがマップの描画位置をずらす為に使ってて、
プレイヤーが画面中央に居る且つ、左右に移動した時にmapMoveCntを加減算してました。
これでスクロールをしてたんですけど、カメラを移動するってことはマップを描画する位置をずらすってことでしょうか??
353:名前は開発中のものです。
12/11/23 00:13:57.43 cFXLUjPO
うーんと
そもそも、それ2Dのマップ表示のコード(それもチップ?)だよね?
となるとカメラなんて使ってないでしょ。
>>331 で言うと(1)スクリーン座標
悪いこと言わないから
>>334 のソースDLして研究してみ
ライブラリはSDLだけどDXLIBを2Dで使うならやることは同じだから。
354:名前は開発中のものです。
12/11/23 00:16:00.60 GjI1Zcmz
>>352
だね。カメラが移動するってことは、見た目の位置がずれるってこと。
挙げられたソースだと、その mapMoveCnt がまさにカメラの座標に相当すると思う。
正確にいえば、そこに-1を掛けた値だけど。
まあ、単に減算するか、正負反転したものを加算するかだけの違いなので、やってることは同じ。
で、マップチップ以外のもの、「カメラ」が撮影する「舞台」上もの全てに、そのカメラ座標を減算する。
こうすれば、「カメラ」の位置に関わらず、各オブジェクトが画面上あるいは画面外を自由に動くことになる。
ここまで(>333の2番3番に相当)出来れば、あとはカメラをどう動かすかだけの話なので、
問題点をかなり絞り込めるはず。
355:名前は開発中のものです。
12/11/23 00:16:21.06 GZw5dyQ6
>>353
あ、カメラって3Dでのことなんですね。すみません。
>>334で書いてたのを今からDLしてソース見てみます。
356:名前は開発中のものです。
12/11/23 00:17:01.41 GjI1Zcmz
>>353
擬似的な「カメラ」と、3Dにおけるカメラをごっちゃにしてる
357:356
12/11/23 00:18:57.78 GjI1Zcmz
失敬、擬似的というよりは概念としてのカメラと言ったほうが正しいな
358:名前は開発中のものです。
12/11/23 00:28:34.06 cFXLUjPO
>>355
まあ、がんばって、昨日のお子さんに作ってる人かね。
>>356
どっちでもいいよ。
カメラ固定なんだからあまりカメラのことは考えなくていいと思う。
DirectXやOpenGL直に打つなら話は違うけど。
DXLIBを2Dで使うんだし。その辺はDXLIBがくるんでるっしょ。
359:名前は開発中のものです。
12/11/23 00:42:30.97 GjI1Zcmz
いやだから、何故3Dにおけるカメラの話を持ち出すのか
360:名前は開発中のものです。
12/11/23 01:09:13.45 yOOti4xC
>>359
普通は概念だろうがなんだろうが
それをカメラって呼ばないしどうでもいい
361:名前は開発中のものです。
12/11/23 01:14:50.46 Tfq3xGkn
いやカメラって呼ぶだろ
362:名前は開発中のものです。
12/11/23 02:09:55.26 GZw5dyQ6
>>358
そうです。今、モナーアクションゲームのソース見てます。
今日はこれ見て理解するだけで終わっちゃいそう、、、。
また明日の夜頑張ります。こうして質問に答えてくれる人がいるだけでも
モチベーションが違うきがします。>>354さんもありがとうございます。
363:名前は開発中のものです。
12/11/23 05:17:34.40 tAm612YR
ワールド座標からスクリーン座標に変換するロジック → カメラ
364:名前は開発中のものです。
12/11/23 06:41:13.52 hefSCrq5
キャラクターの位置を( X , Y )とする。(ワールド座標)
カメラの位置を( CX , CY )とする。
そうすると表示する位置は( X - CX , Y - CY )となる。(スクリーン座標)
カメラの位置が( 0 , 0 )の時はワールド座標どおりの位置に表示されるが、
カメラが右に1ずれる( 1 , 0 ) とキャラクターは1左にずれて表示される。
キャラもマップも同じようにしてあれば、カメラ次第でマップのどこでも自由に表示できるようになる。
って事だよね。
365:名前は開発中のものです。
12/11/23 06:57:02.76 74NPTa8/
平行移動だけじゃなくて回転やスケーリングやせん断やもうなんでもできるよ!
366:名前は開発中のものです。
12/11/23 09:58:16.44 mO6j71re
移動、回転、拡縮は行列で出きるとして、せん断ってどういうロジックになるんだ?
367:名前は開発中のものです。
12/11/23 10:17:08.64 74NPTa8/
普通に行列でできるよ!
基底ベクトルを直交させなければ良いだけだ!
1.0 0.1 0.0
0.0 1.0 0.0
0.0 0.0 1.0
368:名前は開発中のものです。
12/11/23 10:25:37.76 mO6j71re
>>367
なるほど
369:名前は開発中のものです。
12/11/23 11:01:21.96 /1tfeEwj
「せん断」って何?
370:名前は開発中のものです。
12/11/23 11:05:08.54 74NPTa8/
長方形が平行四辺形になるような変形のことだよ!
371:名前は開発中のものです。
12/11/23 11:10:02.01 6nCMYav3
底の無いダンボールってのはわかりやすい例だよな
372:名前は開発中のものです。
12/11/23 11:57:56.24 GjI1Zcmz
シアーの方が通じる気がする
373:名前は開発中のものです。
12/11/23 13:59:35.40 cFXLUjPO
カメラだの行列だの無かったころのゲームだから
その方が理解しやすいよって言ってるだけだよ。
まあ、最初からカメラありきで学んだ人はむしろ理解し辛いのか?
374:名前は開発中のものです。
12/11/23 14:06:05.85 cFXLUjPO
>>364
ていうかさぁ。
>>352 のソースみてあげなよDXLIBのDrawGraphってそんな概念関係ないよ。
ただのスクリーン座標に絵を置いてるだけ。
375:名前は開発中のものです。
12/11/23 14:19:41.95 cFXLUjPO
>>360
呼ぶんじゃないの、マの概念なんてみんなバラバラだからね。
そう呼んでる人にはそっちが常識なんだよ。
マ系やプログラム系の板で同じことを言ってるのに
使ってる言葉が違って議論がループなんてザラ
この場合も多分、みんな言いたいことは同じなんだよ。
言葉が違うだけだと思うよ。
376:名前は開発中のものです。
12/11/23 14:53:44.50 GjI1Zcmz
>>373
マリオみたいに広いマップを探索するようなゲームだと
スクリーン座標ベースの管理は面倒くさそうだけどなー。
実際、黎明期のPGがどういう考え方で組んでいたかどうかまでは知らないけど。
377:名前は開発中のものです。
12/11/23 15:00:51.05 GjI1Zcmz
あ、ちなみに自分は
URLリンク(www.tamaweb.or.jp)
この右側にあるレールカメラ(って言うらしい)のイメージで言ってた。
378:名前は開発中のものです。
12/11/23 15:48:41.51 cFXLUjPO
>>377
なるほど。理解したわ。ちょっと長文になるが。
俺のような古い頃を知ってるマに言わせると、昔のファミコンやスーパーファミコンの頃の
スーパーマリオのようなゲームの、ただのスクロールの実装にカメラとか言いだす方が違和感を感じるんだよ。
すまんな。
あえて、昔の言葉を使えばBG(バックグラウンド)とSpriteが分れば実装できるんだから。
↓DXLIBのこの例も同じようなもの
URLリンク(homepage2.nifty.com)
ファミコンなら
URLリンク(hp.vector.co.jp)
こんな感じか?ちょっと違うけど。流石にネットにもその辺のテクニックは載ってないわ古過ぎてw
(説明し辛いな。文章じゃ無理だわ)
勘違いしないでほしいのは
今のDirectXやOpenGLの世界ではカメラがないと話しにならないのは知ってるよ。
その辺の3D,2Dゲームも作ってるしな。
関係ないが。
VRAMの定義で、それぞれのマが別々のVRAMの概念を言いだして
話がなんだかわからない方向に行ったのを思い出した。
一人は上記のBGやSPRITEのVRAM
一人はPC98やX68Kの頃のパソコンのVRAM
一人はテクスチャやフレームバッファやZバッファ等の載る今のVRAM
そりゃ、話がかみ合うわけがないw
何にしても、>352さんのゲームが完成することを祈るよ。お子さんの為にもな。
379:名前は開発中のものです。
12/11/23 16:22:34.51 tVuXwvMy
スクリーン座標とビュー座標と呼べば良かったのかな?
と混ぜっかえしてみる
380:名前は開発中のものです。
12/11/23 16:23:41.72 GjI1Zcmz
>>378
なるほど、だから>353の時点でスクリーン座標と言ってたのか。
内部的にはワールド座標ベースで考えて、それを表示用に落とすって考え方自体は
3D以前からあるようには思うけれどね。
381:名前は開発中のものです。
12/11/23 16:37:47.36 hefSCrq5
スーパーマリオみたいな一方通行で逆進できないシステムならワールド座標はいらないかもね。
382:名前は開発中のものです。
12/11/23 16:52:57.32 X3Az5vp2
引き算するだけだからPCの性能とか関係ないよw
383:名前は開発中のものです。
12/11/23 17:34:11.98 tvkINjeP
N88BASICですらビューポートの概念あるよ
floatの場合無茶な拡大させると誤差の蓄積が問題になることがあるからその場合は原点近くで処理したいけど
384:名前は開発中のものです。
12/11/23 18:17:22.09 tVuXwvMy
>>382
ワールド座標はマッブが広大になるとメモリーを消費するから、昔のマシンだと厳しいだろ
メモリー1バイトは血の一滴に比例すると言われていた時代もあるし
385:名前は開発中のものです。
12/11/23 18:37:49.31 GjI1Zcmz
>>384
ああ。
画面に映ってるかどうか関係なく処理できるメリットを活かしにくいとか、
画面内だけなら符合なし1バイトで座標を保持できるけど、全体を考えると2バイトくらい必要になるとか?
386:名前は開発中のものです。
12/11/23 18:57:47.92 tVuXwvMy
>>385
ああなるほど。
マッブはタイル表示するものだとばっかり考えていたから、その発想は無かったわ。
387:名前は開発中のものです。
12/11/23 19:54:39.19 cFXLUjPO
>>383
そんなもんあったっけ?ってぐぐったらあったようだなw
30年近く前でまったく覚えてないわ。
あの頃、アクションゲームっていうと機械語オンリーだったのもあるけど。
BASICねー。なつかしいけど。インタープリタで8,16BITじゃ遅すぎるもんな。
シミュレーションや くそ遅っそいRPGとかかね。
コンパイラもあったみただけど。使ったこともないわ。
あの頃のコンパイラの吐くコードなんて使いものにならなかったしw
388:名前は開発中のものです。
12/11/23 19:59:07.69 MSqNZyrV
お前らいったいいくつなんだよ…
389:名前は開発中のものです。
12/11/23 20:22:07.11 GjI1Zcmz
0xを付けておきたいお年頃かな
390:名前は開発中のものです。
12/11/23 20:29:01.83 cFXLUjPO
>>389
そうそう、その辺はおさっし。
391:名前は開発中のものです。
12/11/23 20:45:11.38 6nCMYav3
現場とか経験したことないとビット積意識する列挙体くらいでしか0x表記したことないな
392:名前は開発中のものです。
12/11/23 21:03:14.64 tVuXwvMy
フラグ処理で0x表記しまくりですが?
#defineで隠れてはいるケド
393:名前は開発中のものです。
12/11/23 21:26:47.76 e2eqPIhq
ピチピチの0x20歳です!
394:名前は開発中のものです。
12/11/23 21:27:22.68 Tfq3xGkn
ゲーム作ってるなら色管理で0x表記はたまにやるはず
395:名前は開発中のものです。
12/11/23 21:35:37.06 cj0uR2IM
>>394
RGBマクロで0~255しか使わないって人も多いんじゃないかね
396:名前は開発中のものです。
12/11/23 21:46:45.61 926N4zcD
命令セットに乗算なんてありませんでしたが、何か?
397:名前は開発中のものです。
12/11/24 00:05:24.65 2OLw8PRK
>>396
呼んでないのに、何か?て
398:名前は開発中のものです。
12/11/24 00:18:35.93 o4KqUQfO
画面スクロール上手くいきました!
プレイヤーも敵キャラも不自然な動作をしなくなりました。
回答していただいたみなさんのおかげです。ありがとうございます。
とりあえずまとも(?)に動くようになったから次は敵の出現タイミングとかを考えます。
プレイヤーがある座標まで来て、対象の敵が表示されていなかったら表示させるみたいな条件で
やろうとしてます。うまいこといけばいいけどー。
399:ジュナイ
12/11/24 06:54:32.86 QqV0oVKy
機能の拡張を目的に継承したらダメみたいなの読んだ記憶があるけど、未だに意味がわからない
>>317
もう出てた
400:名前は開発中のものです。
12/11/24 07:14:08.67 E4ngvRbM
機能の拡張なら継承しないで委譲しろって話だろ
継承の設計上の意味が曖昧になるし、遅くなるし、ミスも多くなるから
class A : public Base{}; じゃなくて、class A{ Base base; };にしろっていう
401:名前は開発中のものです。
12/11/24 07:28:17.27 RKqrxKct
>>400
「遅くなる」をkwsk
402:名前は開発中のものです。
12/11/24 07:32:37.95 5F9z+6Hu
オーバヘッドじゃね
403:ジュナイ
12/11/24 08:22:49.66 W4j3QuI9
>>400
継承は完全にIs-aかHas-a関係の場合以外は使わない方がいいってことなのか?
継承の例とか見ると拡張してるようにしか見えないときがあるから疑問だったんだ
なんとなくだけど、わかった気がする
解説ありがとう
404:名前は開発中のものです。
12/11/24 08:44:31.65 RKqrxKct
ケースバイケースだからどっちが正解ってもんじゃないぞ。
ただ最近の流行はinterfaceをよく使う。
C++だと単なるクラスだけど、Java/
C#をやると
interfaceの概念が一番しっくりくる。
405:名前は開発中のものです。
12/11/24 08:59:00.75 nSnY0kez
C++の場合、virtual関数でもどの関数が呼び出されるのかコンパイル時に分かる場合は
virtualの性能ペナルティはないぞ
406:名前は開発中のものです。
12/11/24 11:47:55.57 o4KqUQfO
ソースがごちゃごちゃしてきた気がする、、、。
アイテム(武器とか回復)をマップの途中や、敵を倒した時にランダムで出す仕様にしようと
思っているけど、プレイヤーにも敵にもマップにも影響するからそれぞれにインスタンス生成
をしなければいけないのかなー。いい案がまだ思いつかない。
プレイヤーや敵キャラの移動処理は共通モジュールでやっているけど、それみたいに
共通化したい。
407:ジュナイ
12/11/24 12:20:37.64 fxHMnqZg
>>404
俺の場合、CStringを自作して
それを継承してCStringExを作った
CStringExはCStringの検索機能を追加したもの
>>399
これを読んで問題あるんだなって思ったんだ
ケースバイケースなんだな
あんまり深く考えないことにするよ、ありがとう
408:名前は開発中のものです。
12/11/25 01:32:34.49 vQ6ezv4p
>>407
安価の付け方が間違ってるのか何なのか、話の流れが読めない
409:名前は開発中のものです。
12/11/25 01:54:12.65 MAutdaKJ
>>406
それぞれにインスタント生成?なんで?
インスタントは一個でいいでしょ。
ItemManagerなクラス作ってそこで一括管理。
他のクラスはItemManagerへのポインタだけ持ってればいい。
410:名前は開発中のものです。
12/11/25 02:14:05.00 DhagDrvr
インスタント……?
411:名前は開発中のものです。
12/11/25 02:37:36.83 vQ6ezv4p
というか個々にインスタンス生成するのは、よくある手法だよな?
412:名前は開発中のものです。
12/11/25 02:42:49.71 YMRxlnml
**Managerって命名するのやめろ。マジで。
いやしてもいいけどすすめんな。
413:ジュナイ
12/11/25 05:25:23.73 hEk/IMrv
>>408
>>407
×399のアンカー
○機能の拡張を目的に継承したらダメ
ふむ、アンカーにしない方がよかったな
414:名前は開発中のものです。
12/11/25 05:48:04.62 vQ6ezv4p
ああ、そういうことか。
自分のレスを読んで問題に気づいた、と読めて何が何だか分からんかった
415:名前は開発中のものです。
12/11/25 09:59:49.84 koi9+vO4
>>412
なんで?
416:名前は開発中のものです。
12/11/25 10:19:26.16 EqulQ1PI
インスタンス作らなかったらどこにパラメータ置いとくんだ?
417:名前は開発中のものです。
12/11/25 10:46:41.19 YMRxlnml
>>415
機能を曖昧にするのでアンチパターンとされている
418:名前は開発中のものです。
12/11/25 11:02:52.49 CAdWkKcH
>>417
ちなみにそれって出典どこなの?
前に同じような話しあったときにネットで探したんだけど見つけられなかった
419:名前は開発中のものです。
12/11/25 11:14:46.43 TgZ39+Gc
個人で開発してるなら自分が分かる名前なら問題ないだろう
420:名前は開発中のものです。
12/11/25 12:09:26.86 YMRxlnml
>>418
somethingmanagerでググれ
>>419
何をするかわかるなら明確な名前付けが可能なはずで、
それができないなら設計ミスである可能性が高い。
421:名前は開発中のものです。
12/11/25 12:17:34.50 VGiaFwf4
オブジェクト指向は難しいよな
俺はステータスクラスを作る際に能力項目の入った構造体みたいな感じにしか考えてなかったんだが
能力項目はそれぞれクラスとしてインターフェイスから継承させておいて
それをmapに型識別子と一緒にプッシュしておけとかなんとか
極めだすとスタート地点がわからなくなるわ
422:名前は開発中のものです。
12/11/25 13:42:36.14 TgZ39+Gc
なんとかManageって名前は即ダメとかいう思考停止はどうかと思うがなあ
ていうかCharacterクラスとか完全にそのアンチパターンに適合してるわ
423:名前は開発中のものです。
12/11/25 15:08:01.52 pp6NGY3t
面倒くさいときに1,2,3とかExとか付けて終わりとか平気でやるよ?
424:名前は開発中のものです。
12/11/25 15:30:35.40 z3lM07q+
Win32APIじゃねぇんだから
425:名前は開発中のものです。
12/11/25 17:12:31.80 ViSjD+S+
英語できない人間がほとんどなんだから、明確な英語名がでてこないのが普通だろ。
難しい単語を使うと読めなくなるし。
426:名前は開発中のものです。
12/11/25 17:13:51.16 UP94DjU/
ぶっちゃけローマ字でやるのが一番効率イイと思うんだよね
外人が混じってるんじゃないなら
427:名前は開発中のものです。
12/11/25 17:37:22.64 wuDHigGI
ローマ字で名前付けると長くなりがち
そしてなによりカッコ悪いという欠点がある
428:名前は開発中のものです。
12/11/25 17:56:18.70 VGiaFwf4
Zittai *zittai = ZittaiKouzyou::Tukuridasu(ZittaiBanngou banngou);
429:名前は開発中のものです。
12/11/25 18:59:33.14 62UuJeRg
またそうやって極端な例を出す…
430:名前は開発中のものです。
12/11/25 20:04:25.41 GcdFOKW2
xxxManagerって命名はゲーム会社で普通に使うよ。
431:名前は開発中のものです。
12/11/25 20:07:38.48 z3lM07q+
xxxManagerて設計した時点で設計を疑えという人も居てだな
432:名前は開発中のものです。
12/11/25 20:24:38.60 GcdFOKW2
ただの名前じゃん。
中身は大抵リスト管理。
433:名前は開発中のものです。
12/11/25 20:55:27.38 mP9k6ovN
変なローマ字使うぐらいなら漢字やひらがな使えよ
434:名前は開発中のものです。
12/11/25 20:59:12.19 FijO3P5J
自作のクラスManagerだらけだわ
435:名前は開発中のものです。
12/11/25 21:28:17.23 q6C2eAfD
漢字やひらがな使えなかった頃をひきずってるんだよ
436:名前は開発中のものです。
12/11/25 22:24:13.04 R43oAPYu
漢字や平仮名なんて使えんし使わん
437:名前は開発中のものです。
12/11/25 23:37:36.56 DhagDrvr
defineでは日本語使えるから使う
438:名前は開発中のものです。
12/11/26 10:15:31.37 yusv7QzF
例えば、リソースをコンテナで管理するようなクラスで、ファイルパス渡すと
ポインタ返すようなメソッド持ったヤツはなんて名前つける?
439:名前は開発中のものです。
12/11/26 10:21:15.41 LyLQhMu0
リソースをそれだけで管理するなら、単純にリソースマネージャーあたりにする
メソッドの名前はget_ptr_from_pathとか
440:名前は開発中のものです。
12/11/26 10:48:10.34 zeeOA2Lm
メソッド名は頭文字大文字式で統一しましょう。
GetPtrFromPath
441:名前は開発中のものです。
12/11/26 12:33:32.54 LyLQhMu0
俺はライブラリ的に使いまわせる関数は頭大文字、
それ以外のローカルだったりクラスのメンバだったりする関数は小文字で統一してるわ
442:名前は開発中のものです。
12/11/26 19:38:53.10 KtYdm8fk
**Managerって設計ミスだったのか。
マップマネージャとユニットマネージャの2クラスをメインに進めていたがこれもダメなのか・・・。
画面操作もマップマネージャとユニットマネージャに振り分けてやらせてるし・・。
ただこれはユーザーインタフェースクラスを新しく作ってそっちに集約しようか考え中だが。
443:名前は開発中のものです。
12/11/26 19:48:22.12 5nHWy65V
あっちもManager、こっちもManager、だとちょっとマヌケっぽいというただの感想とか、
世の中のクラスの半分くらいは、何かをマネージしてるもんじゃね?っていうツッコミとか、
複数のインスタンスを集めたものなら、collectionって単語があるよっていう指摘とjか、
使う側から見た場合、中身なんてどうでもいいんだから、外側をシンプルな名前にしろよっていうクレームとか、
そのへん色々。
ぶっちゃけ本人が困ってないならどうでもいい。
444:名前は開発中のものです。
12/11/26 20:18:36.19 rMNobjpu
偉い人が言ってるからとかで真に受けてたらダメだよな
Linusとか超アホなこと言ってるし
445:名前は開発中のものです。
12/11/26 20:28:48.98 ABDeEVSH
鵜呑みは危険だが常に最新の情報や環境に気を使うのは大事だろうな
物事が時間の流れで最適化されていくってのは自然の摂理のはずだ
というか議論できるレベルの人達って情報どこで集めてる?
ネットで情報集めてるとハンガリアン記法は減ってきたけどクラス名の先頭に
C付けてるのが未だに散見してどうすりゃいいのかわからなくなってきた
446:名前は開発中のものです。
12/11/26 20:35:17.10 BD+Y7+n1
コンソールからviでコーディングしてる人たちにとってはハンガリアンも有用だし?
現存するかは知らんけど
447:名前は開発中のものです。
12/11/26 21:06:16.36 rMNobjpu
templateで型名とかワケワカメになるのにハンガリアンが使えるのか?
448:名前は開発中のものです。
12/11/26 21:07:09.64 M7DeNh3p
TwitterでC++erフォローするとか…
449:名前は開発中のものです。
12/11/26 21:18:05.41 BD+Y7+n1
>>447
Tのプレフィックスはtでいいんでない
使うときはVector<int>ならiVecとか?
450:名前は開発中のものです。
12/11/26 21:32:54.44 fBbbS4l8
どうせゼロから作り直すんだし、
一発目は思いつくままに継承多態、俺式命名でいいんじゃね
1日の時間が重要って場合ならともかく・・・
451:名前は開発中のものです。
12/11/26 22:54:16.45 vwxVmeIr
システムハンガリアンは誰もが否定するところだろうが、
アプリケーションハンガリアンは重要でしょ。
型で切り替えずに、意味レベルで同じ水準で扱う値に同じ接頭辞を付ける。
スクリーン座標にはs、ウィンドウ座標にはwをつける等、
同じ型でも混同しちゃいけないものを混同せずに済むよ。
452:名前は開発中のものです。
12/11/26 23:01:58.09 BD+Y7+n1
>>451
普通に名前つけてたら自然にそうなっちゃう気がするんだけどな
まあ、クラスやら構造体でラップしちゃうからプレフィックスって
いうより変数名そのもので区別できるんだけど
453:名前は開発中のものです。
12/11/27 02:16:19.75 JayK2jV6
>>445
最新の情報に敏感な人って周りの需要が見えてない人ばっかりな印象なんだが
俺の周りのプログラマはみんなそう
454:名前は開発中のものです。
12/11/27 07:41:38.26 PNGeWQU0
>>422
思考停止なんて言い訳するから糞設計になるんだよ
455:名前は開発中のものです。
12/11/27 09:51:11.14 RjAqjHvy
>>453
geekと職業プログラマの最大の違いはそこだろうな
geekは技術力はあるんだが、自分の知識が絶対正しいと思いがちでやたら新しいことやろうとする
職業プログラマは言われたことやるだけだが、その分要求はちゃんと満たす
456:名前は開発中のものです。
12/11/27 09:52:31.07 JayK2jV6
それは職業プログラマを持ち上げすぎ
出来る人と出来ない人の違いではあるけど
457:名前は開発中のものです。
12/11/27 11:13:46.66 RjAqjHvy
>>455は極論だけど、仕事に対するスタンスとしてはそんな感じでしょ
サーバ運用でもただのgeekはサーバモンキーとか言われるし
まあ積極的に情報仕入れてそれを活用できる人ってのはまれなんじゃないかな
仕入れた知識すぐ使いたがるモンキーか頭の中化石になってるおっさんのようなのが大半じゃないの
っていうかそれ以外はマなんてやってないで管理職なるでしょ
458:名前は開発中のものです。
12/11/27 15:01:28.50 vXBr16jt
>>443
> あっちもManager、こっちもManager、だとちょっとマヌケっぽいというただの感想とか、
> そのへん色々。
> ぶっちゃけ本人が困ってないならどうでもいい。
勝手に問題を矮小化してどうでもいいとか。頭が悪すぎる。
"本人が困ってなければどうでもいい"の本人のと、"本人を困らせるコードを推奨するな"の本人は違うだろ。
困ってない本人がこれから困るかもしれない他人に腐った手法を押し付けてる。
459:名前は開発中のものです。
12/11/27 15:44:51.45 p6PPkzD6
うぜぇw
460:名前は開発中のものです。
12/11/27 16:19:24.47 3CO8/3Q2
頭のいい人に聞きたいのだが
PS3とかWiiとか3DSのゲームソフトを
ゲーム会社で制作している人って
どうやって各ハードでのゲームプログラミング技術を習得したのだろう
ゲーム会社に入社してからソニーか任天堂と契約を結んでいるゲーム会社しか知らない
各ハードの秘密の開発技術などを習得させているのだろうか
C言語とかC++とかのプログラム言語でプログラムを組めば
ゲームを作るぐらいのことは僕でも知ってるが
各ハード別の開発技術って、それだけの知識だけでは足りないような気がする
461:名前は開発中のものです。
12/11/27 16:22:44.22 3CO8/3Q2
例えば3DS用ゲームソフトを3Dモードにすれば
飛び出したような映像表現が可能ですが
ああいう技術って単にC言語やC++を習得しただけでは開発出来ないような気がします
462:デジタルハリウッド@偏差値45
12/11/27 16:36:02.37 r/jyAiAv
↑
質問なのか、独り言なの意味がわかりません
================
デジタルハリウッド@偏差値45
出席番号5
好きなゲーム東方、格ゲー、地球防衛軍
463:名前は開発中のものです。
12/11/27 16:36:29.19 LIfIJ6xQ
ハード毎にライブラリが提供されるから、それでゲームを作ることになる
ライブラリの仕様を迅速に勉強し身につけられるのもゲームプログラマに必須の条件
例えば、C++やろうと思い立った次の日には基本的なテストプログラムは組めるくらいの習得力がある人じゃないと無理