C/C++ゲーム製作総合スレッド Part6
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2014/07/08(火) 19:30:19.51ID:J+zVqUil元スレ
DXライブラリ 総合スレッド その17
http://toro.2ch.net/test/read.cgi/gamedev/1383795645/
前スレ
C/C++ゲーム製作総合スレッド Part1
http://toro.2ch.net/test/read.cgi/gamedev/1337516528/
C/C++ゲーム製作総合スレッド Part2
http://toro.2ch.net/test/read.cgi/gamedev/1351015269/
C/C++ゲーム製作総合スレッド Part3
http://toro.2ch.net/test/read.cgi/gamedev/1357899040/
C/C++ゲーム製作総合スレッド Part4
http://toro.2ch.net/test/read.cgi/gamedev/1376262450/
C/C++ゲーム製作総合スレッド Part5
http://peace.2ch.net/test/read.cgi/gamedev/1389798031/
0121名前は開発中のものです。
2014/08/28(木) 19:17:50.59ID:izIKodD2DOS/Vにあるのかないのかは知らんけど。
0122名前は開発中のものです。
2014/08/28(木) 19:22:18.05ID:cOy/jyai0123名前は開発中のものです。
2014/08/28(木) 19:39:22.02ID:p3a/rk2R昔はコンソールは補助的なものじゃなかったし
今よりずっと遅い時代があったからでしょ
0124名前は開発中のものです。
2014/08/28(木) 20:10:27.78ID:lAEGR6jwいや、話のネタに思い出したからついでに書いただけだよ
昔はテキスト表示で画面をマスクしたりと、遅いマシンの
様々な機能をフル活用して使っていたみたいだね
0125名前は開発中のものです。
2014/08/29(金) 13:24:27.28ID:7LwoDteC目で追える速度に遅くしてるんじゃね
つ Ctrl+S
0126名前は開発中のものです。
2014/08/29(金) 17:27:19.27ID:PQKddMMrint hoge;
};
Aiu* aiu = new Aiu();
ってした時
Aiu aiu2 = *aiu;
ってした場合、aiuの寿命が切れた後もaiu2に保持されるんでしょうか?
コピーコンストラクタは定義してないです
0127名前は開発中のものです。
2014/08/29(金) 17:35:13.67ID:I0DNX3OS0128名前は開発中のものです。
2014/08/29(金) 18:05:40.44ID:B+gnwrXfその Aiu aiu2 = *aiu; はメンバの値が複製されるだけだから、その後にaiu->hogeを書き換えてもaiu2->hogeは変わらない
だからaiuの指す先がdeleteされようがaiu2に影響はない
0129名前は開発中のものです。
2014/08/29(金) 19:30:47.56ID:+jt7R30F{
int a;
}
class Heap
{
Stack stack;
}
void main()
{
Heap* heap = new Heap();
}
っていうプログラムの場合、int aはメモリ内のどこにあるのでしょうか?
そもそもヒープ領域のオブジェクトの中のスタック領域の場合ってメモリ的にはどうなるのでしょうか?
0130名前は開発中のものです。
2014/08/29(金) 19:53:53.39ID:B+gnwrXf0131名前は開発中のものです。
2014/08/30(土) 18:37:32.98ID:5AIFhixXEclipseの言ってるエラーが意味不明で困っています
どうしたら結果が得られますか?
エラー内容:expected primary-expression before ')' token
あとテンプレートにポインタやらちょっと組み合わせると全く入力補完してくれないんですがなんなんですか
void hoge::hoge1(picojson::object* jsonObject){
picojson::array& jsonArray = jsonObject->get<picojson::array>();
for (picojson::array::iterator it = jsonArray.begin(); it != jsonArray.end(); it++){
picojson::object& o = it->get<picojson::object>();
int unit_num = atoi(o["unit_num"].get<std::string>().c_str());
int unit_id = atoi(o["unit_id"].get<std::string>().c_str());
}
}
0132名前は開発中のものです。
2014/09/01(月) 11:52:34.58ID:NxW8u5cBC++erならやっぱり自分でパーサー作って読み込むの?
0133名前は開発中のものです。
2014/09/01(月) 17:34:00.00ID:7vpWhfmFAssimp
0134名前は開発中のものです。
2014/09/02(火) 14:27:36.03ID:PUVCbn2i0135名前は開発中のものです。
2014/09/02(火) 17:26:57.05ID:tdHhEDHkこれ良さげやね
BSDライセンスだし色々出来そう
スレッドセーフなのもポイント高い
0136名前は開発中のものです。
2014/09/06(土) 11:58:19.59ID:khJXlvEeこれ誰かわかりませんか?
0137名前は開発中のものです。
2014/09/06(土) 18:09:59.56ID:AxxHSbmNで検索してみた?
0138名前は開発中のものです。
2014/09/07(日) 11:10:43.48ID:s9vhQEyf()内に値があるとかなんとかとか・・・
でも引数のエラーは別にあるし、全く同じ文(変数名は違うけど)をコピペしてきたものだし・・・
0139名前は開発中のものです。
2014/09/08(月) 21:02:33.10ID:tesqRk+dGUIライブラリとかのイベントドリブンでゲーム作る方法が全くわかんないぜ
DXライブラリでは1フレームごとの処理をupdateメソッドの中でやってたから、
アクションゲーム上のキャラクタなどがゲーム内時間での同期が簡単だったんだけど
イベントドリブンだと、そういう「メイン時間軸」による制御がないから
ゲーム内時間で厳密に同期が取れないとこが気持ち悪い
例えば、前者では1フレームごとにキャラクターの速度ずつ動いて、衝突判定も一斉にできるけど、
後者だとライブラリ側が(おそらく裏で_秒単位でポーリングしてて)『ボタン押されたよ!』って判断するから、
用いる時間の粒度が、自分が定めたいゲーム内時間じゃなくなってしまうという・・
イベントドリブンを用いる手前、1フレごとにupdateイベント起こすなんて二度手間はやりたくないし・・
(Unity3Dはupdateとイベント併用型らしいけど、どうやってるんだろ)
0140名前は開発中のものです。
2014/09/08(月) 21:18:20.61ID:tYyDmrPQWindowsとか普通のアプリでアニメーションしたいならWM_TIMERとか別スレッドのタイマーで処理してから
描画のWM_PAINTを間接的に呼び出してるわけだし
描画のイベントを約16msで起こして内部で状態更新すれば60フレームのゲームだ
0141名前は開発中のものです。
2014/09/09(火) 01:28:32.21ID:iF9Myub/ダブルバッファってのもなんか、全ての描画リソースを2倍持つって結構勿体無いなとか思うんだけど
ネトゲでよく200fpsとか表示されててなんじゃこりゃとか思ったことあるけどゲーム内処理ループの事だよね?
0142名前は開発中のものです。
2014/09/09(火) 03:36:37.22ID:C1Zjzm8i受信しているウィンドウメッセージを処理するようにするようにする方法が一つある
(DxLibで言えばProcessMessage関数みたいなもんだと思いねぇ)
0143名前は開発中のものです。
2014/09/09(火) 14:01:53.66ID:3oFzTnHF結局のところ、Δ(←前回Updateから今回Updateが呼ばれるまでにかかったリアル時間)を使って
移動距離[ゲーム内距離] = Δ[リアル時間] ÷ 単位時間[リアル時間/ゲーム内時間] × 速度[ゲーム内距離/ゲーム内時間]
で、処理することになる。
ちなみに、Updateの中でもキー操作拾えるから慣れてるほうでいい
ただGUI部品はイベントでやるのがラク
0144名前は開発中のものです。
2014/09/09(火) 20:43:35.21ID:8XdiQ/JL0145名前は開発中のものです。
2014/09/09(火) 23:05:52.44ID:iF9Myub/0146名前は開発中のものです。
2014/09/10(水) 07:18:00.15ID:CE6mrTSg円運動とか放物線とかバネの伸縮とか
最近の物理の教科書には載ってないのかね?
0147名前は開発中のものです。
2014/09/10(水) 08:04:28.67ID:+NofARIs前フレームの座標と今フレームの座標は線形動作じゃないのか
それが積み重なって円や放射状になるわけで
0148名前は開発中のものです。
2014/09/10(水) 08:16:26.68ID:qlf1nlfh人間が扱いやすいから、近似的に線形代数で計算するだけだろ。
0149名前は開発中のものです。
2014/09/10(水) 08:52:17.08ID:pn1h5JmMこれに対して非線形動作は単位時間毎に別の速度で動く。
前者は直線的な、後者は曲線的な動作になる傾向がある。
0150名前は開発中のものです。
2014/09/10(水) 09:37:06.65ID:qlf1nlfhカオス理論 - Wikipedia
カオス理論は、力学系の一部に見られる、予測できない複雑な様子を示す現象を扱う理論である。ここで言う予測できないとは、決してランダムということではない。
その振る舞いは決定論的法則に従うものの、積分法による解が得られないため、その未来の振る舞いを知るには数値解析を用いざるを得ない。
複雑系 - Wikipedia
複雑系とは、相互に関連する複数の要因が合わさって全体としてなんらかの性質を見せる系であって、
しかしその全体としての挙動は個々の要因や部分からは明らかでないようなものをいう。
複雑系は決して珍しいシステムというわけではなく、実際に人間にとって興味深く有用な多くの系が複雑系である。
系の複雑性を研究するモデルとしての複雑系には、蟻の巣、人間経済・社会、気象現象、神経系、細胞、人間を含む生物などや現代的なエネルギーインフラや通信インフラなどが挙げられる。
複雑系は、単純な要素に分解して法則や原理に落とし込む還元主義の方法論では理解できない。
生物を分解してしまうと死んでしまい「生物(生きている物)」として理解できないように、複雑系は分解してしまうと本質が抜け落ちてしまうものだからである。
したがって、複雑系の分野を貫く基本スタンスとして「複雑な現象を複雑なまま理解しようとする姿勢」を挙げることができる。
複雑な現象を複雑なまま理解しようとする学問、手法は「複雑系の科学」などと呼ばれることが多いが、その源流に眼を向けると、
アリストテレスの「全体とは、部分の総和以上のなにかである」といった言い回しにまで遡ることができる。
0151名前は開発中のものです。
2014/09/10(水) 09:50:08.57ID:+NofARIs0152名前は開発中のものです。
2014/09/10(水) 09:55:53.07ID:pn1h5JmM0153名前は開発中のものです。
2014/09/10(水) 10:04:39.49ID:bDY0fB3w移動量とかは加速度とか考慮したらいいじゃない
物理エンジンに投げちゃうとそんなに気にしなくて済むし
0154名前は開発中のものです。
2014/09/10(水) 10:24:30.94ID:qlf1nlfh線形の常微分方程式の解は、変数の数がいくら多くても、
あるところをグルグル回る(振動解) あるところに収束する 無限大に発散する のどれかになります。
ところが、非線形方程式になると、たった変数3つでも、予測不可能な複雑な解になる場合があります。
Lorenz 方程式
1963年、E.N.Lorenz は大気の運動のシミュレーションを試みました。次のようなLorenz方程式を導いたのです。
http://www.gaia.h.kyoto-u.ac.jp/~sakai/visual/2/Lorentz.gif
この方程式は、xz、xy といった2次の項(非線形項)を含みます。これが、非線形常微分方程式 と言われるゆえんです。
彼は、この方程式の解が、定常解でも周期解でもなく、不規則に振動を続けることを発見しましたのです。たとえば、
a=10、b=28、c=8/3
の時の解を、Euler法で積分すると、このようになります。
http://www.gaia.h.kyoto-u.ac.jp/~sakai/visual/2/lorenz1.jpg
「簡単な方程式からは、簡単な答えしか出てこない」または「真理は単純である」と信じられていた当時としては、この事実は衝撃的でした。
カオス状態では、初期値の違いが指数関数的に増大するという特徴があります。
http://www.gaia.h.kyoto-u.ac.jp/~sakai/visual/2/lorenz2.jpg
このことから Lorenz は、「長期の天気予報は不可能である」と結論づけました。
Lorenz の表現を借りれば、「アリゾナの砂漠に飛んでいる一匹の蝶が、ニューヨークに嵐がくるかどうかを決める」ということになります。これをバタフライ効果と呼びます。
http://www.gaia.h.kyoto-u.ac.jp/~sakai/visual/2/index25.htm
0155名前は開発中のものです。
2014/09/10(水) 10:37:15.67ID:pn1h5JmM物理エンジンがあれば考えるわ
0156名前は開発中のものです。
2014/09/10(水) 11:01:26.76ID:qlf1nlfh最近の物理ではそういう方を扱ってるようだが。
ゲージ・重力対応(AdS/CFT対応)
このような、超弦理論の「統一理論的な」性質を最大限に応用したアイディアの一つがゲージ・重力対応です。
この対応を用いると、ゲージ場の量子論における困難な計算や解析を、一般相対性理論における容易な計算に「変換」することが可能となる場合があり、場の量子論の新たな計算手法として注目されています。
http://www.phys.chuo-u.ac.jp/labs/nakamura/overview/index.html
AdS/CFT対応で探る非平衡相転移
概 要:我々の身の回りは非平衡現象であふれている。例えば物質に外部電場を加えて電流を流すという物理過程は、物質中で熱やエントロピーが生成される非平衡過程である。
このような非平衡過程を、電場や電流が大きく両者の関係が非線形となる領域で記述することは現代物理学の難問の一つとなっている。
この難問に向けての新たなアプローチとして最近注目されているのがAdS/CFT対応である。
この対応は、ある種の強結合ゲージ理論を一般相対性理論の言語に書き換える理論的 な枠組みであるが、これを用いると、ゲージ粒子の多体系の非平衡過程を一般相対性理論を用いて解析できる可能性がある。
講演者は最近、このAdS/CFT対応を用いて、強く相関する荷電粒子系の非線形電気伝導を重力理論を用いて解析し、非線形領域において、従来知られていなかったタイプの非平衡相転移が存在することを理論的に見出した。
この非平衡相転移では電気伝導度、あるいは微分伝導度が電流密度の関数として不連続に変化する。
2次相転移点も存在し、そこではいくつかの臨界現象を確認することもできる。
本講演では、発見された新奇な非平衡相転移について報告するとともに、AdS/CFT対応が非平衡物理学に新たな切り口をとなる可能性について述べたい。
http://asuka.phys.nara-wu.ac.jp/2013/07/13-03.html
0157名前は開発中のものです。
2014/09/10(水) 12:31:50.45ID:O1JsX9o20158名前は開発中のものです。
2014/09/10(水) 13:47:47.01ID:TOw/PRIW物理シミュレーションでも作ってんの?
0159名前は開発中のものです。
2014/09/10(水) 13:53:07.44ID:V+psMTaV0160名前は開発中のものです。
2014/09/10(水) 14:00:04.34ID:TOw/PRIWそんな精密に計算する必要なくない?
位置、速度、加速度をフレーム間で線形に計算すればそれっぽく動くと思うんだけど
0161名前は開発中のものです。
2014/09/10(水) 15:59:28.51ID:OJbZlwnu内部計算の間隔は一定のものとして扱うのが一般的だと思うよ。
0162名前は開発中のものです。
2014/09/10(水) 17:49:57.40ID:piOg7Z3/ダブルバッファは描画の基本
バッファが1つだと、描画の途中経過が、画面に映されてしまうので、
見えない裏の画面にすべてを描いてから、表裏の画面を入れ替える
0163名前は開発中のものです。
2014/09/10(水) 20:26:02.06ID:0Gu5fApf多分>>141が言ってるのはそういうことじゃなくて、
マルチスレッドやらで描画リソースを2つ、例えばAとBを持って
Aを描画中にBを更新→Bを描画中にAを更新 っていう意味じゃないのかな
全ての描画リソースを2倍って言ってるし
DXライブラリが勝手にそうしてるって>>141が勘違いしてるかもだけど
0164名前は開発中のものです。
2014/09/10(水) 21:02:15.93ID:+NofARIsメインループの中のUpdate関数の中で
delete this;
return new NextScene();
ってやりたいんですが、ぬるぽエラーにならないでしょうか?
関数はインスタンスに関係無くstaticな存在だと聞いたことがあるんですが、イマイチよくわからないです
受け取り側では
while(true){
if((scene=scene->Update())==NULL)break;
}
こんな感じで、NULLが帰ってきたらゲーム終了です
0165名前は開発中のものです。
2014/09/10(水) 21:14:44.14ID:yJISCIw+「C++ delete this」でぐぐると吉
0166名前は開発中のものです。
2014/09/10(水) 21:17:37.71ID:yJISCIw+> while(true){
> if((scene=scene->Update())==NULL)break;
> }
この方式なら、変数sceneをshared_ptrとかunique_ptrとかのスマートポインタにしておけば
代入のタイミングで元々入っているインスタンスをdeleteしてくれるから
そっちの方がシンプルで安全かも知れない
0167名前は開発中のものです。
2014/09/10(水) 21:24:41.93ID:+NofARIsポインタでしか使わず、配置もしない
0168名前は開発中のものです。
2014/09/10(水) 22:26:12.02ID:+NofARIsネット上のサンプルではクラス定義と一緒に書いてるみたいで実装と分かれていません
operatorもtemplate同様ヘッダーでしか定義出来ないんでしょうか?
0169名前は開発中のものです。
2014/09/11(木) 00:03:08.79ID:asVl9LWgbeginで得たイテレータにインクリメント重ねると必ずendで得たイテレータになるのでしょうか?
0170名前は開発中のものです。
2014/09/11(木) 00:08:52.32ID:dW8hm7Drそしたら自ら開放しにいかなくても、参照が消えたら開放されるはずだろ。
0171名前は開発中のものです。
2014/09/11(木) 00:32:27.41ID:U19JA4G4その状態でAとBが重なったかだけ取得することってできる?
onTriggerEnterとかもコリジョンオフにしたから動作しないし、
自前で衝突判定プログラム作るしかない?
0172171
2014/09/11(木) 00:33:42.60ID:U19JA4G4書くスレ間違えました
0173名前は開発中のものです。
2014/09/11(木) 22:01:08.21ID:asVl9LWgこれなんでerrorが出るのかよくわからないんですが、どういうことなんでしょうか?
ポインタが0にNULLとして反応してるってことですか?
0174名前は開発中のものです。
2014/09/11(木) 22:06:54.07ID:3lU2at1b0175名前は開発中のものです。
2014/09/11(木) 22:24:22.87ID:VO9tt5QZ引数間違ってるんじゃないの
0176名前は開発中のものです。
2014/09/11(木) 22:30:38.71ID:Vk9/avmuポインタがNULLとかはコンパイル時には関係ないよ
コンパイルしたらエラーが出るんだよね?
インテリセンス的なやつはソース修正してもすぐに反映されないから、
IDE上ではエラーになっててもコンパイルしたら行けるとかあるよ
その下に出てる定義が本当にその上のDrawの定義なら行けそうに思うんだけどなあ
なんかインクルードのファイルが実は別のやつになってたとかそんな問題くらいしか思いつかないな
0177名前は開発中のものです。
2014/09/11(木) 23:17:52.95ID:PusxPgQr0178名前は開発中のものです。
2014/09/12(金) 01:29:52.01ID:55HmiNZ2imageresource型で、下のウィンドウがDraw関数です
0179名前は開発中のものです。
2014/09/12(金) 01:35:12.60ID:MvhPALDv0180名前は開発中のものです。
2014/09/12(金) 09:19:01.28ID:M+TP6FjVなおかつImageResourceがその型をpublic継承してないとか?
試してないから全く見当違いかも知れないけど
0181名前は開発中のものです。
2014/09/12(金) 11:29:01.17ID:L2eUAZ9Y0182名前は開発中のものです。
2014/09/12(金) 16:54:40.75ID:M+TP6FjV解決おめ
0183名前は開発中のものです。
2014/09/13(土) 12:46:42.97ID:qOD9bpYo自分のPC2台(両方XP)で動かすと問題なく動き、知人AのPC(Windows7)でも問題なく動くのですが
知人BのPC2台(両方Windows7)だと必ず「プログラムを停止します」とでて終了するという
謎の現象に悩まされています。
落ちる場所は毎回同じようなので、プログラムの要所要所に、テキストファイルに
メッセージを吐き出す命令を加えてみたところ、ある if文 のところで落ちてると判りました。
そこで今度はその if文 で使ってる変数6つをテキストに吐き出すようにしたところ、
その4つめの変数吐き出す部分で終わるようになってしまいました。
(つまり落ちる場所がずれた)
この if文 はループになっており、特定のループ時にのみ落ちる事が判明していますが
この変数自体はループにおいて全く変更されておらず、この変数が原因とは考えにくいです。
次に、このif文は無くてもこの場合たいした支障のでない部分だったので
まるごと消去してみたのですが、それでもやっぱり落ちました。
ここにきて行き詰まってしまって、どう調べていいのかわからなくなりました。
・実はこの部分以外に原因があってそれを見逃してる?
・この関数のこの部分が何らかの影響で破壊されているのか?
・なぜ知人BのPCでだけ発生する?(しかも2台とも)
何か考えられる原因とかありますでしょうか?
0184名前は開発中のものです。
2014/09/13(土) 13:29:31.89ID:N7NNCB+K0185名前は開発中のものです。
2014/09/13(土) 13:31:47.88ID:p7BFEjLV昔のデバッガだとアセンブラで見れて実際に命令がおかしくなってる部分を確認できたわけだが、今は無理だな
0186名前は開発中のものです。
2014/09/13(土) 13:54:57.42ID:p7BFEjLVもしくはメモリに余裕がないとか
0187名前は開発中のものです。
2014/09/13(土) 13:58:59.50ID:FxWLsqJE0188名前は開発中のものです。
2014/09/13(土) 14:40:43.79ID:ktDMwsVO配列とかJavaと勘違いしてたかもしれないけど
0189名前は開発中のものです。
2014/09/13(土) 15:06:29.64ID:Zs9/uEmoC++では、自動的に初期化されるのは静的変数の時だけ(全変数が0に初期化される)
それ以外のスタックやヒープの変数は何らかの初期化をどこかで行う必要があるね
0190名前は開発中のものです。
2014/09/13(土) 16:41:17.80ID:6DC3rx39> その4つめの変数吐き出す部分で終わるようになってしまいました。
そのテキストを吐き出す処理も立派な処理なので、落ちる場所がずれる可能性はあるよ。
デバッグ用に処理を追加してもずれるので原因究明が難しい。
とにかくメモリーを壊してる処理が無いかどうかチェックして
修正したらテストしてもらうとか…
0191名前は開発中のものです。
2014/09/14(日) 11:36:56.77ID:0Se26vk6問題のあるPCを使わせてもらって、IDE入れて直接確認するのが一番早い
もしくは強制終了が出なくなるまで、プログラムをどんどんコメントアウトしていって、原因箇所を突き止めるとか
思いつく原因は、ZeroMemoryで初期化サイズを間違えて、余計な領域まで0にしているとか?
0192名前は開発中のものです。
2014/09/14(日) 12:01:02.08ID:kfEvYRg/自分の場合はネトゲが一部動かなくなったし
0193名前は開発中のものです。
2014/09/14(日) 14:26:42.23ID:wa/wX/ErそれをIDEで開けばデバッグ実行してるような状態になるから
そこでどこでエラーが出たか、どの変数に何が入っているかを確認するといい
開発環境を入れるのは>>192と同意見、入れない方が良いと思う。
0194名前は開発中のものです。
2014/09/14(日) 21:12:12.71ID:62kRP5LB関数ヘッダが実体と違うというウルトラCもありえなくはない
printf でバッファ破壊というオチはよくある罠
>なぜ知人B
俺は詳しくないが DEP の設定がどうのとたまに聞く
自PCで再現できればそれに越したことはないが、そうでなければ気にしても仕方ない
0195名前は開発中のものです。
2014/09/15(月) 00:44:13.42ID:IlfRDj6Oどうせランタイム入れるから、変わらないんじゃないの?
>ネトゲが一部動かなくなった
まじか
0196名前は開発中のものです。
2014/09/15(月) 00:44:19.95ID:GS0jslvNとか言われるけど、やっぱ事実?w
0197名前は開発中のものです。
2014/09/15(月) 01:33:48.17ID:Xt8gwGjX・コンパイル前のソースコードがある
0198名前は開発中のものです。
2014/09/15(月) 01:39:55.70ID:GS0jslvN開発者ではない第三者の前で再現してどーすんだw
0199名前は開発中のものです。
2014/09/15(月) 03:13:10.79ID:wd8jmKt80200名前は開発中のものです。
2014/09/15(月) 07:07:16.38ID:wuAS4ub9デバッガの例外動作関連に割り込んでるみたいだな
アンインストールしても何か残ってたし
0201名前は開発中のものです。
2014/09/15(月) 20:14:31.20ID:+WwuNSKX0202名前は開発中のものです。
2014/09/16(火) 09:20:44.20ID:4EKEuM8s0203名前は開発中のものです。
2014/09/17(水) 02:32:28.35ID:lSNjy4CG0204名前は開発中のものです。
2014/09/17(水) 06:50:46.77ID:2baRZfUFアプリが大きいサイズの連続したメモリー空間が確保できないしか影響ないだろ
0205名前は開発中のものです。
2014/09/17(水) 19:59:00.60ID:BSiz0TOucocos2dみたいに「フレームワーク」ほどいかない自由なのが好きなんだけど
0206名前は開発中のものです。
2014/09/17(水) 20:20:12.05ID:2sT7Gz4p0207名前は開発中のものです。
2014/09/17(水) 21:26:51.10ID:T7ONrPQzダメージが発生した時その配列にpush_backして、キャラクターが更新される時にまとめて処理してるですが
その通知配列に何を入れるかすごい悩んでるんですが、他の人はどうやってやってるんですか?
今は、ダメージとか属性とかデバフ情報とかを伝える手紙のような構造体をvectorにpush_backして
ダメージを受けるキャラクター側の耐性とか加味して処理しようかなと考えてます
・攻撃発生時に構造体の自動変数を生成して、コピーして伝える
・攻撃発生時に構造体をインスタンス化して、ポインタを伝える
・予め攻撃通知用の構造体を静的な値(日本語としての静的)として持っておき、ポインタを伝える
の3つぐらいは思い付くのですが、それぞれ一長一短でどうしたものかなーと・・・
0208名前は開発中のものです。
2014/09/17(水) 21:41:21.93ID:Ek0OO0vX1つめはコピー量が気になる、2つめは毎度newするのが気になる、
ってことなら、3つめのでいいんじゃないの?
日本語としての静的の意味はよくわかんないけど
0209名前は開発中のものです。
2014/09/17(水) 22:18:22.34ID:T7ONrPQz武器を装備して殴りあうだけならいいんですが、
魔法とか攻撃手段が増えると、すごい勢いで増えるかなーと
0210名前は開発中のものです。
2014/09/17(水) 22:40:21.67ID:Ek0OO0vX構造がよくわからないからなんとも言えないけど、
3つのパターンともサイズに関してはあんまり変わらないよね
どうしても気になるなら、通知って方法自体からやり直してみるとか
メモリは必要なら潤沢に使ってもいいと思うけどね
自分なら5M、10Mくらいならそれが必要なら気にせず使うかな
0211名前は開発中のものです。
2014/09/17(水) 22:49:18.55ID:T7ONrPQz同時攻撃されることも考えて・・・
そういえばこの通知をスタックしてって
自分の更新タイミングで一括処理する以外にどんな方法があるんですか?
アクションゲーム作った時と同じ構造で作ったんですが、逐次処理の方がいいんですかね
0212名前は開発中のものです。
2014/09/17(水) 23:14:42.49ID:GQlJBbYl物理ダメ、魔法ダメ、属性、デバフ系とかをまとめた攻撃情報構造体みたいなものを用意
攻撃時に構造体へ情報を詰め込む
Character.Attacked(AttackInfo*)みたいな関数へ構造体を渡す
関数内で最終的なダメージを算出って感じ
FFみたいなゲージ戦闘なら審判みたいなものを用意して、攻撃側と防御側のステータスを渡して
審判が最終的なダメを計算、敵へダメージを与えるってのもありかも?
やるかはわからないけど、防御側のカウンターダメージとかもできそう
0213名前は開発中のものです。
2014/09/17(水) 23:32:10.49ID:Ek0OO0vXスタックせずに同時のタイミングを処理する別の方法としてなら、
ステータスを更新前と更新後用に分けといて、
同じタイミング中は更新前を参照して更新後を書き換えるとか?
0214名前は開発中のものです。
2014/09/17(水) 23:34:50.13ID:T7ONrPQzありがとうございました
0215名前は開発中のものです。
2014/09/18(木) 00:24:30.25ID:64bH7faF一時的なオブジェクトのインスタンス化と削除は、
コンパイラによって最適化される場合があるらしいね
ソースはgems
0216名前は開発中のものです。
2014/09/18(木) 02:30:55.45ID:E/1zPl06>構造はFFみたいにゲージが貯まったら、
>行動できるってやつで、システムはそのままです
ATB(Active Time Battle)は、FFの特許じゃないの?
もう、特許が切れているの?
0217名前は開発中のものです。
2014/09/18(木) 05:08:15.17ID:djmncf26これか?
出願1991年だから切れてるんじゃない?
しかしこういう特許ってゲームのルールは特許にならないからって回りくどくてめんどくさい書き方してるな。でもこれに書いてある通りに実装しなくても似てるだけで訴えるんだろ?
あほくさ
0218名前は開発中のものです。
2014/09/18(木) 11:19:02.99ID:l5OvmxOh余計な待ち時間を増やすとか
あほくさ
0219名前は開発中のものです。
2014/09/18(木) 19:22:54.91ID:5nIXhLpZありがとう!参考になります
当たり判定が直感的で良さそうですね
0220名前は開発中のものです。
2014/09/18(木) 19:34:17.61ID:UPAtERIr■ このスレッドは過去ログ倉庫に格納されています