ゲームプログラムなら俺に聞け28
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2013/04/21(日) 15:41:16.06なんでも聞いてちょ
【前スレ】
ゲームプログラムなら俺に聞け27
http://toro.2ch.net/test/read.cgi/tech/1356617503/
次スレは>>950が立てること。
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0002デフォルトの名無しさん
2013/04/21(日) 15:44:45.540004デフォルトの名無しさん
2013/04/21(日) 21:09:47.2428スレ目ともなればあっても良さそうだが
0005デフォルトの名無しさん
2013/04/22(月) 21:12:32.77ごめんなさい
0006デフォルトの名無しさん
2013/04/22(月) 22:42:37.850007デフォルトの名無しさん
2013/04/24(水) 21:29:35.73メインループでいいですか?
0008デフォルトの名無しさん
2013/04/25(木) 09:34:08.780009デフォルトの名無しさん
2013/04/25(木) 15:49:40.89知らないけど俺はそう呼んでる
0010デフォルトの名無しさん
2013/04/26(金) 00:34:35.98C++とかは知らんけど、iOSとかのObjective-Cはイベントループと呼ぶ
0011デフォルトの名無しさん
2013/04/27(土) 01:07:34.430012デフォルトの名無しさん
2013/04/27(土) 02:59:35.03はっきり覚えてないけど、この間SDKを最新版にしようと思って探したらそれくらい古いのしか見つからなかった
0013デフォルトの名無しさん
2013/04/27(土) 13:52:59.36http://dench.flatlib.jp/dxsdkver
0014デフォルトの名無しさん
2013/04/27(土) 14:43:36.450015デフォルトの名無しさん
2013/04/27(土) 16:42:18.76モルピクの通信データの圧縮ってどうすればいいのでしょうか?
現在、プレイヤーの数が増えてきたため、プロバイダの帯域制限に引っかかりそうでヒヤヒヤしています。
アップデートして無駄なところは極力減らした(後に拡張することがあってもいいように用意していたヘッダを8バイトから4バイトに減らすなど)のですが、
そろそろ限界です。
プロバイダは変えるつもりですが、まだどこにするかも決まっていないので、変えるまでに3か月くらいはかかると思います。
それまで何とか乗り切りたいのです。
0016デフォルトの名無しさん
2013/04/27(土) 18:03:35.18そんな一般性ゼロの単語誰もわかんねーよ。
0017片山博文MZパンク ◆0lBZNi.Q7evd
2013/04/27(土) 19:09:17.98zlib
0018デフォルトの名無しさん
2013/04/27(土) 19:34:18.19どういうプロトコルかにもよるけど
1バイト単位で調べて同じ値が連続してたらまとめるとか
そういうのしかないしんじゃない
0019デフォルトの名無しさん
2013/04/27(土) 20:22:38.81どうせまだ他にも無駄があるんだろ
0020デフォルトの名無しさん
2013/04/27(土) 20:40:44.190021デフォルトの名無しさん
2013/04/27(土) 21:55:59.03的はずれな回答にしかならん
0022デフォルトの名無しさん
2013/04/27(土) 23:05:47.69そこそのMMO運用してるならとっくに特定されてもおかしくないはず
というわけで実際はモルピグ名乗るのもおこがましいほどのカスか脳内の話だろう
002315
2013/04/27(土) 23:40:00.37ありがとうございます。
それでどの程度圧縮できるか分かりませんがやってみます。
>>19
無駄な部分はかなり修正したのでほとんどないはずですが・・・もう少し調べてみます。
0024デフォルトの名無しさん
2013/04/27(土) 23:50:34.490026デフォルトの名無しさん
2013/04/27(土) 23:57:30.92今時NIC無しのパソコンなんか無いだろうし
0027デフォルトの名無しさん
2013/04/28(日) 01:13:17.780028デフォルトの名無しさん
2013/04/28(日) 01:28:12.770029デフォルトの名無しさん
2013/04/28(日) 02:44:38.00セーブデータを落としてくるほど価値があるクリア特典のあるゲームor金が絡むMMO→偽装に対しても頑健である必要がある
それ以外→別にセーブデータ出回ってもいいし。自分の労力に見合う苦労させたいっていう開発側のオナニーじゃない?
コスパ的にも楽してストーリーだけ楽しみたいってユーザーのプレイスタイルを縛り付ける意味はないと思う
0030デフォルトの名無しさん
2013/04/28(日) 04:31:52.66MACアドレスって調べてみたけどこれでいいわ
NICのMACアドレスを埋め込んであるかどうかすら知らなかったら
MACアドレス偽装もしようがないだろ
そこまで調べあげて偽装するような奴には破られてもいいわ
0031デフォルトの名無しさん
2013/04/28(日) 06:09:25.490032デフォルトの名無しさん
2013/04/28(日) 09:48:19.49o 正規ユーザーに「個人用途においても他のPCにセーブデータの移行はできない」と明記する必要がある
o PCの修理で基盤交換するとロードできなくなる
o MAC検証を回避するexeパッチが出回った時点でカジュアルユーザーにも無力になる
…ぐらいは想定した上で導入しなよ
0033デフォルトの名無しさん
2013/04/28(日) 12:10:38.01そこまで調べあげて偽装するような奴は、破った後に、
誰でも簡単に破れて簡単に改造できるスクリプトやツールをばらまくよ
0034デフォルトの名無しさん
2013/04/28(日) 12:19:17.94改造ツールがバラまかれる規模ならもうちょっと別の対策を考えた方がいいかもね
0035デフォルトの名無しさん
2013/04/28(日) 12:32:20.70>>15 のような奴もこんなスレで訊いている現状、
求めている質については回答者の方からは何とも言えんので、
一応そういうことも想定できるよと、可能性を述べました
今回はそこまで求めてなくても、「なるほど、そういうこともあるのか」と
頭の片隅にでも入れておいてくれたら、それでいいよ
0037デフォルトの名無しさん
2013/04/28(日) 12:42:26.570038デフォルトの名無しさん
2013/04/28(日) 13:20:51.620039デフォルトの名無しさん
2013/04/28(日) 21:41:07.040040デフォルトの名無しさん
2013/04/28(日) 22:17:02.580041デフォルトの名無しさん
2013/04/29(月) 03:32:01.910042デフォルトの名無しさん
2013/04/29(月) 17:21:51.04訳:ここ2年以内に発売されたパソコン(デスクトップ・ノートを含むが、タブレット・ネットブックを除く)であれば、
家電量販店で販売されているものの80%以上でシェーダ5.0を利用可能ですか?
0043デフォルトの名無しさん
2013/04/29(月) 19:09:47.09IvyBridge SM5.0 (2012/04〜)
SandyBridge SM4.1
CPUがSandyBridgeでビデオカード積んでないPCがどれくらいの割合か分からん。
0044デフォルトの名無しさん
2013/04/30(火) 21:36:44.450045デフォルトの名無しさん
2013/04/30(火) 21:53:39.050046デフォルトの名無しさん
2013/05/01(水) 00:21:47.480047デフォルトの名無しさん
2013/05/01(水) 00:30:18.310048デフォルトの名無しさん
2013/05/01(水) 21:25:55.89テクスチャ無しでよければ、
頂点色有りのトライアングルが描画できる関数があったはずだからそれ使えば?
たしか、GDI+か何かの関数だったと思う。
0049デフォルトの名無しさん
2013/05/01(水) 21:48:40.523D空間で真面目にやるならパースペクティブコレクトが必要なんだがね
0050デフォルトの名無しさん
2013/05/01(水) 22:07:22.513Dもそうだけどライブラリに頼り切ってアルゴリズムの書けない連中だらけになった
005144
2013/05/01(水) 22:30:41.780052デフォルトの名無しさん
2013/05/01(水) 22:32:17.58OpenGLを使うという選択肢もある
0053デフォルトの名無しさん
2013/05/04(土) 00:21:57.880054デフォルトの名無しさん
2013/05/04(土) 09:57:46.230055デフォルトの名無しさん
2013/05/04(土) 10:52:16.740056デフォルトの名無しさん
2013/05/04(土) 12:22:43.31俺もなんかしないとなぁ
0057デフォルトの名無しさん
2013/05/05(日) 02:35:42.49RPGの戦闘でコマンドを選ぶところで、
「魔法」を選んだら、次は魔法の種類を選んで、最後に対象の敵を選ぶ
古典的な入力方法。
但し、「魔法」コマンドを選んで次の魔法一覧が出ても、
「魔法」コマンドを含むエリアが消えずに半透明グラデーションで残したい。
攻撃 ファイア
魔法 サンダー
アイス
↑これが、「魔法」コマンドを選んだ後の魔法の種類を選択するときの状態。
「攻撃」「魔法」と書かれてるエリアは消えずに、
そのエリアは文字も含めて右から左へ半透明でフェードアウトした状態で描画したい。
そこからサンダーとか適当に魔法を選んだら今度は、
ファイア 盗賊A
サンダー 盗賊B
アイス
↑みたいに対象の敵を選択できる状態になるけど、
このときも「ファイア」「サンダー」「アイス」を含むエリアは完全には消えずに
右から左にフェードアウトした状態にしたい。
しかも各選択時にはパッと変わるのではなくて、スライドするように変えたい。
0058デフォルトの名無しさん
2013/05/05(日) 02:37:12.03つーか説明が分かりにくいから画像にするわ。
0059デフォルトの名無しさん
2013/05/05(日) 03:29:22.18とりあえずこんな感じで攻撃とか魔法とか出てて、
ttp://age2.tv/up/img/up6865.png
魔法を選択するとコマンドがスライドしていって・・・
ttp://age2.tv/up/img/up6866.png
次のコマンドが表示されたときはこの状態になる。
ttp://age2.tv/up/img/up6867.png
そこからさらにコマンド選択するとこういう状態になる(スライド過程は省略)
ttp://age2.tv/up/img/up6868.png
このコマンドの半透明をリアルタイムレンダリングしたい。
エリアだけなら半透明グラデーションかけた画像を用意すればすむんだが、
文字なんかは、例えば魔法の習得順序がプレイヤー全員同じでないから、
画像として準備するのが難しいし、
文字をこのグラデーションの画像として準備するとかなりの量になる。
だからリアルタイムでやりたいんだけど、これをDirectXで実現するにはどうしたらいいんだ?
0060デフォルトの名無しさん
2013/05/05(日) 03:52:41.12終了
0061デフォルトの名無しさん
2013/05/05(日) 10:28:48.86リアルタイムでオフスクリーンに文字をレンダリングして、
それをテクスチャにしてビルボードをバックバッファにレンダリング。
その際に頂点カラーとしてアルファ値を設定し、アルファブレンディングを有効化しておく。
シェーダーがまともに使える以前は、たとえばこんな風にして実現していた。
0062uy@右翼
2013/05/05(日) 11:01:37.53そこから推察すると日本のITが全体的に失墜し始めた理由は
韓国と台湾と中国にそれぞれ日本の技術と市場を売ったからだな
韓国にはソフトウェア技術
台湾には基盤技術
中国にはその両方ってところか
売った理由は戦後賠償
日本経済が伸びすぎたから米国から待ったをかけられて
「市場」そのものを売るといいか明け渡すように要求されたものと思われる
日本の技術はたしかに最高峰なんだけど、中小が、だから通りで虚業化してるんだ
そしてアニメ関係がかろうじて生き残った
理由は簡単
日本人以外には出来ないから
真似が出来ない。神風と同じだね
日本は、日本以外でも出来る産業はいくらでも奪われるような立ち位置なんよ
中韓からの撤退につきこれから東南アジアにもおそらく「市場」そのものを売りにいく
だからさ、他国に真似されない産業を作っていかないと生きていけない
イプシロンロケットや10式戦車くらいになると
技術を奪われるにしてもイギリスとアメリカ相手くらいでそっちでも極秘扱いになるはずだからまだいいとしても
発展途上国に対し金だけじゃなくいろんなものを売ることを要求される日本は
ありきたりな産業で生きてる中小企業は政治家の指先ひとつでどんどん生存厳しくなっていく
これが俺様の推察した、日本のIT不況の根幹にあるものだ
0063デフォルトの名無しさん
2013/05/05(日) 11:03:41.250064デフォルトの名無しさん
2013/05/05(日) 15:10:51.88ありがとう。
シェーダってそんなに便利なものなのか。
ちょい勉強してみる。
0065デフォルトの名無しさん
2013/05/06(月) 11:33:13.71絶対指定だと回転移動伸縮指定の指定順序を記憶しないと
回転だけリセットとか難しいよね(例:回転して移動して正面を向かせる)
かといって相対指定だと蓄積誤差とかが気になる
みんなどんなやりかたしてる?
0066デフォルトの名無しさん
2013/05/06(月) 14:59:27.580067デフォルトの名無しさん
2013/05/06(月) 16:12:07.600068デフォルトの名無しさん
2013/05/06(月) 20:38:43.71どのようなシーンで、どの程度の誤差が蓄積して、どのような問題が起きたか、
という視点で考えたほうがいいと思う。
実際に問題が起きるのなら、その誤差を減らす方法か、シーンを変えることを考える必要がある。
問題が起きない程度の誤差なら、誤差が蓄積している事だけ覚えておいて、あとは無視できる。
趣味でゲームを作る場合、作る前に悩んでも仕方がないし、意味がない。
これから起こるかもしれないことに対して対策を考えても、
その対策が有功か検討するのに結局作ってみなければならないのだから、
それなら作ってみて問題が起きてから、それに対する対策を考える方が建設的だ。
0069デフォルトの名無しさん
2013/05/06(月) 21:46:59.73ライブラリの設計なので後で変更するのがきついんすわ
最終的にはテストコード書いて検証する必要あるけど
とっかかりとして、普通どっちでやってるのかなと
0070デフォルトの名無しさん
2013/05/06(月) 22:25:02.33そんなのキャラの動かし方やシーンによって変わるよ。
3Dのフィールド上に立っているキャラをプレーヤーのコントロールで歩かせる場合は、
相対値で十分だし、その方が自然だ(基準値をどこかに設けるほうが不自然)。
たとえば 5秒前進した後で5秒後退し、画面上の見た目で最初と数ドットずれていたとして、
プレーヤーはそれに対して怒ったりはしないし、気づかない人が大半だ。
(そのズレがゲーム性に関わるのなら問題だが。例えば横スクロールアクションとか)
でも、キャラを中心に一定の半径をもってエネルギー流が回転するシーンの場合、
回転するごとに誤差のせいでその半径がどんどん広がっていったらおかしい。
こちらは、基準値となる座標や角度を設けて、相対的ではなく絶対的な回転角度から計算すべき。
だから、ライブラリなら両方使えるようにしておくのがいい。
一方でもう一方を実現するなんて不自然なことをプログラマにさせたくないのなら、ね。
0071デフォルトの名無しさん
2013/05/06(月) 23:31:44.04回転移動伸縮回転移動伸縮…したあとで移動だけ絶対指定した場合
現在の変換行列に移動を打ち消す行列かけてから新しい移動行列かけるわけだよな
相対指定の履歴を全部で保存しておいて逆順に逆行列掛けてくのがいい?
0072デフォルトの名無しさん
2013/05/07(火) 18:54:17.25すまんが、言いたいことがよく分からん。
相対指定も絶対指定も指定するために必要なものは変わらんと思うが。
今回施す変換行列と、変換の基準となる行列、この2つを指定すればいい。
相対指定なら、基準となる行列とは前回まで積み重ねた結果の変換行列のこと、
絶対指定なら、基準となる行列とはなにか適当な変換行列のこと(キャラの中心とか、ワールド座標系とか)。
> 回転移動伸縮回転移動伸縮…したあとで移動だけ絶対指定した場合
そのような要望をするのは、そのライブラリを使うプログラマ側だよな。
なにを絶対指定の基準とするかはそのプログラマにしか分からん。
であれば、基準となる変換行列はプログラマ側に指定させるしかない。
> 現在の変換行列に移動を打ち消す行列かけてから新しい移動行列かけるわけだよな
それは絶対指定にならないのでは? 打ち消す行列をかけた時点で誤差が蓄積する。
> 相対指定の履歴を全部で保存しておいて逆順に逆行列掛けてくのがいい?
絶対指定(を以後続けること)において、記憶させておかなければならないことは、
今までの変換の履歴ではなくて、基準となる変換行列の方だと思うが。
並進変換(平行移動)だけ絶対指定して、回転変換などは相対指定したいのなら、
並進変換の基準となる変換行列だけプログラマに保存してもらえばいい。
逆に相対指定の場合は、基準となる変換行列は今までの変換の積み重ねだが、これはライブラリ側で把握可能だ。
今までの積み重ね全てではなく、前回の最終計算結果だけ保存しておけばいい。
インターフェースとしては、基準となる変換行列を null 値で指定されたら、
相対指定されたとみなして、最終計算結果を基準となる変換行列として計算すればいい。
そうすれば、相対指定と絶対指定でインターフェースを分ける必要がなくなる。
0073デフォルトの名無しさん
2013/05/07(火) 23:12:49.33認識が食い違ってる
基準となる変換行列は常に単位行列で
・平行移動絶対指定⇒回転・拡縮状況はそのままにキャラを"変換行列が単位行列のときの位置"に平行移動しそこから絶対指定された量平行移動させる必要がある
・回転絶対指定⇒平行移動・拡縮状況はそのままにキャラを"変換行列が単位行列のときの姿勢"に回転しそこから絶対指定された量回転させる必要がある
・拡縮絶対指定⇒平行移動・回転状況はそのままにキャラを"変換行列が単位行列のときの大きさ"に拡縮しそこから絶対指定された量拡縮させる必要がある
それとプログラマ側には行列演算を意識させたくないので
glTranslateみたいなIFだけ用意してる
0074デフォルトの名無しさん
2013/05/07(火) 23:16:02.75追記
[移動|回転|拡縮]相対指定を繰り返したあと[移動|回転|拡縮]絶対指定することもある
0075デフォルトの名無しさん
2013/05/08(水) 00:27:45.340076デフォルトの名無しさん
2013/05/08(水) 12:51:33.70なんとなく意味がわかってきた。
それなら、スケーリング変換行列と回転変換行列と並進変換行列、
それぞれを保存するバッファを用意すればいい。
Msb : スケーリング変換行列を保存するバッファ
Mrb : 回転変換行列を保存するバッファ
Mtb : 並進変換行列を保存するバッファ
今回施すそれぞれの変換を次のものとする。
Ms : 今回施すスケーリング変換行列
Mr : 今回施す回転変換行列
Mt : 今回施す並進変換行列
全ての変換で「相対指定」するのなら、新しいベクトル V' を
ベースとなるベクトル V から次のように計算する。
Msb = Ms * Msb
Mrb = Mr * Mrb
Mtb = Mt * Mtb
V' = Msb * Mrb * Mtb * V
もし、回転換のみ「絶対指定」するのなら次のように計算する。
Msb = Ms * Msb
Mrb = Mr
Mtb = Mt * Mtb
V' = Msb * Mrb * Mtb * V
つまり、相対指定するなら、バッファに新たな行列をかけて計算を積み重ねる。
絶対指定するなら、バッファに新たな行列を代入する。
(これが、変換を打ち消す行列をかけることと同義だ)
007776
2013/05/08(水) 12:54:12.60すまん、>>76 の掛け算の順が逆だった。
スケーリング変換行列からかけないと結果が無茶苦茶になるな。
正しくは、
全ての変換で「相対指定」するのなら、新しいベクトル V' を
ベースとなるベクトル V から次のように計算する。
Msb = Ms * Msb
Mrb = Mr * Mrb
Mtb = Mt * Mtb
V' = Mtb * Mrb * Msb * V
もし、回転換のみ「絶対指定」するのなら次のように計算する。
Msb = Ms * Msb
Mrb = Mr
Mtb = Mt * Mtb
V' = Mtb * Mrb * Msb * V
0078デフォルトの名無しさん
2013/05/08(水) 14:21:42.73「この程度の蓄積誤差なら問題ないな」とか
「このくらいになってくるとヤバいな」とか
もうちょっとノウハウを蓄積させてからのがいいって
0079デフォルトの名無しさん
2013/05/08(水) 17:25:59.451.まずその分野のゲームを作る
2.将来ライブラリ化する予定の部分は別ファイルにして#includeするだけで使えるようにして作っていく
3.マジックナンバーを削ってマジックナンバーだった部分は初期化などで設定できるようにする
4.それをincludeするだけで使えるか確認するために同じ分野の別ゲーを作る
5.前回では見えなかった特定のゲーム依存の部分を汎用できるようにブラッシュアップ
6.ライブラリ化
7.その頃にはその分野のゲームを作るのに飽きている
素人でもこの手順でやれば作れる
もちろんプロは設計から入るからこんな手順踏まないけど
0080デフォルトの名無しさん
2013/05/08(水) 20:00:44.24思いつきの仕様変更にしっかり振り回されて
大人の都合でプラットフォーム変更されてしっかり泣く
0081デフォルトの名無しさん
2013/05/08(水) 21:14:41.30ありがとう。
そんな感じで書きはじめてみた。
0082デフォルトの名無しさん
2013/05/09(木) 05:08:49.79以下のようにA〜Eのテクスチャをスプライト->Drawで描画しています。
A 0.8f
B 0.4f
C 0.4f
D 0.2f
E 0.1f
基本的にZバッファは効いてくれているのですが、ところどころ問題が起きます。
〇Bを描画するとCが最全面にきます。
〇Cをコメントアウトすると、Eが描画されなくなります。
〇CにAより深い値を設定してもAの背面にはならず、Dの背面にはなります。
AutoDepthStencilFormatはD16と、D24S8の両方で試しましたが同じでした。
Draw直前で引数に与える位置座標(D3DXVECTOR3)のz成分は上記のままだったので問題ありませんでした。
毎フレーム描画前のデバイス->Clearには2番目の引数でZバッファをクリアする旨、クリアは1.0fまでする旨書いてあります。
DirectXは9使ってます、OSは7、言語はC/C++です。
0083デフォルトの名無しさん
2013/05/09(木) 14:54:46.59問題の切り分けをさらに細かくしようとして変数を宣言していたところ、
DとEの間でD3DXVECTOR3 test;と宣言するとDとEが描画されない事案が発生。
Dより前に宣言しても同様でした。
描画自体は別のクラスに投げていて、そのクラスにはそのtestは渡していません。
宣言するだけでEが描画されなくなります。
グローバルにtest変数があるわけでもなく、testを他の絶対に使用していない名前に変えても同様の現象になります。
これも上記の不具合に関係ありそうです。
■D、Eが問題なく描画される場合
D3DXVECTOR3 test;//グローバル・ローカルに関わらずプログラム中で1回も使ってない名前
Draw_DE();
BOOL Draw_DE(){
D描画
E描画
return TRUE;
}
■D、Eが描画されなくなる場合
Draw_DE(){
D3DXVECTOR3 test;//グローバル・ローカルに関わらずプログラム中で1回も使ってない名前
D描画
E描画
return TRUE;
)
0084デフォルトの名無しさん
2013/05/09(木) 15:55:49.24解決後の検証結果、スプライト->Draw()に渡しているRECTやD3DXVECTOR3変数が、スプライト->End()、もしくは、デバイス->EndScene()以前に破棄されると>>82-82の問題が発生するようです。
スプライト->Draw()に渡していたそれらの変数がローカル変数で、スプライト->End()、デバイス->EndScene()の前に破棄されていたため発生した問題のようです。
■問題が発生する場合
デバイス->Clear(引数省略);
デバイス->BeginScene();
スプライト->Begin();
Draw_Test();
スプライト->End();
デバイス->EndScene();
デバイス->Present(引数省略);
BOOL Draw_Test(){
D3DXVECTOR3 pos , cen;
RECT rc;
(変数に値を設定)
スプライト->Draw( テクスチャ , &rc , &cen , &pos , 0xFFFFFFFF );
return TRUE;
}
■問題が発生しない場合
D3DXVECTOR3 pos , cen;
RECT rc;
デバイス->Clear(引数省略);
デバイス->BeginScene();
スプライト->Begin();
(変数に値を設定)
スプライト->Draw( テクスチャ , &rc , &cen , &pos , 0xFFFFFFFF );
スプライト->End();
デバイス->EndScene();
デバイス->Present(引数省略);
0085デフォルトの名無しさん
2013/05/09(木) 15:57:58.10D3DXVECTOR3 pos , cen;
RECT rc;
デバイス->Clear(引数省略);
デバイス->BeginScene();
スプライト->Begin();
Draw_Test( &rc , &pos , &cen );
スプライト->End();
デバイス->EndScene();
デバイス->Present(引数省略);
BOOL Draw_Test( RECT *rc , D3DXVECTOR3 *pos , D3DXVECTOR3 *cen ){
(変数に値を設定)
スプライト->Draw( テクスチャ , rc , cen , pos , 0xFFFFFFFF );
return TRUE;
}
この2通りの問題が発生しない場合から考えて、最初に述べた結論で間違いなさそうです。
というか、こんな縛りがあるなんて驚きです。
これってプログラムでは普通なんですかね。
※(引数省略)・・・問題の本質に関係ないため、この投稿で省略したという意味です。
0086デフォルトの名無しさん
2013/05/09(木) 16:13:32.81解決したもののかなり運に近かったような気がします。
rcもposも使い回してるので内容も変わりまくってるはずで、
その変数がスプライト->Draw()する瞬間以外にも参照されているということになりますよね。
不可解です。
なにはともあれ、解決して良かったです。
これもみなさんに回答や助言を頂いたお蔭です。
みなさんのお力添えがなければもっと悩んでいたと思います。
やっと眠りにつくことができます。
おやすみなさい。
0087デフォルトの名無しさん
2013/05/09(木) 17:51:18.120088デフォルトの名無しさん
2013/05/09(木) 20:06:36.98もし本当なら有り得ない欠陥
0089デフォルトの名無しさん
2013/05/09(木) 22:56:15.340090デフォルトの名無しさん
2013/05/11(土) 16:34:27.320091デフォルトの名無しさん
2013/05/11(土) 16:49:52.83お手軽に作ってデバッグもCより楽にやりたいならJava
0092デフォルトの名無しさん
2013/05/11(土) 17:00:35.28本当はどっちが作り易かったのか考えるのはその後でいい。
0093デフォルトの名無しさん
2013/05/11(土) 17:04:55.69とんくす
0094デフォルトの名無しさん
2013/05/11(土) 17:42:05.22丸投げで聞いてくるレベルでは情報が少なすぎてツライかも
0095デフォルトの名無しさん
2013/05/11(土) 17:58:24.32そのまとめたライブラリは
クラスにまとめてる?
それかextrunを使って分かりやすくグローバルにしてる?
0096デフォルトの名無しさん
2013/05/11(土) 18:04:19.22ゲームは完成しない。
0097デフォルトの名無しさん
2013/05/11(土) 18:47:35.38メインループとか、Windowsアプリのメッセージループとかなら、
while (...) { ... } という構造でループしてるなってすぐ分かるが。
描画ループは、描画処理の部分だけでひとつの輪っかを成しているのか?
ってことは、メインループとかとは別スレッドか・・・
0098デフォルトの名無しさん
2013/05/11(土) 19:34:41.96当たり前だろ
このご時世シングルスレッドで作るゲームって数当てゲームくらい
0099デフォルトの名無しさん
2013/05/11(土) 20:03:57.11HDDからの読み込みとアニメーションが別スレッドで動いてるからですか?
0100デフォルトの名無しさん
2013/05/11(土) 20:08:06.11そういうことなら、描画ループを知らないレベルでもゲームは完成させられるはず。
なぜなら、以前まではそのレベルで、数当てゲーム以上のクオリティのゲームを完成させていたから。
何を使ってもゲームは完成しない根拠をもう少し詳しく説明してほしい。
0101デフォルトの名無しさん
2013/05/11(土) 20:14:56.040102デフォルトの名無しさん
2013/05/11(土) 20:57:57.960103デフォルトの名無しさん
2013/05/11(土) 21:32:18.270104デフォルトの名無しさん
2013/05/12(日) 18:40:49.91例えば3Dとかはスマホでは完全に定着してるのですか?
0105デフォルトの名無しさん
2013/05/12(日) 18:48:12.163Dどころか、プログラマブルシェーディングも完全に定着しています。
0106デフォルトの名無しさん
2013/05/12(日) 18:57:32.46普通に使われてるけどAndroidのアプリはJavaだから無理。
0107デフォルトの名無しさん
2013/05/12(日) 19:13:33.78作り損?
0108デフォルトの名無しさん
2013/05/12(日) 19:51:23.82がんばって就職してね。その気がないなら気にしたって
しょうがないでしょ。ビジネスモデルは自分で調べる。
0109デフォルトの名無しさん
2013/05/12(日) 21:01:21.61内部組み込みとか意味不明。
AndroidはC++でプログラムは作れるんだが、
ndkも知らないのに知ったかするな。
jniは組み込みじゃないからな。
ついでにいうとJava単独でもシェーダぐらい呼び出せる。
0110デフォルトの名無しさん
2013/05/13(月) 09:58:37.77趣味か、広告で稼いでるか
ガチャなどで一部の人から搾取して稼いでる
0111デフォルトの名無しさん
2013/05/13(月) 12:29:09.340112デフォルトの名無しさん
2013/05/14(火) 19:42:57.82プレイヤーや敵キャラのクラスは
いろんなステージで使うからstaticにしてるのだけど
どんどんstaticが増えてきて困ってる
本来はどうやってまとめるものなの?
0113デフォルトの名無しさん
2013/05/14(火) 20:14:43.57プレイヤー情報や敵キャラの情報は全部その中に持ったり都度生成したりする
0114デフォルトの名無しさん
2013/05/15(水) 02:28:07.47ステージってことは面クリ型?
俺が作るとしたらって考えたんだけど敵の何をstaticにするのかよく分からない
ステージクラスの中に敵クラスのポインタを宣言しといて、
ステージがロードされるたびに、前のステージの敵クラスは全解放して、また新しいステージの敵の数だけ敵クラス用メモリ確保→敵データ読み込みとかどうよ
プレイヤーのクラスはグローバルにしとく
0115デフォルトの名無しさん
2013/05/15(水) 20:07:56.66ありがと
>>114方式でやってみるよ
0116デフォルトの名無しさん
2013/05/15(水) 20:16:04.30このサイトを参考にマリオみたいなゲームを作っているのですが
ジャンプなどをしてブロックの角にぶつかると
滑るようにブロックを登ってしまいます
どのようにすれば良いでしょうか?
0117デフォルトの名無しさん
2013/05/15(水) 20:20:10.920119デフォルトの名無しさん
2013/05/15(水) 21:36:47.75お前のプログラムだと、なんで滑るようにブロックを登ってしまうんだ?
何が原因なんだ?
0120デフォルトの名無しさん
2013/05/15(水) 23:14:42.150121116
2013/05/15(水) 23:46:26.21ブロックの上部にプレイヤーの座標がくるとめり込まないようにY軸がマイナスされる
それで不自然に浮いたような動きになる
当然、ifの順番を変えてもどこかの角が不自然な動きになってしまう
0122片山博文MZパンク ◆0lBZNi.Q7evd
2013/05/15(水) 23:58:45.810123デフォルトの名無しさん
2013/05/16(木) 00:54:23.03そうすると
ブロックの下からジャンプして頭ぶつけたときに横に滑る
0124片山博文MZパンク ◆0lBZNi.Q7evd
2013/05/16(木) 01:07:06.690125デフォルトの名無しさん
2013/05/16(木) 01:39:05.71どういうこと?
0126デフォルトの名無しさん
2013/05/16(木) 01:40:07.40実際、マリオとかロックマンってどうなっているんだ?
0127片山博文MZパンク ◆0lBZNi.Q7evd
2013/05/16(木) 01:44:09.85マリオとブロックの相対位置と、マリオの速度に応じて、「マリオがブロックと接する面」を定義し、
接する面より向こう側に移動できないようにする
0128デフォルトの名無しさん
2013/05/16(木) 01:59:15.46手抜き実装:
現在の縦座標はブロック外→縦にぶつかったので縦ベクトルを反転
(elseで判定を繋がない)
現在の横座標はブロック外→横にぶつかったので横ベクトルを反転
(縦も横もブロック外なら角にぶつかったので両方とも反転)
反射先がブロックかどうか見ていないので
例えばブロック密集地に高速で突っ込むと高確率でバグる
0129デフォルトの名無しさん
2013/05/16(木) 07:16:58.14いや、横には滑らさなければいいだろ
0130デフォルトの名無しさん
2013/05/16(木) 08:54:34.90横を優先したら横に滑っちゃうよ
0131デフォルトの名無しさん
2013/05/16(木) 12:41:11.34どういうこと?
説明したサイトなどない?
0132デフォルトの名無しさん
2013/05/16(木) 13:14:26.02いや、分かるだろ
0133デフォルトの名無しさん
2013/05/16(木) 16:45:23.490134デフォルトの名無しさん
2013/05/16(木) 16:49:38.40そのゲームの演出的な意味なの?
それともメモリ容量の関係?
プログラムの生産性や分割しやすさとかそういったもの?
0135デフォルトの名無しさん
2013/05/16(木) 17:04:36.700136デフォルトの名無しさん
2013/05/16(木) 18:50:20.090137デフォルトの名無しさん
2013/05/16(木) 18:58:31.35プレイヤー・開発者ともに受け入れられたからだと思うけどw
0138デフォルトの名無しさん
2013/05/16(木) 19:41:04.35わかんねーよぉぉぉぉぉぉぉぉぉぉぉ
くそがぁぁぁぁぁぁぁぁぁぁぁ
0139デフォルトの名無しさん
2013/05/16(木) 19:51:46.48ざこおつ
0140デフォルトの名無しさん
2013/05/16(木) 20:01:46.260141138
2013/05/16(木) 22:23:27.61うるせぇぇぇぇぇぇぇ
雑魚だから質問してんだよぉぉぉぉぉぉぉぉぉぉ
教えてくれよぉ(´;ω;`)
0142片山博文MZパンク ◆0lBZNi.Q7evd
2013/05/16(木) 22:39:01.74この時、マリオはそのブロックに「接している」と言うことができる。
マリオが落下しているとき、マリオの左端から右端の範囲のすぐ下にブロックがあったら、そのブロックに着地してそれより下に落下しない。この場合も下のブロックに「接している」と言える。
0143デフォルトの名無しさん
2013/05/16(木) 22:45:23.66うむ
それでブロックにめり込んだ分だけ
反発してブロック手前まで戻すのが今のプログラムだろ
そこからどうするにょ?
0144デフォルトの名無しさん
2013/05/16(木) 22:56:29.220145デフォルトの名無しさん
2013/05/16(木) 22:59:34.17ごめんなさい
それをどう変えれば良いの?
0146デフォルトの名無しさん
2013/05/16(木) 23:04:06.60どの辺に対して、どの方向から接して(めり込んで)いるのかを考慮する
横方向から接しているのに、縦方向から接しているのと同じ対処をしてもダメ
0147デフォルトの名無しさん
2013/05/17(金) 02:00:32.78マリオの移動処理{
キー入力を読む; //略
マリオの速度を暫定的に更新; //略 重力も考慮してしまう
マリオの左右処理; //後述
マリオの上下処理; //後述}
マリオの左右処理{
if(いまのマリオの位置に横速度を足すとブロックに当たる){
マリオの横座標をブロックと接する位置に;
マリオの横速度を0に;
}else{
マリオの横座標に横速度を加える;}}
マリオの上下処理{
if(いまのマリオの位置に縦速度を足すとブロックに当たる){
if(縦速度が下向き){
マリオの縦座標をブロックに接する位置に;
マリオの縦速度を0に;
}else{
switch(突き上げたブロックの種類が){
case:ただの石なら
音を出す;
マリオの縦速度を反転;
case:破壊可能ブロックなら
音を出す;
ブロックの破壊処理;
マリオの縦速度を超低速上昇に設定;
case:……}
マリオの縦座標に縦速度を加える;}}}
0148デフォルトの名無しさん
2013/05/17(金) 09:11:11.60そのうち破たんすると思うよ
もっと、マリオも全体の一部的なを考えをしないと
0149デフォルトの名無しさん
2013/05/17(金) 19:36:04.480150デフォルトの名無しさん
2013/05/18(土) 13:20:54.32いっそマリオを長方形に見立てて、四隅の角の座標を取る
例えばマリオ右上の座標が、右側にあるブロックの左下座標より上、なおかつ左にあったら横からの衝突処理
同ブロック左下よりも右、なおかつ下にあったら下からの衝突処理
同右、なおかつ上にあってめり込み状態だったら、ブロック左下とマリオ右上の座標差x,yのうち小さいほうを優先して処理
みたいなのしか思い浮かばん……
0151デフォルトの名無しさん
2013/05/19(日) 00:41:59.38それ以前にブロックも段差もない平坦な2Dアクションは作れたわけ?
0152デフォルトの名無しさん
2013/05/19(日) 01:52:57.84質問者は、キャラがブロックの角にぶつかるとキャラがそのブロックを滑るように登る、と言っている。
この問題の解決と、ブロックも段差もない平坦な2Dアクションが作れるかどうかと、どう関係するんだ?
ブロックも段差もない平坦な2Dアクションが作れることは、この問題の解決の必要条件なのか?
そもそも「ブロックも段差もない平坦な2Dアクション」とは何を指している?
地面の上をただジャンプするだけのものをプログラムできるかどうかと質問者に尋ねているのか?
0153デフォルトの名無しさん
2013/05/21(火) 12:48:00.74そういうのは経験積むしかないよね?
0154デフォルトの名無しさん
2013/05/21(火) 13:51:38.03それもだし、環境と制限による
0155デフォルトの名無しさん
2013/05/22(水) 10:04:23.87関係するし必要条件だと私は思うのですが
どう考えたら関係ないと思えるんでしょうか?
0156デフォルトの名無しさん
2013/05/22(水) 19:40:26.96質問者が抱えている問題は下記の2つ。
これらが意図したようにプログラムされていないために問題が現れている。
・当たったかどうかをどのように判定しているか
・当たっていた(めり込んでいた)場合、どのように解消するか
これらはなにもアクションゲームに特有の問題ではい。
シューティングでもRPGでもパズルでも、いろいろなゲームで根幹の問題だ。
初心者が「地面の上をただジャンプするだけのもの」を作る場合、
キャラが画面の縦軸座標のある値よりも下には行かないようにプログラムする。
このようなキャラと地面との当たり判定とその解消方法は、
ジャンプした時のキャラとブロックとのそれらとは根本的に異なる。
(経験と知識を積めば、一般化して、地面に対しても同じ処理で解決しようとするだろうが、
それはブロックとの当たりについて知識や経験を得た後だ)
方法が異なるので、「地面の上をただジャンプするだけのもの」を作ることで得た知識や経験は、
質問者が今現在抱えている問題を解決しない。
よって、「地面の上をただジャンプするだけのもの」が作れるかどうかを問うことに大した意味はない。
それと、そもそも質問者はジャンプなどをすることはプログラムできているはずだ。
ジャンプしてブロックに当たった時の処理で問題が起きているのだから。
ジャンプするからには、普通は地面が用意されていると思う。
「地面の上をただジャンプするだけのもの」は既にプログラムできていると思わないか?
0157デフォルトの名無しさん
2013/05/22(水) 22:04:43.020158デフォルトの名無しさん
2013/05/22(水) 22:14:28.04この長さが必要だったかどうかは、私にはわからん。
もっと短くても >>155 が私の考え方がどういうものか理解してくれたのなら(納得はしないだろうが)、
この長さは不必要だったかもしれん。
もしかしたら、>>155 が理解するにはこの長さが適切だったかもしれん。
私は >>155 の返答から、やや丁寧に書いた方が良いだろうと判断した。
本当にこの長さが必要だったかどうかは >>156 に聞いてくれ。
0159デフォルトの名無しさん
2013/05/22(水) 22:15:42.72自分に聞いてどうするよ・・・orz
本当にこの長さが必要だったかどうかは >>155 に聞いてくれ。
0160デフォルトの名無しさん
2013/05/22(水) 23:50:38.600161デフォルトの名無しさん
2013/05/23(木) 09:22:32.29>方法が異なるので、「地面の上をただジャンプするだけのもの」を作ることで得た知識や経験は、
>質問者が今現在抱えている問題を解決しない。
本当にそうでしょうか?
>「地面の上をただジャンプするだけのもの」は既にプログラムできていると思わないか?
思わないです。
0162デフォルトの名無しさん
2013/05/23(木) 12:49:52.69> 本当にそうでしょうか?
本当にそうです。
それでは解決しません。
解決すると言うのなら、それをはっきりと質問者 >>116 に言うべきです。
「地面の上をただジャンプするだけのもの」を作る時に**という処理を使うが、
それを〜〜のように改良すれば今回の問題は解決する、など。
> 思わないです。
矛盾しています。
あなたは >>151 で作れたかどうかを訊いている。
プログラムできていないと思っているのなら、>>151 の質問は無駄です。
質問者にわかりきった無駄な逆質問をするより、上記のようなアドバイスを
はっきりと示した方が質問者にとって良いこととは思いませんか。
0163デフォルトの名無しさん
2013/05/23(木) 13:03:54.21>本当にそうです。
>それでは解決しません。
必要条件と必要十分条件を取り違えていませんか?
それ「だけ」では解決しないのは私も分かっています。
>矛盾しています。
何が矛盾なのですか?
必要条件である「ブロックも段差もない平坦な2Dアクション作れる」
を満たしているかどうかを確認するのは絶対に無駄なのでしょうか?
0164デフォルトの名無しさん
2013/05/23(木) 15:54:19.190165デフォルトの名無しさん
2013/05/23(木) 16:24:39.560166デフォルトの名無しさん
2013/05/23(木) 17:41:50.93何ひとつとして有用な情報がないw
0167デフォルトの名無しさん
2013/05/23(木) 17:52:45.960168デフォルトの名無しさん
2013/05/23(木) 18:01:28.69「地面の上をただジャンプするだけのもの」を作れなくても、
たとえばシューティングゲームで当たり判定の処理をプログラムしたことがあれば十分。
シューティングゲームを作ったことなくても、他のものでもいい。
ゲームでなくても、GUIのツールを作る過程で本質的に同様の処理をする場合もある。
よって、>>116 を解決するのに「地面の上をただジャンプするだけのものが作れる」は
必ずしも必要ではない。
>を満たしているかどうかを確認するのは絶対に無駄なのでしょうか?
あなたは「地面の上をただジャンプするだけのもの」は既にプログラムできているとは思わないと
>>161 で言っている。
まだプログラムできていないと思っているのなら、確認の必要はない。
これは既にプログラムできているという前提で、
さっさと「地面の上をただジャンプするだけのもの」を作ることで
問題がどう解決するのかを提示すべき。
既にプログラムできているかどうかあなたの中で判断できないのなら、確認には意味がある。
0169デフォルトの名無しさん
2013/05/23(木) 19:36:44.730170デフォルトの名無しさん
2013/05/23(木) 20:19:37.65その周辺の他の人のアドバイスと合わせれば、解決の糸口が見えて来るのではないかと思っている。
しかし、>>151 が「地面の上をただジャンプするだけのもの」を作れることが
解決に繋がると考えているのなら、それをもっと詳細に説明してあげた方が良いと俺は思うぞ。
俺は、質問者は既に「地面の上をただジャンプするだけのもの」はプログラムできていると思っている。
それが解決に繋がるのなら、質問者はぜひ知りたいと思っているのではないかな。
>>169
そう思われるのは心外なので、>>151 に対するレスはもうしない。
0171デフォルトの名無しさん
2013/05/23(木) 20:27:48.94そもそもマリオでブロックの角に当たったら滑って登るって普通だったろ。
0172デフォルトの名無しさん
2013/05/23(木) 20:31:27.27バカには無理なんだから金でもつかわんとなんも出来んぞ
0173デフォルトの名無しさん
2013/05/23(木) 20:41:31.43質問者の>>116がただサイトからコピペしただけで
「ブロックも段差もない平坦な2Dアクション」の部分すら理解してない
という可能性を>>151は示唆してるというだけなんじゃないの?
0174デフォルトの名無しさん
2013/05/23(木) 20:51:27.93学校のテストで点をとるためだけに勉強してた奴はこの辺りで引っかかりはじめる
3D行くと三角関数使うようになるし
数学苦手な奴にはもう無理
0175デフォルトの名無しさん
2013/05/23(木) 21:01:07.39これがもし本当にできるのであれば
キャラが画面の縦軸座標のある値よりも上には行かないようにプログラムすれば天井ができ
キャラが画面の横軸座標のある値よりも右には行かないようにプログラムすれば壁ができ
キャラが画面のある座標には行かないようにプログラムすればブロックできるじゃんやったな
0176デフォルトの名無しさん
2013/05/23(木) 21:12:38.79一度は実際に検証してみてからレスした方がいいと思う
0177デフォルトの名無しさん
2013/05/23(木) 21:20:03.21いや、だからそういうところから質問者が自分で試してみろってことだよ
何で下は上手く行くのに上がダメなのか考えればいつか自ずと答えが出るだろ
それが理解するってことだろ、答えだけ知ろうとするなよ
って俺は思うんですけど厳しいですかねwwwww
0178デフォルトの名無しさん
2013/05/23(木) 21:42:20.52> 質問者が自分で試してみろ
いや、そういう考えなら、俺も同感だ。
別に笑うことでもない。
でも、そういう事を「最初に」はっきりと質問者に向かって言わないと、
遠回しな言い方では伝わらないよ。
ただ、それは回答者の方も一度は検証してからレスした方が良いというのと別問題だとは思う。
0179デフォルトの名無しさん
2013/05/23(木) 21:45:29.39いくら考えて上等な反論並べたところで
誰も認めやしねーよ。うざいガキと思われるだけ。
0180デフォルトの名無しさん
2013/05/23(木) 21:49:42.21お前は誰と戦ってるんだよ
0181デフォルトの名無しさん
2013/05/23(木) 22:08:29.73つまり貴方様は既に検証済みということですよね?
参考にそのプログラムを見せていただけませんか?
0182デフォルトの名無しさん
2013/05/24(金) 02:01:56.77いや、いいけどさ過疎だし
0183デフォルトの名無しさん
2013/05/24(金) 07:52:18.24入社して研修を受けてた頃からさんざんやってるから、いろんなことを検証してきた。
俺のアドバイス >>146 の「接する方向を考慮すること」もすぐにやらされるから検証済み。
君だってアクションゲームを作ったことがあるのなら、同じ事を一度はやってるはずだ。
それに例えば「アクションゲーム 当たり判定 ブロック」などでググれば、
俺(や、その周辺の人)のアドバイスの実例や、もっと詳細な解説はいくらでも見つかる。
あらためて俺が自分のプログラムを公開する必要性がない(面倒だし)。
俺のプログラムでなければ参考にならない、なんてことはないだろう。
それに、これくらいのキーワードは誰にでもすぐに思いつくはずだ。
君だって思いついただろう(この程度も思いつかないなんて言うなよ)。
なのに何故ググろうとしない?
>>175 のように、「これより右には行けない」、「これより下にはいけない」、
「これより右にはいけない」、「これより左にはいけない」と処理することで
ひとつのブロックを表現しようとすることも研修中にやっている。
そして、これではうまく処理できないこと経験している。
キャラの移動速度の関係でブロックにめり込んでしまった(しまう)場合、
そのキャラをどこに移動させればいいのか判断できないからだ。
ブロックの上側に強制的に移動させればいいのか?
それとも左側に強制的に移動させればいいのか?
結局、接する方向を考慮する必要がある。
「これより下にはいけない」これひとつだけなら問題ない、上側に移動させればいい。
>>175 は「できる」と言っているが、俺は研修中できなかった。
まぁ >>175 も「できた」とは言っていないが。
0184デフォルトの名無しさん
2013/05/24(金) 08:43:46.08実りないしよそでやれよ
0185デフォルトの名無しさん
2013/05/24(金) 09:52:26.39要約すると
「昔に検証したことだから今は手元にソースない」
ってことですね分かりました
0186デフォルトの名無しさん
2013/05/24(金) 10:30:23.29>入社して研修を受けて
入社を始点に物事語ってる時点でお前様の程度が知れる
お前様を採用して会社も(お前を育てるのに)さぞ苦労したろうな
0187デフォルトの名無しさん
2013/05/24(金) 12:36:28.35そう。
現時点で示せるコードは何一つ手元にないし、これから >>181 のために書くのも面倒だ。
学びたいのなら、ネット上にもっと良いコード片や資料はいくらである。
そちらを参考にしてくれ。
>>186
研修云々を話してしまったのは俺のミスだ。
このスレにはどうでもいい関係ないことだった、申し訳ない。
忘れてくれ。
0188デフォルトの名無しさん
2013/05/24(金) 13:55:25.18何言ってんの
0189デフォルトの名無しさん
2013/05/24(金) 15:06:31.340190デフォルトの名無しさん
2013/05/24(金) 17:01:29.710191デフォルトの名無しさん
2013/05/24(金) 18:54:53.83全然関係ないけど、人を育てるのはどの会社、どの分野でもそうとう大変だよ
今ちょうど俺が新入社員相手に四苦八苦してるところ
ゲーム全く関係なくて、エクステリア関係の小さな問屋だけど
0192デフォルトの名無しさん
2013/05/24(金) 19:08:56.150193デフォルトの名無しさん
2013/05/24(金) 19:12:11.60ごめんなさい、がんばる
0194デフォルトの名無しさん
2013/05/24(金) 19:19:53.460195デフォルトの名無しさん
2013/05/24(金) 19:26:48.18つか学生上がったばかりで即戦力の実力あるなら起業するし
0196デフォルトの名無しさん
2013/05/24(金) 19:33:50.900197デフォルトの名無しさん
2013/05/24(金) 20:45:42.66正直うらやましい
0198デフォルトの名無しさん
2013/05/24(金) 21:54:36.72見栄張ってごめんなさい
0199デフォルトの名無しさん
2013/05/31(金) 06:07:49.35ゲームって、オブジェクトAがオブジェクトBを参照する必要が出てくる事がよくありますよね。
これを単純に、親への参照を持つ事によって解決しようとすると循環参照となり、
インターフェイスが多くなりがちだし、良い設計とは言えません。
何かうまい方法はないのでしょうか?
class Manager{
public:
vector<Object> getObjects() { return objects_; }
private:
vector<Object> objects_;
}
class Object{
void hoge(){
vector<Objects> objects = pManager_->getObjects();
...
}
private:
Manager* pManager_;
}
0200デフォルトの名無しさん
2013/05/31(金) 06:47:43.640201デフォルトの名無しさん
2013/05/31(金) 08:31:43.200202デフォルトの名無しさん
2013/05/31(金) 08:42:10.410203デフォルトの名無しさん
2013/05/31(金) 08:46:47.83FacadeというよりMediatorになる気がしますね。
Mediatorは、メソッドをたくさん持った何でも屋みたいになるのが嫌なんですけど、この場合はこれがベストなんですかね。
>>200もMediatorみたいな事になるのかな。
0204202
2013/05/31(金) 09:23:11.41たしかにMediatorは肥大するな
>>200はMediatorっていうよりプロトコルオブジェクトな気がする
なぜ参照するのかを考えて、そこに必要なデータを別のクラスに持たせて引数で扱うとかか
なんにせよ間に緩衝材となるクラスが無いと不便ね
0205デフォルトの名無しさん
2013/06/08(土) 17:04:37.73例えば同じモンスターが複数出てくる場合、テクスチャも同じなわけだからモンスターの数だけテクスチャをロードするのはリソースの無駄だ。
サウンドに関しても同様。
しかし、俺は今回そういったモンスターなど動きのあるものも必要なパラメーター以外を使い回すという仕組みを思いつき、実装した。
どういうことかというと、例えば2Dゲームで同じ姿形のモンスターがそれぞれ任意のタイミングでAという動作をする場合、
モンスターごとにAの動きの定義を持たず、Aという単一の定義に対してフレームなどの状態を渡して描画するという仕組みだ。
0206デフォルトの名無しさん
2013/06/08(土) 17:21:20.190207デフォルトの名無しさん
2013/06/08(土) 17:21:43.37例えばモンスターに必要な情報は以下の通りだとする。
テクスチャ、サウンド、フレームや状態ごとの描画やサウンド再生定義、基本値(最大HPなど)、個々の値(現在HP、フレーム、状態)
室町時代には仕組み自体が確立されていなかったから、モンスターごとにこの全情報を持っていた。
しかし明治に入ると西洋の画期的な仕組みが取り入れられ、テクスチャやサウンドは同一のものなら使い回すようになった。
しかし今回俺は、フレームや状態ごとの描画やサウンド再生定義をも使い回すような仕組みを編み出したわけだ。
今はさらにその先の基本値まで使い回す仕組みを編み出そうとしている。
もしこれが完成すれば変化する値以外を完全に抽象化できるから大きなリソースの節約になる。
0208デフォルトの名無しさん
2013/06/08(土) 17:27:29.340209デフォルトの名無しさん
2013/06/08(土) 17:37:22.570210デフォルトの名無しさん
2013/06/08(土) 17:40:57.33Translateかな
0211デフォルトの名無しさん
2013/06/08(土) 17:54:50.80へんに口語を使わず、真面目に論文に起こしてくれ
そうすれば馬鹿な俺でも何を言ってるのか、何が画期的なのか理解できると思う
0212デフォルトの名無しさん
2013/06/08(土) 18:23:47.510213デフォルトの名無しさん
2013/06/08(土) 18:46:49.00キャラクタデータクラスの中に出てくるキャラごとの基本パラメーターとして
レベルごとのステータス
状態(立ち、必殺攻撃、よろけ)ごとのモーションのパラメーターのセット
(何秒硬直するか、どの攻撃判定を出すか、使うテクスチャ、当たり判定のサイズ、移動スピードなど)
攻撃判定のパラメーターのセット
(ダメージ基本値、ステータス補正の大きさ、当たり判定のサイズ、移動スピード、ガード可能か、消滅までの時間、消費MPなど)
などを格納
キャラクタクラスには
使うキャラクタデータクラスの番号
今のHP、MP
今の座標
今の状態
今の状態になってからの経過時間
などを格納
キャラクタデータクラスはマップ変更で出てくるキャラクタが変わらない限り変更ないから固定値
キャラクタクラスはキャラクタごとに座標とかの変更されるパラメーターを入れる
こんなの基本とまでは言わないけど
Androidみたいハード性能が低いもので作ってたら
自然にたどり着くレベル
0214デフォルトの名無しさん
2013/06/08(土) 18:48:48.52これだから素人は困る
最低限基本情報はクリアしてから言語始めろよ
0215デフォルトの名無しさん
2013/06/09(日) 01:29:30.980216デフォルトの名無しさん
2013/06/09(日) 03:44:27.650217デフォルトの名無しさん
2013/06/09(日) 07:20:49.840218デフォルトの名無しさん
2013/06/09(日) 09:57:52.98オブジェクト指向言語なのに
0219デフォルトの名無しさん
2013/06/09(日) 10:00:06.510220デフォルトの名無しさん
2013/06/09(日) 10:35:46.49オブジェクト指向設計を念頭においた仕様を備えた言語を使っているのに
と言い換えれば伝わりますか
0221デフォルトの名無しさん
2013/06/09(日) 10:45:56.43javaで手続き指向を書けるしCでオブジェクト指向を書ける
言語のサポートは書くのが楽かどうかというだけで
オブジェクト指向的な考え方が出来るかとか使うかは別の問題だ
概念と実装手段の切り分けが出来てないよ
0222デフォルトの名無しさん
2013/06/09(日) 11:09:36.40「せっかくの」 オブジェクト指向言語なのに
と言えば良かったと思うよ
0223デフォルトの名無しさん
2013/06/09(日) 15:42:42.280224デフォルトの名無しさん
2013/06/10(月) 03:00:14.98ってSmalltalk使いがゆってた
0225デフォルトの名無しさん
2013/06/10(月) 09:12:20.55そら本物やな
0226デフォルトの名無しさん
2013/06/15(土) 00:21:06.90動的型宣言もいまいち冴えてませんねえ
0227デフォルトの名無しさん
2013/06/15(土) 01:28:19.62C++=キリスト教
java=イスラム教
0228デフォルトの名無しさん
2013/06/15(土) 09:30:35.700229デフォルトの名無しさん
2013/06/15(土) 09:45:09.760230デフォルトの名無しさん
2013/06/15(土) 10:55:05.03なにこれ?
0231デフォルトの名無しさん
2013/06/15(土) 11:06:49.180232デフォルトの名無しさん
2013/06/16(日) 01:38:09.48おいObjective-C忘れんな
0233デフォルトの名無しさん
2013/06/16(日) 04:21:25.25あのとき、Begin〜end間で描画のために別の関数を呼び出した場合、
pSprite->Draw()に渡すアドレスの変数がローカルだと上手く描画されないと書きましたが、
今回はその状態でないにも関わらず描画されないという不可解な現象が発生しました。
今回は簡単な描画テストのため、Begin〜End間に自作関数を含んでいませんでした。
timebuf = timeGetTime();
Draw();
BOOL Draw()
{
D3DXVECTOR3 pos, center;
RECT rc;
クリア〜Begin〜End〜Present
return TRUE;
}
これだとクリア時の塗りつぶしは指定した色が反映されるのですが、テクスチャが全く描画されないのです。
ちなみにtimebuf = timeGetTime();をコメントアウトすると描画されるのです。
何度も確認しましたがこの一行でテクスチャが描画されたりされなかったりするのです。
結果的に、Draw()関数内の全ての変数にstaticを付けることで解決しましたが、どうにも不可解です。
ただそれでも何とか希望通りの動作をするようになったのは皆さんの惜しみ無いお力添えのお蔭です。
ありがとうございました。
0234デフォルトの名無しさん
2013/06/20(木) 00:25:46.50例えばキーリピート間隔2フレームの場合、
カーソルの右キーと左キーが1(mod 2)フレーム差で押されたとき
1フレーム毎に左右のキーが押されたものと等価になるので
カーソルキーに連動して動かすキャラが振動してしまいます
通常キーリピートを実装する際はどんなやりかたでこの問題を解決しているのでしょうか
ちょっと重いですが排他関係にあるキーが同時推しされている場合、キーリピートでキーのアップダウンイベントを
発行するのを抑制するくらいしか思いつきませんでした
0235デフォルトの名無しさん
2013/06/20(木) 06:56:02.691.解決せず仕様としてしまう
→←___→←→←→……
2.最後に押されたキーのみキーリピートの対象にする
→←___←←←……
3.キーの状態が一箇所でも変化したらキーリピート状態をすべてのキーに対してクリアする
→(←+→)___(←+→)(←+→)(←+→)……
のうち好きなのを採用すればいいんじゃないかと思ったが
もしかしたらそれじゃまずいのかもしれんな
0236デフォルトの名無しさん
2013/06/20(木) 07:29:26.14普通WindowsやLinuxなどでは >>235 の2番の仕様だよ。
他の OS や環境は知らんが。
あるキーXが押され、リピート開始までの時間に他のキーが押されたら、
そのXのリピート開始をキャンセルする。
リピート開始できるキーは一度にひとつだけ。
もし俺が作るなら、タスクシステムにして、あるキーXが押されたら、
リピートタスクをそのキーXのキーコードで初期化して再生する。
そのキーXが離されたり、他のキーが押されたら、再生中のリピートタスクを破棄する。
0237デフォルトの名無しさん
2013/06/20(木) 10:47:00.171フレームで2入力受け入れてるくせに
なんで結果の処理は2つ同時にやらねーんだよ?
プラマイ0でキャラ移動処理やらないのがスジだろ
0238デフォルトの名無しさん
2013/06/20(木) 10:47:08.92一度にひとつだけならタスクにする必要無い気がするけど
俺ならキャラを動かすところでキーダウンで調べて排他にして
その上でキーリピートで動かすみたいな処理にするな。楽だから。
0239デフォルトの名無しさん
2013/06/20(木) 10:51:21.30キャラ移動処理する前に
今回の入力の累積取って
それから移動処理させれば済む話
たまたま正反対のキー操作の例だけど
他に弾発射だの独立したキーリピートが複数あっても
粛々とやればよいだけ
排他とかいじってると、独立系キーとかの区分けがシッチャカメッチャカになるぞ
0240デフォルトの名無しさん
2013/06/20(木) 11:12:05.91俺が画面内のキャラを操作する場合、
アップイベントがあればフラグ立てて、ダウンイベントがあればフラグを下ろす。
フラグが立っている間は決められたインターバルごとにその行為を実行する。
0241デフォルトの名無しさん
2013/06/20(木) 12:41:18.05> 一度にひとつだけならタスクにする必要無い気がするけど
すまん、言葉が足りなかった。
他の処理もタスクでやってるのなら、リピートの処理も、という意味。
俺の場合は、アニメーションやサウンドなどほとんどのものをタスクで処理してる。
質問者もすでにタスクシステムを構築しているのなら、リピートもそれに組み込んだ方が楽だ。
0242234
2013/06/21(金) 00:34:32.08そいつにキャラクラスに飛んでくるキーアップとダウンのイベントリスナーを登録させることで
決められたリピート間隔でアップダウンイベントをキャラに投げさせることで
擬似的にキーボードが連打されている状況を作り出すことで実現しています。
>>235-236
2番だと移動しながらの弾丸フルバーストができぬのです
>>238, ...All
自キャラを出来るだけ単純化したいため
ゲーム自体に関係のない作りこみ部分のフラグ・変数等は極力減らしたいのです
そのため処理キーリピート処理はカプセル化したいというのが動機でして
ライブラリ部分で苦労しておいて実際のゲーム作りは楽したい
>>237
タイミングによってフレーム毎に
[↑D][↑U↓D][↑U↓D]… // U=Up, D=Down
というイベントが飛んでくることになるので、
1フレームに注目した場合↑↓一方のキーが押されているということになるので
エスパーしないと無理ということに
こういう処理をどうしてるのかわかるような
小さなソースコードないでしょうか・・
0243デフォルトの名無しさん
2013/06/21(金) 01:06:17.550244デフォルトの名無しさん
2013/06/21(金) 01:34:05.73十字キーで1つ
ABCDボタンで1つ
のみ連射が有効じゃダメなの?
ボタンのグループを作ってそのなかで一つのみ有効とか
0245デフォルトの名無しさん
2013/06/21(金) 02:26:59.08というかキャラの移動がリピート処理って珍しいと思う。弾丸ってことはシューティングなのかな?
0246デフォルトの名無しさん
2013/06/22(土) 23:19:35.70あり得ないんだけど。押しっぱなしでリピートトリガーにするなら
少なくとも10〜20フレームぐらいは取らないとだめでしょ。
20フレームウェイトしたって0.3秒だから現実的だと思うけど。
0247デフォルトの名無しさん
2013/06/23(日) 10:09:39.71質問者は「例えば」と言っているのだが。
開始時刻をずらして並進する2つのキーリピートによる問題を
わかりやすく説明しただけだと思う。
0248デフォルトの名無しさん
2013/06/23(日) 16:22:03.600249248
2013/06/23(日) 16:22:40.010250デフォルトの名無しさん
2013/06/24(月) 01:16:38.190251デフォルトの名無しさん
2013/06/24(月) 01:51:23.420252デフォルトの名無しさん
2013/06/27(木) 00:47:44.18それに関連して、リソースをどの段階で読み込めばいいか分からなくなってきた。
具体的には2DRPGでメニュー出したときにマップが透けて見えてるような状態。
マップを描画しなきゃならないからメニューもマップで管理するの?
メニューで使うアイコンとかのリソースってメニューを表示するたびに読み込むの?
それともゲーム開始時に全部読み込むんですか?
0253デフォルトの名無しさん
2013/06/27(木) 00:53:11.27違う気がしてきたけど他に良い案も思い浮かばない。
0254デフォルトの名無しさん
2013/06/27(木) 01:29:44.92シーンを複数表示できるようにして(呼び出した順で描画)
マップシーンでメニューシーンを呼び出すといい感じになると思う
スタックで積む感じ。ほいでメニューの終了時にポップする感じ。
リソースは読み込みに時間がかからなくて、メモリに余裕があるなら
ゲーム開始時でいいんじゃないかな
0255デフォルトの名無しさん
2013/06/27(木) 09:29:43.03ファミコン時代はともかくPS時代以降の重ねあわせ処理は
基本ハードウェアに丸投げするものじゃないのだろうかと想像
マップはマップ用のレイヤーだけ、メニューはメニュー用のレイヤーだけいじる
ハードウェアにはリソースそのものや
消去・移動回転・エフェクト・リソース交代などの指示をぶん投げると
なんとなく一番手前から5枚くらいのレイヤーは、致命的なメッセージ用、
一般的なエラーメッセージ用、デバッグ時エラーが起きそうな警告メッセージ用、
デバッグ時メッセージ用、デバッグ時変数リソース等監視用としてとっておきたい感じ
0256デフォルトの名無しさん
2013/06/27(木) 12:39:30.01> ハードウェアにはリソースそのものや
> 消去・移動回転・エフェクト・リソース交代などの指示をぶん投げると
そのようなハードウェアの機能はありません。
0257デフォルトの名無しさん
2013/06/27(木) 13:02:33.130258デフォルトの名無しさん
2013/06/29(土) 14:18:24.77ID:NdLj9NH6!んでもって、どちらか一方を離したら残っている矢印の方向へ移動する。
現在:ゲームボーイのドラゴンクエストみたいな動き。
欲しい動き:斜め動きが出来るニンジャ。
void keyPressed(KeyEvent e) {migi = true;....}を同じクラスにある
void keySet(){if(migi){player.move(MIGI)}elseif(..)....}に送ってる。
今のプレイヤーの動きはこんな風にしています。
public void move(int dir) {
if (dir == HIDARI) { vx = -SPEED;
} else if (dir == MIGI) { vx = SPEED;
}
}
public void stop() {
vx = 0;
}
public void update() {
x += vx;
y += vy;
}
0259デフォルトの名無しさん
2013/06/29(土) 15:04:52.49問題の本質は、キーボードの複数のキーの同時押しを検出すること、と解釈して良いでしょうか。
質問文には書かれていないので私の勝手な推測ですが、Windows 上で C# を使っているものとします。
この問題の解決ですが、私の知る限りでは2つの方法があります。
そもそも、少なくとも Windows の API には、
キーボードの複数のキーの同時押しを検出する仕組みそのものはありません。
なので解決するには、そのような仕組みを持った Windows の API 以外の方法を使うか、
Windows の API やその仕組みを組み合わせて擬似的に検出を実現するしかないです。
前者は、たとえば DirectX を使う方法があります。
(他の方法もあるかもしれませんが、私は知りません)
「C# DirectX キーボード 同時押し」 などでググってみてください。
後者の方法は「C# ゲーム キーボード 同時押し」などでググってみてください。
ただし、後者の方法は非常に面倒で、仕組みもスマートとは言いがたい感があります。
個人的には、前者の方法を奨めます。
0260デフォルトの名無しさん
2013/06/29(土) 15:36:36.29ID:NdLj9NH6!ありがとうございます。
言語はjavaなのですが DirectXに付いて調べたいと思います。
0261デフォルトの名無しさん
2013/06/29(土) 16:45:12.66if ( 右 + 上 ){右上へ斜めに移動する処理}
else if ( 右 + 下 ){右下へ斜めに移動する処理}
else if ( 左 + 下 ){左下へ斜めに移動する処理}
else if ( 左 + 上 ){左上へ斜めに移動する処理}
else if ( 右 ){右へ移動する処理}
else if ( 上 ){上へ移動する処理}
else if ( 左 ){左へ移動する処理}
else if ( 下 ){下へ移動する処理}
0262デフォルトの名無しさん
2013/06/29(土) 17:03:49.80判定ロジックを工夫すべし。
0263デフォルトの名無しさん
2013/06/29(土) 17:24:53.440264デフォルトの名無しさん
2013/06/29(土) 17:34:31.52「駒を置けるか判定→駒を置く→置いた影響を反映するサブルーチンを呼ぶ」
の3ステップでひとつの駒設置メソッドとしてるんだが
これをひとつひとつのメソッドに分けてゲームを利用するクラス(ようはビュー)が適切にこの順番で呼ぶようにしたほうが良いのかな?
0265デフォルトの名無しさん
2013/06/29(土) 17:42:26.70else ifでやるならせめて左中右で1pass、上中下で1passの2passにしたいなあ
0266デフォルトの名無しさん
2013/06/29(土) 18:07:38.25それは、何がしたいか、によります。
その3つの処理を不可分のものとしたいのなら、分けずに現状のままにすべきです。
たとえば、このままでも処理が十分シンプルで、コードを見て全体の処理が容易に把握できる、など。
逆に、コードが長く複雑で、ぱっと見で処理が把握できない状況であり、
もっと分かりやすくしたいのなら分けるべきです。
他にも、ゲームの仕組みを実現しやすくするために分けた方が良いケームもあります。
たとえば、コマを置く時にプレーヤーはカーソルを動かすと思いますが、
その際に駒が置けるところにカーソルがあればカーソルが光り、
置けないところではグレー色に表示されるようにしたい場合、
「駒を置けるか判定」の処理は分けた方が良いです。
分けなければ、同じ処理のコードを複数の場所に書くはめになるからです。
置いた影響を反映するサブルーチンも同様です。
この処理の部分が洗練されていれば、たとえばAIの思考ルーチンからも呼び出せます。
何がしたいのかを明確に示していただければ、どう分けるべきか、分けるべきでないか、
もう少し具体的なアドバイスができるかもしれません。
0267258
2013/06/29(土) 19:34:18.40ID:NdLj9NH6!ずっと→を押していて、その→を押したまま↑を押しても斜め上へは動いてくれない。
最初から↑と→を同時に押さなければ斜め右上へは行ってはくれぬ。
if (keystate == (UP + RIGHT)){ player.move(TOPRIGHT);}
public int keystate;
public void keyPressed(KeyEvent e){
int key = e.getKeyCode();
if (key == KeyEvent.VK_A){
keystate |= RIGHT; // →の保持のため?
leftPressed = true;
}
0268デフォルトの名無しさん
2013/06/29(土) 19:51:08.08押されたキー情報を取得する方法でやってると、キーバッファに
残っているリピートキーも拾ってくるからそうなる。
× 押されたキーの情報を取得する
○ キーマトリックス情報を取得する
こうすればOK。キーマトリックスを読むのは何か方法があったと
思ったけどちょっと思い出せない。
0269258
2013/06/29(土) 20:38:39.37ID:NdLj9NH6!なるほど。思った以上に難しいな。
アドバイスありがとうございます。
しかし、キーマトリックスに付いての情報少ないな〜。工学系統なら沢山あるのに。
0270デフォルトの名無しさん
2013/06/29(土) 20:41:25.13これもちょっと方法がわからないんで。
0271デフォルトの名無しさん
2013/06/30(日) 09:40:11.75ビューとロジックをしっかり分けたい
ビューはロジックをよく知らなくても良い
ロジックはビューのことはなるべく知らなくて良い
というのが良く分割されたビューとロジックだと思うんだ
三つのメソッドに分解するのはいいとして
それを外のクラスからバラバラに呼び出せるのは間違いではないか、と思うんだ
置けるかどうかメソッドはイミュータブルだし、有ればビューにとってもAIにも便利だから公開してもいいと思う
でも駒を設置メソッドと影響を反映メソッドはバラバラにして公開すべきではないと思う
なぜなら分割して公開した場合、ビューはロジックを詳しく知っていて適切な順番でメソッドを呼び出さなければならなくなる
ロジックはビューが正しい順番でメソッドを呼び出してくれるかに依存するようになる(正しくない手順に対処しなければならなくなる)
結果として両者の依存度が高くなる
だからロジック担当クラスとしては
三つのメソッドをひとまとめにしてひとつのコマンドとして公開するべきじゃないかと思う
このコマンドがいつビューやAIに呼び出されるかはわからないが
呼び出された時に有効なら処理をして、連鎖的に発生する処理をして、その際に変更が有ればnotifyする
呼び出された時に無効なら何もしないし変更がないからnotifyもしない
ダメかな?三つに分けて呼び出す側が責任を持って適切に呼び出すべきだと人から言われて悩んでるんだ
0272デフォルトの名無しさん
2013/06/30(日) 09:49:55.200273258
2013/06/30(日) 09:56:45.69ID:oHBz3JbV!一応、ウェブ上にもあったのでuri貼りましょうか?
もし興味がある人がいれば。
0274266
2013/06/30(日) 11:12:50.70あなたの目的の本質はこれですね。
> ビューはロジックをよく知らなくても良い
> ロジックはビューのことはなるべく知らなくて良い
このような仕組みを作ることである、と。
そして、現在の状況を要約すると、こういうことですね。
・この3つの処理は必ずこの順で処理しなければならない
・駒を置けるか判定する処理は、これ単体で処理することに「も」価値がある
であれば、ロジックは2つのコマンドを公開すべきでしょう。
(ロジックの内部で3つの処理を分けるかどうかは、また別の話)
1. この3つの処理をひとかたまりとして順に処理するコマンド
2. 駒を置けるかどうか可否を知るコマンド
ただし、このような方針にすることにもデメリットはあります。
ロジックに対して何かまた新しいことがやりたくなった場合、
ロジックはまたそれ専用の新しいコマンドを作って公開しなければなりません。
逆にロジックが上記のようないくつかの処理をかためず、プリミティブなコマンドを公開していたら、
汎用性が高まり、ロジックを利用する側は既に公開されているコマンドを組み合わせるだけで済みます。
こちらのデメリットはあなたが考えるとおりです。
要は設計スタイルの違いで、好みの問題です。
> 三つに分けて呼び出す側が責任を持って適切に呼び出すべきだと人から言われて
そう言った人の理由は何なのでしょうか。
私はあなたの状況がわからないので、その人の言い分の方があなたに合っているのかもしれませんよ。
0275266
2013/06/30(日) 11:17:21.26> 私はあなたの状況がわからないので、
私はあなたの状況を詳しく把握しているわけではないので。
その人があなたの設計やコードを見ているのなら、私(たち)よりも詳しく把握していて、
その上でのアドバイスでしょうし。
0276デフォルトの名無しさん
2013/06/30(日) 11:28:38.29その人から聞いた理由は
「駒を設置メソッド」はあくまで駒を設置するためのメソッドだから設置可能か調べたり影響を反映させるのはおかしいので別のメソッドに分けるべき
後から見た人がこのメソッドを見て設置以外の処理をしているとは普通考えないので不親切
という事らしいです
0277266
2013/06/30(日) 11:48:29.57そういうことなら、話がごっちゃになってますね。
その人はあくまで、ひとつのメソッドの役割はひとつに絞るべき、と言っているのです。
それを他のクラスに公開するかどうかは、話が全然違います。
ひとつのメソッドの役割はひとつに絞るべきというその人の意見は私も賛成です。
そして、バラバラにして(外部に)公開すべきではないというあなたの意見にも賛成です。
これは排他的なことではないので。
私なら、3つの処理をそれぞれメソッドに分けてクラスのプライベートメソッドにします。
そして、>>274 で言ったように2つのコマンドを公開します。
0278デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.AN0279デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANスレチ
0280デフォルトの名無しさん
2013/07/01(月) NY:AN:NY.ANゲーム開発のためのツール作ってると相互参照なんてほとんどないのに
本体作ってると相互参照ありまくり。
0281デフォルトの名無しさん
2013/07/02(火) NY:AN:NY.AN一画面に情報をつめ込みたいとか
プレイヤーのボタン操作を一回でも減らしたいとか
そういうワガママの行き着く先ってことかな
0282デフォルトの名無しさん
2013/07/07(日) NY:AN:NY.ANどちらかと言うとバッチ処理の類だと思うね
ツールこそ相互参照が超絶多いでしょ
例えば3Dモデラー自作とか考えてみなよ?
座標、重複頂点か、法線、頂点カラー、ポリゴン形成、マテリアル
軽く列挙しただけで、これらの単独情報が相互参照しまくりでしょ
0283258
2013/07/07(日) NY:AN:NY.ANID:1ENr07X8!例えば、右キーを押したときに車から乗客が右へ飛んでいくようにしたい。
右キーが押されたらrightpressedをオンにして
if(rightpressed){car.throw(RIGHT);}
に引数を渡して乗客の移動をしているのですが、
これだと右に乗客を飛ばして車が左に移動すると、右へ飛ばされた客が車の移動と合わせて左に戻ってきてしまう。
複数の客を将来扱うと仮定して、どうすればいいでしょうか?
0284デフォルトの名無しさん
2013/07/07(日) NY:AN:NY.AN客が車から放たれた瞬間に、客を独立したオブジェクトとして生成し、扱う
0285デフォルトの名無しさん
2013/07/07(日) NY:AN:NY.ANそもそも>>280の言う相互参照ってのが何を指すのかが判らんとなんとも
0286デフォルトの名無しさん
2013/07/07(日) NY:AN:NY.AN0287デフォルトの名無しさん
2013/07/07(日) NY:AN:NY.AN0288デフォルトの名無しさん
2013/07/07(日) NY:AN:NY.ANID:1ENr07X8!方法探してみます。
ありがとうございます。
0289デフォルトの名無しさん
2013/07/07(日) NY:AN:NY.AN0290デフォルトの名無しさん
2013/07/07(日) NY:AN:NY.AN0291デフォルトの名無しさん
2013/07/07(日) NY:AN:NY.AN0292デフォルトの名無しさん
2013/07/07(日) NY:AN:NY.AN俺も眼鏡かけないと見えないが
0293デフォルトの名無しさん
2013/07/16(火) NY:AN:NY.AN壁に当たったら壁の接戦方向にずりずり動かしたいのですが
どのようなアルゴリズムで実装したらいいのでしょうか
Collide()関数とDistance()関数はあります。
法線は今のところ取れません(が何とかなるかもしれない)。
0294デフォルトの名無しさん
2013/07/17(水) NY:AN:NY.ANゲームプログラマになる前に覚えておきたい技術
って本に詳しく載ってたはず
角がややこしいって話らしい
0295デフォルトの名無しさん
2013/07/19(金) NY:AN:NY.ANちょっと失礼。
その本のサンプルがエラーで使えないのですが、何がいけないと思いますか?
空のウィンドウでinclude、lib86の設定はしてます。
・環境
Windows7
Visual Studio2012
DirectX11
0296デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.ANエラーの内容を書かないとか馬鹿にしてるの?
0297デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.ANこういう奴は一生ゲームを作れない
君見込みないよ
0298デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.AN>>297
ちゃんと答えてやれよ!何がいけないと思うか明記してんだろーが!!!
>>296
君の頭が悪いのがいけないと思うよ
0299デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.AN0300デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.AN0301デフォルトの名無しさん
2013/07/20(土) NY:AN:NY.ANこんな所で聞いてないで出版社に聞けよ
0302デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.AN自分は青点で敵は赤点みたいなやつです
1回目と2回目で描画の方法を変える方法がわかりません
0303デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.AN0304デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.AN1回目のSprite.OnDraw()はキャラを表示して、
2回目のSprite.OnDraw()はレーダーに赤点を表示したいのですが
どうやって1回目と2回目の処理を変更したらいいのかわかりません
0305デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.ANグリーバカにしてすいませんでした
0306デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.ANよくわからないけど、
例えばキャラクターを管理するクラスを
class CHARA{
/*中略*/
int MainDraw();//キャラクターグラフィック描画用
int RaderDraw();//レーダー上の描画用
/*中略*/
}
にして、描画するときにそれぞれ呼び出したらいいんじゃないの
0307デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.AN全く別のキャラ2体を描画するときはどうしてる?
0308デフォルトの名無しさん
2013/07/22(月) NY:AN:NY.AN描画はOnDraw()と決まっているので変更は無理です。
キャラが
Sprite1.OnDraw() <-- キャラ表示用
Sprite2.OnDraw() <-- レーダー表示用
の2つを持っていて1回目はキャラ用のスプライト、2回目はレーダー用のスプライトを描画すれば・・・?
しかし1回目と2回目でどちらのスプライトを描画すべきか切り替えスイッチはどうすれば???
わからん
0309デフォルトの名無しさん
2013/07/23(火) NY:AN:NY.ANif( flag ) Sprite1.OnDraw();
else Sprite2.OnDraw();
flag =!flag;
どうしても無理なら毎回フラグで切り替えるしか無いんじゃね
0310デフォルトの名無しさん
2013/07/23(火) NY:AN:NY.AN1回目は普通にゲーム画面を書いて
2回目は小さく右上にレーダー画面をレーダー用スプライトで
まだ作ってないけどこれがベストなはず
0311デフォルトの名無しさん
2013/07/23(火) NY:AN:NY.ANそれでも質問者とまともに会話しているお前らが正直すごすぎると思った。
しかも、ちゃんと解決されているのには脱帽だ。
0312デフォルトの名無しさん
2013/07/24(水) NY:AN:NY.AN0313デフォルトの名無しさん
2013/07/24(水) NY:AN:NY.ANだとしてももっとスマートな解決法ありそうだけど
抽象化の層をひとつ増やすとか
0314デフォルトの名無しさん
2013/07/24(水) NY:AN:NY.AN名前を縛られてるだけなら、OnDraw(void)とOnDraw(int)の2種類用意するのはどうだろうか
0315デフォルトの名無しさん
2013/07/24(水) NY:AN:NY.ANhttp://www.fastpic.jp/images.php?file=5771022390.png
第1にカメラは2つ用意して切り替えないと無理
あとOnDraw()の中でpass == 0,1で切り替えるは激しくダサイ
(この程度のプログラムなら問題ないがゲームレベルになったときに発狂すると思う)
ゲーム作るときに複数回レンダリングパスをまわすのは普通だと思うのですが、
これの抽象化方法がよくわかりません。
あるいはOnDraw1(), OnDraw2(), OnDraw3()....とエントリーポイントを複数用意すべなのか?
わけわからんです
0316デフォルトの名無しさん
2013/07/24(水) NY:AN:NY.ANclass CHARA{
public:
get_locate();
/*コンストラクタでCHARA_MAIN_WINDOWの変数とCHARA_RADER_WINDOWの変数を作成*/
/*デストラクタも同様*/
/*略*/
}
class CHARA_MAIN_WINDOW : public CHARA{
CHARA chara;
int OnDraw(chara.get_locate());//キャラクターグラフィック描画用
/*略*/
}
class CHARA_RADER_WINDOW : public CHARA{
CHARA chara;
int OnDraw(chara.get_locate());//レーダー上の描画用
/*略*/
}
と書き捨てて、きちんと勉強している人々にタコ殴りされる前に逃げる。とうっ
0317デフォルトの名無しさん
2013/08/01(木) NY:AN:NY.AN自前でやれれば問題ないんだと。って言っちゃうと身も蓋もないかw
0318デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0319デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0320デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN頼るなと言ってるだけだと思うぞ。
0321デフォルトの名無しさん
2013/08/02(金) NY:AN:NY.AN0322デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN縦横の画面の大きさはどれくらいが良い?
出来るだけ大きくて、様々なサイズのディスプレイにも表示できるサイズがいい
0323デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0324デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0325デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0326デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN画面サイズを取得して決める
0327デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN解像度のことを言ってるのか、ウィンドウサイズのことを言ってるのか
解像度ならWin32APIで取得できる
DirectXを使うなら対応してる解像度を取得する関数がある
ウィンドウの大きさなら好きに作って最大化しろ
0328デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0329デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.ANム板はフルネームの「プログラム技術@2ch掲示板」の通り
技術的な話が専門だからなあ
0330デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0331デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0332デフォルトの名無しさん
2013/08/06(火) NY:AN:NY.AN0333デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN0334デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN32 というより 480 に由来しないのが変なんだよ
PC9801ではモニタを壊すリスクと引き替えの
禁断技で 30行計画つーのがあってだな・・・
0335デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANPC-98GSとかあったけどさ。
0336デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANそれで 8x8 の文字を 40x25 または 40x20 で表示してた
0337デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN0338デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN0339デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.ANRPGとか作るときに32x32のマップチップがぴったり敷き詰められないんだよあれ
0340デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN0341デフォルトの名無しさん
2013/08/07(水) NY:AN:NY.AN作りたいように作ってあとは画面に合わせて拡大縮小だろ
0342デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.ANそういう単位に合わせるのはそれなりに意味があったと思うが
今はその単位からズラしても良くね?って思う
0343デフォルトの名無しさん
2013/08/08(木) NY:AN:NY.AN0344デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0345デフォルトの名無しさん
2013/08/09(金) NY:AN:NY.AN0346デフォルトの名無しさん
2013/08/14(水) NY:AN:NY.ANフレームレート制御で描画ウェイト入れるときSleep(0);って有効なんでしょうか?
それとも別にもっと良い方法が?
0347デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.AN0348デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.ANあるいはそのほかの方法があれば、それと比べてSleep(0);のデメリットは何かあるのでしょうか。
ウェイトを入れるということは、そのスレッドの処理を休止して他に溜まってる処理をCPUにさせるんですよね。
Sleep(1);としたときには、1ms以上経過後に処理が再開する(1msに満たなければ何度でもそのスレッドの処理をスキップする)みたいですが、
0を渡した場合は「一度だけ処理をスキップする」ということであってますよね?
0349デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.ANSleep 関数というのは、下記のURLで説明されている関数のことてしょうか。
http://msdn.microsoft.com/ja-jp/library/cc429358.aspx
C++でDirect3D11絡みで、頭が大文字の Sleep 関数というと、
これくらいしか思い当たりませんでした。
もしこの関数のことでしたら、0を渡した場合の挙動を思い違いされているようです。
0350デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.ANありがとうございます、それです。WIN32APIです
違いましたか。
プログラムをもう一度よく見てみようと思います。
失礼いたしました。
0351デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.AN0352デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.AN一応念の為に言っておきますが、MSDN によると、
0 を指定した場合の挙動に関する記述は次の3点に要約されると思います。
1. 等優先順位で準備完了している他のスレッドに制御が渡る。
2. そのようなスレッドがなければ即座に制御を返す。
3. 現在のスレッドの残りのタイムスライスは放棄される。
この3はおそらく1の補足説明だと思われます。
「一度だけ処理をスキップする」の 「一度」 や 「処理」 の意味が曖昧ですが、
これは、0 を指定しても他のスレッドに制御が渡るケース、
即座に制御が返されるケース、どちらにも当てはまらないと思いました。
なので、0を渡した場合の挙動を思い違いされているようです、ということです。
0353デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.ANそれはDirectXプログラミング的には何も問題ないのでしょうか?
0354デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.AN3の意味で「一度だけ〜」といったつもりでした。
2のごとき結果は殆ど有り得ないだろうという私の早計により言及しませんでした。
言葉が足らず申し訳ないです。関数の挙動を見る限りでは、Sleep(1);を呼び出すと、
1msの間、現在のスレッドがスケジューリングされない、つまり1ms以上レンダリング ループが
休止するのですが、かわりにSleep(0);を呼び出すことで、より敏感な描画ウェイトを
実装できるのではないかと思って質問させて頂いた次第です。
それとも、SwitchToThread 関数など、他の方法をとる方がよりよいのでしょうか。
0355デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.ANSleep(0) とやった時にいつ他のスレッドから戻ってくるかは、日本語の MSDN には言及がないな。
他のスレッド(全てではない)がなければすぐに戻ってくるとは書いてあるが。
だから、一度だけ処理をスキップするかどうかは残念ながら「未定義」だ。
きめ細かく、より正確に時間の制御をしたかったら Sleep 関数に頼らずに、
そのゲームループの中で空ループを回すなどした方がいいと思う。
ところで、早すぎるレンダリングにウェイトを入れるというのは、
例えば動的 fps にするくらいなら 30 fps に固定したいとか、そんな理由?
0356デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.AN0357デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.ANおかしかろうが、「説明がないもの = ユーザーとしては未定義として扱うしかない」
なんだから仕方ないだろう
いや、俺が調べ足りないだけで、どこかで言及されているのかも知れんが、
少なくとも http://msdn.microsoft.com/ja-jp/library/cc429358.aspx には無いよな
0358デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.ANタスクマネージャでCPU占有してんのを糞ユーザーに馬鹿にされるのが嫌だってだけなら
MMCSS指定してSleep(1)を挟んどけばとりあえずおk
動作環境のFPSがVSyncに左右されて良いのならPresentの同期待ちを利用するのが一番素直ではある
0359デフォルトの名無しさん
2013/08/15(木) NY:AN:NY.AN確かに、そのように考えてみると書いてないですね……。 思い違いでした。 ありがとうございました。
特に動的/静的 fps 制御ということは考えてはいませんでしたが
最低限 CPU負荷を軽減 (Sleep 関数などのことです) した上で出来る限りの柔軟性を求めたかったので
実質、動的 fps と言うべきかもしれません。 規定値としては 60 fps に設定しています。
Sleep 関数を呼ぶか呼ばないかも動的にトグルできるようにしてみようと思います。
>>358
MMCSS ですか!
当初 timeBeginPeriod 関数を呼ぶべきかも考えたのですが、そのようなAPIがあるのは知りませんでした。
本当に助かりました。ありがとうございます。
0360デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.AN考え方そのものが間違ってる。
0361デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.AN0362デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.AN0363デフォルトの名無しさん
2013/08/17(土) NY:AN:NY.AN0364デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN何が垂直なの?
0365デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0366デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0367デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0368デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANゲームで気にする必要はないと思うけど
0369デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0370デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANファミコンのラスタースクロールは、結果的に水平同期信号と同期しているというだけで、
水平同期信号を直接拾っているわけではないんじゃなかったっけ。
たしか、0番スプライトをレンダリングする際に特殊なフラグが立つ機能と、
グラフィックテーブルのどの位置から画面にレンダリングするかを決めるスクロールレジスタの値を、
垂直帰線期間以外でも自由に変えられるという機能を使う方法がある。
この番スプライトを画面左端に置いてフラグをポーリングすることで、
果的に水平同期信号と同期できる。
間違ってたらごめん。
0371デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN自キャラ --> 自タンク --> 砲弾 --> 敵タンク(破壊) = 自キャラ「一機撃破!」
という流れがあった時に、敵タンクから自キャラを探すにはどうするのがベストでしょうか
1. 発射元のオブジェクトの参照をバケツリレーする
2. シーン全体からオブジェクトを検索できるようにする
3. ゲーム全体で使える汎用イベントシステムを実装する
いろいろ考えると3のイベントシステムを実装するのがベストかと思うのですが、
グロバールのイベントマネージャーみたいなのがあって、
単に敵タンクが「俺壊れたっす」を登録して、自キャラ「俺壊したっすか」クエリーを飛ばせばいいか、
あるいはもっと何かいい実装方法がありますか。
参考になりそうな書籍を教えてください
0372デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANそれで撃墜カウント計算すれば済む話
0373デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0374371
2013/08/18(日) NY:AN:NY.ANそれは1ですね。そうやってバケツリレー方式でオブジェクトの参照を渡していくのは、
ゲームの設計で賢い選択ではありません。
せめてIDか識別用文字列を付加して2または3のどちらかでオブジェクトの参照を取得できるように実装する必要があります。
おそらく3のイベントシステムを実装すべきですが、そのベストプラクティスを教えて欲しいです
0375デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0376デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANめんどくせー中間処理入れる必要ゼロだ
0377デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0378371
2013/08/18(日) NY:AN:NY.ANそんな単純な話では無いです
市販ゲームレベルでイベントが起きるたびに全オブジェクトの virtual OnGameEvent() を呼び出すのは無謀。
僕の考えた最強のイベントシステムは、
- イベントの識別は文字列(名前)
- 優先度
- イベントはキューイングして保存、順番に発行
- 興味のあるイベントを事前に登録型
- ピアキャストとブロードキャスト
- Update()フェーズの次にHandleEvent()フェーズを実装
こんなのでいいと思うが、どうだろうか。
0379デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANグローバルなシステムに丸投げってキチガイシステムよく見るよな
0380デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0381371
2013/08/18(日) NY:AN:NY.ANある程度の規模のゲームになった場合、オブジェクトの参照(ポインター)を使ってメソッドを呼び出すのは
「結合が強すぎる」事に気がつくと思います。
通常はゲームオブジェクトはIDか文字列で識別し、ゲームオブジェクト間のやりとりは
イベントシステム(メッセージパッシングとも言う)で処理していくのが欧米の一流のゲーム会社のやり方です(たぶん)
0382デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANゲームの設計で賢い選択ではありません。
こいつキチガイだろ。
そうだと思うなら1書いたときにそう書いとけよ。
お前の思い込みなんかしらねーよw
0383デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANなんでも管理するグローバルシステム。
頭悪すぎる。
欧米の一流のゲーム会社のやり方ですw
0384デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANなんで破壊された敵タンク視点で処理すんだよ?
この時点でパーだろ
何がどう欧米の一流なんだよ
0385デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANさらに全体検索も作るなんて狂気の沙汰
そんな事するなら最初からFacadeにして上から垂れ流し+受け取りのがマシ
0386デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANイベント・メッセージ処理はデバッグするときに
実行時のキューの状態も監視しないといけなくなる。
どこにでもそういう実装していくと実装にもデバッグにもコストがかかりすぎるようになる。
0387デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANテンプレートなしで、型クラスを自前で作ることが確定
男らしいと言えば男らしい・・か?
0388デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0389371
2013/08/18(日) NY:AN:NY.AN敵タンクの破壊処理を敵タンクが行わないプログラマーがいたら2流以下
HP=0になって壊れたかどうか判定できるのは敵タンクだけですよ
そして敵タンクを破壊したらキャラが「一機撃破!」としゃべって欲しいのですよ
この時どうやってキャラ オブジェクトに情報を渡すか?
メソッド呼び出し(1)(2)は結合が強すぎてゲーム開発では使用しない
ゲーム内イベントで処理するのが一般的らしいのですが、実装する価値はあるのか、
あったとしてどのように実装すればいいのか。
一緒に僕の考えた最強のイベントシステムを考えたい。
0390デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0391デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN>敵タンクの破壊処理を敵タンクが行わないプログラマーがいたら2流以下
破壊メソッドをタンクに置いたところで
それ呼び出すのはdeleteするクラスだろ
0392デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0393デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANいろいろ勉強になるレスだと思った。
俺も今後気をつけないとな
0394デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN破壊処理を敵機が持つとしてハンドラの呼び出し引数に渡すのは原因となるダメージオブジェクトと破壊された敵機オブジェクト。
移譲された側はダメージオブジェクトのダメージソースと必要なら敵機オブジェクトの情報を用いてメッセージを表示。
わざわざグローバルなイベント処理機構を実装する利点が見えない。
0395デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0396デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0397デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0398デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0399デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANお前の思い込み。
>メソッド呼び出し(1)(2)は結合が強すぎてゲーム開発では使用しない
お前の思い込み。
>ゲーム内イベントで処理するのが一般的らしいのですが、実装する価値はあるのか、
お前の思い込み。
最初からこの3つを前提とできるような質問の仕方をするべきだったねw
お前の思い込みに付き合う人はまだこのスレにいないみたいよ。
ここまで書かれる奴はばかだなぁと思うわ。
0400デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN誘爆を実装するなら接近キャラへの攻撃イベントだね、再帰のレベルに気をつけながら
0401371
2013/08/18(日) NY:AN:NY.AN俺より頭のいいやつが無料でレクチャーしてくれるかもしれないからに決まってるだろw
問題点は理解した。敵タンクか破壊された時に、
(1) 爆発エフェクトを出してタンク オブジェクトを消す --> 敵タンクの役目
(2) 「一機撃破!」と叫ぶ、スコアを+100する --> 他のオブジェクトの役目
(イベントシステムを使わない)参照とメソッド呼び出しで(2)を実装する場合、
本来なら「敵のオブジェクトが行う事」を「敵タンクオブジェクトが実行」することだ。
これが最大の問題点。敵機撃破した時に何をしたいかは他のゲームオブジェクトのみが知っていればよく
敵タンクが関与すべきことではない。
敵タンクはイベント「敵機撃破」のみをブロードキャストすればいい。
(たぶんキューイングは必要)
しゃべったり得点を記録したりは他のオブジェクトが勝手にやること。
ここまでわかればあとはどう実装するかだ。
来週までの宿題な。
0402デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANバカはかわいそうだな。
0403デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0404デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN無知って怖いな。
0405デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN砲弾抜きで、なんで爆破されたか?
どっから飛んできたのかサーチして
方向一致してるタンクを見つけて「お前が撃破した!」って狼煙を上げるシステム作りたいのか?
アホだろ
0406デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN実行されるべき最適シーケンスは1つ
おまえそれを全て書いて回っているのか
いや本当にやってるなら恐れ入るが
0407デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANばかは怖いな。
0408デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0409デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0410デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0411デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN0412デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN素人のアホがよくやること
0413デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.ANただただスパゲティこねる奴の多いこと
0414デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN敵タンクがブロードキャストする撃破イベントには誰に撃破されたかの情報ものせるん?
そのためには結局誰に撃たれたかを把握しないといけないわけだが
0415デフォルトの名無しさん
2013/08/18(日) NY:AN:NY.AN砲弾オブジェクトがあるにも関わらずだ
ならどうする?
ポコペンポコペン誰が突いたか? を100%の精度で当てるシステムを考えなきゃならん
0416デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN素人レベルならそうだな
0417デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN衝突検知したら敵タンクに玉のハンドルとか火力とか渡す
敵タンク死んだら死亡原因オブジェクトを生成して玉のハンドルとかを渡す
死亡イベントに自分のハンドルと死亡原因オブジェクトを持たせてブロードキャスト
これが正道
0418デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN0419デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN何でもできるように作ろうとしてハマるタイプ?
0420デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN0421デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN傍観者である審判システムがやる
0422デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN0423デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.ANセガ本読め素人
0424デフォルト名無しさん
2013/08/19(月) NY:AN:NY.AN0425デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN今年1番のギャグ
腹いたいわwww
0426デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN0427デフォルトの名無しさん
2013/08/19(月) NY:AN:NY.AN0428デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.AN0429デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.AN0430デフォルトの名無しさん
2013/08/20(火) NY:AN:NY.AN絵を出せるようになったので、効果音鳴らそうと思います。
そこで色々調べたらOpenSLと言うのがmp3にも対応していて良さそうなのですがライブラリーが見つけられません。
どなたかインストール方法を教えていただけないでしょうか?
よろしくお願いします。
0431デフォルトの名無しさん
2013/08/21(水) NY:AN:NY.AN0432デフォルトの名無しさん
2013/08/21(水) NY:AN:NY.AN別のを探していたらOpenSLを知りました。
jp.khronos.org
よろしくお願いします。
0433デフォルトの名無しさん
2013/08/21(水) NY:AN:NY.AN0434デフォルトの名無しさん
2013/08/21(水) NY:AN:NY.AN0435デフォルトの名無しさん
2013/08/21(水) NY:AN:NY.AN嘘つけそんな訳ねーよ
0436デフォルトの名無しさん
2013/08/21(水) NY:AN:NY.AN0437デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN0438デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN0439デフォルトの名無しさん
2013/08/22(木) NY:AN:NY.AN0440デフォルトの名無しさん
2013/08/23(金) NY:AN:NY.AN0441デフォルトの名無しさん
2013/08/24(土) NY:AN:NY.ANmp3とかメリットなくね?
効果音はデコード後のをメモリに置いてもいいかもしれない でもそこまでしなくても良くね?
0442デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN配布サイズの問題とかかな
0443デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN初のAndroidアプリをそろそろリリース寸前まで来たんだけど、MP3使ってた。ライセンス問題なんて知らんかったよ。
ここの書き込み見て気になって調べて詳細を知った。OGGにしとこう。
THANX!
0444デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANVorbisより低ビットレートでの性能が高いらしいが、ロイヤリティフリーなだけで特許技術を使っていないわけではないとか
さっきOgg総合スレを見て知った
ロイヤリティもパテントもフリーなのはVorbis
FLACもそうかな?
効果音も配布サイズを最小にするため圧縮はしておきたい
0445デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANまさかmp3が再生できないAndroidマシンとかないだろうし
>>444
Opusなんてのが増えたんだ、軽くググったらメモリが減るかわりに計算負荷が増えるとか何とか
0446デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.ANOSとかブラウザのデコーダーを使う場合は確かにその心配ないね
ただmp3を配布するのにもライセンス料がかかるって話・・・だけれども
swfの中にmp3入れるのは配布ではないとmp3Licensingから回答があったとしているブログはあった
て事はAndroidのapkも問題無し?apkはzip形式だけどapkを取り出すのはちと手間がかかる
生でmp3をうpしないといけないHTML5ゲームではアウトか
https://www.scirra.com/blog/65/even-more-about-audio-licenses-on-the-web
MP3ってOggVorbisより音質悪いと思うけどなぜ使う?素材がMP3しか無くて、再エンコードして劣化させたくないから?
0447デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN0448デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN0449デフォルトの名無しさん
2013/08/25(日) NY:AN:NY.AN↓最適化が進んだものだと全然違う結果になっている
http://www.hydrogenaudio.org/forums/index.php?showtopic=92235
http://www.hydrogenaudio.org/forums/index.php?showtopic=82125
MP3の方がVorbisより設計が複雑ってマジっすか
>>448
今はVorbisの方がよく使われていると思うが
MP3のライセンス料恐ろしいし
0450371
2013/08/26(月) NY:AN:NY.AN>>385
イベントシステム(メッセージ通信)とシーンから全ノードを名前で検索できる仕組みを実装してみたんだけど、すごくきれいに書けた。
受け取り側は MailBox (宛名)を作って、送信側は SendMessage (宛名、void*)で送るだけ。
こんなにシンプルで汎用的に作れるのに狂気の沙汰とかまったく同意できない。
ノードも文字列で判定するようにしたので不要な参照をシーンにばらまくこともなくなって超堅牢になった。
何でこんな簡単な事に反対する人間が出てくるのかさっぱりわからん。
ノードだろうとイベントだろうと文字列で持つに限る。
0451371
2013/08/26(月) NY:AN:NY.ANhttp://toro.open2ch.net/test/read.cgi/tech/1377472860
また書けなくなったら避難所にいるかも
0452片山博文MZコスモ ◆T6xkBnTXz7B0
2013/08/26(月) NY:AN:NY.ANじゃなくて
toro.open2ch.net/test/read.cgi/tech/1377472860/
だな。。。バグ報告しといた。
0453デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.ANそれじゃまさに特定クラスに登録して垂れ流す処理じゃん。
しかも結局砲弾ID使ってるし。
0454デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN0455デフォルトの名無しさん
2013/08/26(月) NY:AN:NY.AN0456デフォルトの名無しさん
2013/08/27(火) NY:AN:NY.ANゲームが複雑になるほどスパゲッティー一直線
0457デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANデータベースから取得するという実装はありですか?
0458デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0459デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0460デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0461デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN無理
0462デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANというかまともな商用ゲームは必ずデータベースを使います
0463デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0464デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN・sqlite
・その他自作エンジン
エスパーすると、何も考えずDBMSをイメージしている可能性が高い
したがって無理
0465デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANこれからの時代はNoSQLだ
0466デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANそこんとこに負担がないならDBMSでやる意味って、ないよな。
決まったフォーマットのデータを山ほどinsertしたり、
いろんなクエリを張っていろんな結果を返すようなことしまくったり。
ゲームで普通そんなことする?
0467デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0468デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN>>458-459 を見た後ではまともに考えても無駄な気がする
0469デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANありだよ。
というか普通によくあるやり方です。
0470457
2013/08/28(水) NY:AN:NY.ANSRPGを作るのにユニットの攻撃力とか防御力をどう管理したらいいかと考えていて
データベースで操作できたら便利だなと思ったわけで
0471デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANゲーム内部でのパラメータ等の管理もデータベース経由ですべてやるのかしら
0472デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN処理ごとのスクリプトがDBにぶら下がる構成にできると楽しい
>>470
sqliteのゲーム応用例はいっぱい出てくる
0473デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0474デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0475デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0476デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANもしかしたらリレーショナルデータベースとの相性は
それほど悪くないかも知れん
シムシティとか
0477デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0478デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0479デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0480デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0481デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0482デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.AN0483デフォルトの名無しさん
2013/08/28(水) NY:AN:NY.ANDB使うかどうかにかかわらず、今時は全て分業じゃないのか?
0484デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANシングルトンとかモノステートと同じデメリット抱えるけどまあ何とかなるっしょ
0485デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANdbmsは考えなくちゃならん事めちゃ多い
ゲーム程度の規模なら自作したほうが頭使わずに済むよ
0486デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN0487デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANゲームエンジンみたいな規模になればsqliteとかのメリットが出てくるのかなぁ
0488デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANドヤ顔でsqlite持ち上げてるアホは10fps程度のカクカクゲー作ってんの?
0489デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANメインメモリとページメモリのように。
0490デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANODBMSがベスト
0491デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN0492デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANiOSは、IMA4。Androidは、Vorbisが品質面で推奨されますが、
MP3だと、同じデータを使える
ところで、プログラム板に、Cocos2d-xのスレッドが見当たらないが
0493デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN【iPhoneアプリ】cocos2dスレ 【iOSアプリ】
http://anago.2ch.net/test/read.cgi/mac/1345064804/
0494デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN0495デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN0496デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANレベルも高い
0497デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANsqliteって非商用で最速の部類よ?
自分で管理オブジェクト作って掘ってるより、
インメモリのsqliteのがよっぽど速いと思うが。
0498デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN歴史的バカ
0499デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANいつまでそんな意味のないレスをし続けるつもりだ?
この先一生か?
0500デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANお前が成長するまでかな
親切だろ?
0501デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN0502デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN・自分は専門家でとても出来ると思いこんでいる。
・知識も豊富でプログラムに詳しいと思いこんでいる。
0503デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN試しも考えもしないで
「無理」「常識では考えられない」「馬鹿?」と
狭い知識で全力で言い訳や否定を行う。。
そしてプログラムより論破するのに生き甲斐を感じ始める・・・
最近こんなPGおおすぎね?
0504デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN自分の知識が広いだなんて、たわけ過ぎたことは生涯一度たりとも思ったことがない
いつも否定から始めるコミュ障はPGに限らずまんべんなくいる
つーか、スレチ
マ板だろこれ
0505デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN0506デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANCVSやXMLとパーサだけで十分な処理しかしないなら態々事大主義になってもねと
>>457の言うDBがどんな意図で使ったのか分からないとどうにも
0507デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN正解
散々リレーショナルはゲープロではゴミ扱いって流れのあとでsqliteは非商用では最速なんだぜ〜ドヤドヤ
なんて言われても失笑するしかないだろう
0508デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN普通ゲームで使う用途だと楽じゃない?なんか話が無限ループしてるけど
0509デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN今時ゲームでdbにblob埋め込み取り出しなんて普通にやってるのに。
0510デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANでも可変数値を扱いたいといっているのにcsv,xmlとか・・・8bit以前の問題か。
0511デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANみんな間違いに薄々気が付いてるんだが
悪しき習慣として間違いを繰り返してしまう
0512デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN別に絶対使うor使わないじゃなくて用途みて決めれば良いじゃない
0513デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANその書き方だと>>506がdb貶してたみたいに見えるぞ
0514デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANゲームに最適なデータベースはODBMSです
0515デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN確かにRDBより手軽。速度がどうかは知らないけど。
0516デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANfor(int i; i = getDBIntValue("i"), i < 10; putDBIntValue("i", i + 1))
{
}
0517デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN現在HPをリアルタイムにDBから取得したいのか、まぁ>>457に出てきて貰わないと収拾が付かないな
えすぱーすると前者な気がするんだけど
0518デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN漠然としすぎだからだよ。
ゲームに向いているのはオブジェクト思考言語ですとなんらかわらない。
だから答えようがない。
0519デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN0520デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN多分彼はSRPGってつまりFEだのオウガバトルだの見たいな一面完結のシムを想定してるんでしょ
だと普通の表ベース管理でもそう問題無い気がするけど拙い?
コテコテのDoTA作りたいですとか言うなら話は別だけど
0521デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN凄い遅いなテラワロタw
ところでこれ言語なによ?w
0522デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANzlibライセンスあたりで
良さげだったら使ってやってもいいぞ
0523デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANそいつも大概RDB狂信してるだけだろ
二人で他所で煽りあってれば良いのに
0524デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.ANいいね
まずはsqlをコンパイルしてアセンブラ化すればさいきょうだろ
0525デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN0526デフォルトの名無しさん
2013/08/29(木) NY:AN:NY.AN先週のイベントシステムの方が面白かった
0527デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN0528デフォルトの名無しさん
2013/08/30(金) NY:AN:NY.AN定義部は DML でいいとして
データ側は もっと親和性のいいフォーマットがないかな?
0529デフォルトの名無しさん
2013/09/01(日) 08:12:32.08例えば指定したMPから1を引きたいときにswitch分で
enum MP{A,B,C}
MP mp;
int mpA,mpB,mpC;
if(mp==MP.A)
mpA-=1;
if(mp==MP.B)
mpB-=1;
if(mp==MP.C)
mpC-=1;
と今はしているのですが、switch文にするにしろ、今後計算式が増えるときの根本的な解決にはなっていないような気がします。
もっとenumと(enumでなくても良い形式があればいいのですが)キーと値を密接に関わらせる方法はないでしょうか。
値本体は別で管理したいので、mapやDictionaryで持つのも違うかなと思っているのですが……
値をポインタにして、キーをenumにすると一応解決するような気もするのですが相当気持ち悪い気がするのでそうするか迷っています。
0530デフォルトの名無しさん
2013/09/01(日) 08:19:12.75そもそも外からenumを使って変更したいMPを選択している時点で何かがオカシイ
魔法を使ったらMPが減るとかなら自分の管理するMPは1つだろ
0531デフォルトの名無しさん
2013/09/01(日) 13:02:54.71enumにMAXでも追加して普通に配列にしろw
int mp[ MP.MAX ];
mp[ MP.A ] -= 1;
switchやらifなんか使わねーからw
0532デフォルトの名無しさん
2013/09/01(日) 13:05:11.350533デフォルトの名無しさん
2013/09/01(日) 13:13:22.690534デフォルトの名無しさん
2013/09/01(日) 13:55:37.85そうじゃなくても 何かのクラスの持ち物にすればいい
int の配列は気持ち悪いけど オブジェクトの配列ならオッケー
と言ってるだけの気がする
0535デフォルトの名無しさん
2013/09/01(日) 16:16:20.01言語仕様やコンパイラ挙動やメモリマップとかまったく関係なしに、
個人のご自由に気に入る方法で、とかしか言えないだろw
0536デフォルトの名無しさん
2013/09/01(日) 16:31:07.79void minus1(int* mp)
{
*mp -= 1;
}
/* 使用例 */
minus1(&mpA);
minus1(&mpB);
minus1(&mpC);
0537デフォルトの名無しさん
2013/09/03(火) 20:23:04.50プラプラめんどくさすぎ
0538デフォルトの名無しさん
2013/09/03(火) 20:30:58.68何語で考えるかではない
0539デフォルトの名無しさん
2013/09/03(火) 20:55:02.720540デフォルトの名無しさん
2013/09/03(火) 21:11:12.00やたらうるせえだけで無味乾燥な作業ゲー
0541デフォルトの名無しさん
2013/09/03(火) 21:32:04.11低レベルすぎるけど
0542デフォルトの名無しさん
2013/09/03(火) 21:46:33.48ジリリリリリリ…
「ヤバい、サツが来た!」
「隠せ、急いで隠せ!!」
0543デフォルトの名無しさん
2013/09/03(火) 22:24:13.520544デフォルトの名無しさん
2013/09/03(火) 22:25:49.45パズドラ大ヒットじゃん
0545デフォルトの名無しさん
2013/09/04(水) 06:24:46.04人間をよーく観察してみろ。そしてスマホをいじっている自分を省みろ。
人間とは視野が狭く盲目で仕事やスポーツ、レベル上げなど同じ作業をバカみたいに繰り返す傾向があること。
ではその上の次元に存在する、生産者であり創造者たるプログラマは何をすべきか自明であろう。
0546デフォルトの名無しさん
2013/09/04(水) 07:28:22.66お前らのところの仕様書って何で書かれている?
俺のところプログラマーのやつだけでなくプランナー>デザイナーの指示書も含め
全部Excelファイルでズラーっと大量にあるんだが、これ普通なのけ?
0547デフォルトの名無しさん
2013/09/04(水) 10:19:12.480548デフォルトの名無しさん
2013/09/04(水) 12:07:25.02わかりました。もっと大きな画面のモニタに買い換えます。
0549デフォルトの名無しさん
2013/09/04(水) 22:22:17.600550デフォルトの名無しさん
2013/09/04(水) 22:45:23.960551デフォルトの名無しさん
2013/09/04(水) 22:49:45.56A STINK BOMB
EXCEL FOSSIL - 549
IS APPROACHING FAST.
0552デフォルトの名無しさん
2013/09/04(水) 23:47:02.83他の職種は知らんがゲームだと、仕様書というのは
ゲームを構成するありとあらゆる部品の製作状況を管理するためのものだ。
例えばゲームに登場する全ての魔法の名前、効果、消費魔力、エフェクトなどを表す魔法テーブル。
全てのBGMの名前、再生時間、容量(MB)などを表すBGMテーブル。
などなど・・・
テーブルを管理するのに Word を駆使しようと考える奴がいたらどう思う?
また、仕様書とは言うが、製作過程において今現在、各部品がどこまで作られたか、
という情報もたいていは書き込まれる。
例えば、BGMを外注するとして、それが完成して納品されたのか、発注前なのか、
発注済みなのか、リテイク何番目なのか、ということが仕様書に書かれることになる。
このような情報は製作過程においてどんどん書き換えられていく。
その際に、部品は全体で何%くらい完成しているのか、
どのカテゴリの部品がどれくらい遅れているのか、といった進捗状況が一目でわかると良い。
Excel などの表計算ソフトだと、そのような事をスクリプトで実現するのが簡単だ。
0553デフォルトの名無しさん
2013/09/04(水) 23:52:34.410554デフォルトの名無しさん
2013/09/05(木) 00:03:27.410555デフォルトの名無しさん
2013/09/05(木) 00:09:44.33進捗管理じゃないのかそれ
専用のソフトウェア使ったほうがいい
レポート出せるし
0556デフォルトの名無しさん
2013/09/05(木) 01:02:32.95Wordは紙で出力するという絶対条件が無ければクソやで
0557デフォルトの名無しさん
2013/09/05(木) 01:05:46.210558デフォルトの名無しさん
2013/09/05(木) 01:34:10.350559デフォルトの名無しさん
2013/09/05(木) 04:40:13.790560デフォルトの名無しさん
2013/09/05(木) 07:00:51.820561デフォルトの名無しさん
2013/09/05(木) 07:47:29.87何も考えてないバカ(日本人サラリーマンの9割に相当)が作るExcel文書はロジックとレイアウトが完全に融合したスパゲティ構造だから編集のしにくさが異常
0562デフォルトの名無しさん
2013/09/05(木) 16:52:10.58不規則なセル結合とか
そういうのを除けば十分使える
0563デフォルトの名無しさん
2013/09/06(金) 10:09:19.10専用ソフトの導入コストがバカにならないだろ。
Excelなら誰でも持ってるからどこで誰が開こうが見られるし、最低限の機能はある。
1個のファイルで全部完結させられるってことを考えるとExcelは合理的だよ。
これ以上にオールインワンなツールはないと思う。
0564デフォルトの名無しさん
2013/09/06(金) 10:23:54.70tracやredmineのようなWEBサービス型のやつを使えよ。
0565デフォルトの名無しさん
2013/09/06(金) 10:50:19.590566デフォルトの名無しさん
2013/09/06(金) 10:51:33.390567デフォルトの名無しさん
2013/09/06(金) 11:32:00.440568デフォルトの名無しさん
2013/09/06(金) 12:11:43.15ワロタ
0569デフォルトの名無しさん
2013/09/06(金) 12:26:17.27その下に仕様書つければ生産性高い。
0570デフォルトの名無しさん
2013/09/06(金) 12:30:08.500571デフォルトの名無しさん
2013/09/06(金) 12:38:26.390572デフォルトの名無しさん
2013/09/06(金) 12:41:58.18適当にツール作って取り出すようにしてるんだけど普通じゃない?
0573デフォルトの名無しさん
2013/09/06(金) 12:46:00.450574デフォルトの名無しさん
2013/09/06(金) 12:46:44.15エクセル使うのも普通だし、自作ツール使うのも普通だよ。
異常のパターンってあるのかなw
0575デフォルトの名無しさん
2013/09/06(金) 12:49:21.98ソフトウェアの開発は普通が一番だろう
0576デフォルトの名無しさん
2013/09/06(金) 12:50:45.11こんなんとか?
http://www.vector.co.jp/soft/win95/game/se214637.html
>>572
さんせー
ツール自体の癖が仕上がりにけっこう影響するから
1つのツールに固執してると飽きられるんだよね
0577デフォルトの名無しさん
2013/09/06(金) 12:54:50.00パワポで仕様書・データ管理とか?
見栄えは一番良くなるはずだし。
0578デフォルトの名無しさん
2013/09/06(金) 12:56:55.19まさか更新の都度コピペ?
0579デフォルトの名無しさん
2013/09/06(金) 13:00:04.450580デフォルトの名無しさん
2013/09/06(金) 13:05:35.460581デフォルトの名無しさん
2013/09/06(金) 13:16:35.26それならAccessとかのがまだ楽なんじゃないかなと。
0582デフォルトの名無しさん
2013/09/06(金) 13:21:17.91バイナリーが作れれば良いだけだしね。
0583デフォルトの名無しさん
2013/09/06(金) 13:26:06.860584デフォルトの名無しさん
2013/09/06(金) 13:32:59.34あまり複雑でないXMLなりCSVなり吐いてくれればよい
0585デフォルトの名無しさん
2013/09/06(金) 14:20:08.240586デフォルトの名無しさん
2013/09/06(金) 14:37:03.68ここからレベルの低い書き込みは禁止
------------------------------------
0587デフォルトの名無しさん
2013/09/06(金) 14:38:35.710588デフォルトの名無しさん
2013/09/06(金) 16:46:20.12物理シミュレーションのための RigidBody の3文字程度の略語に悩んでいるのですが、何が良いでしょうか
0589デフォルトの名無しさん
2013/09/06(金) 17:10:15.00悪いが別をあたってくれ。
0590デフォルトの名無しさん
2013/09/06(金) 17:43:09.110591デフォルトの名無しさん
2013/09/06(金) 17:43:44.423文字程度なら2文字でもいいよな
RB でいいんじゃね
0592デフォルトの名無しさん
2013/09/06(金) 18:02:02.500593デフォルトの名無しさん
2013/09/13(金) 04:03:33.580594デフォルトの名無しさん
2013/09/14(土) 00:54:24.21日本語の資料少なすぎ
実装してる奴ほとんどいないの?
0595デフォルトの名無しさん
2013/09/14(土) 02:51:21.52おめでと!
ついでに質問
androidのJNIで以下のフラグを付けてexecをsjisで動かしたいのに変換できませんエラーがでる。
windowsのexecがSJISなのでアンドロイドも同じにしたいです。
誰かヘルプ!
LOCAL_CPPFLAGS := --input-charset=utf-8 --exec-charset=cp932
0596デフォルトの名無しさん
2013/09/14(土) 03:38:59.93sjisにない文字が普及してきてる
0597デフォルトの名無しさん
2013/09/14(土) 04:13:14.140598デフォルトの名無しさん
2013/09/14(土) 07:22:53.87日本語資料がネットに全然ないものとか
一体どうなってんのって思う
少子化で日本人の数減ればどんどん厳しくなるよな
0599デフォルトの名無しさん
2013/09/14(土) 08:10:47.02いやならひまわりでも使えばいい罠
0600デフォルトの名無しさん
2013/09/14(土) 09:09:28.17非常に憂慮してるけどね俺は
0601デフォルトの名無しさん
2013/09/14(土) 10:08:02.880602デフォルトの名無しさん
2013/09/14(土) 10:18:37.960603デフォルトの名無しさん
2013/09/14(土) 12:57:33.70ゲーム制作者のための物理シミュレーション 剛体編
お勧め。
日本も本は沢山あるよ。
ネットで検索する前に必ずその分野の本を2冊ぐらい買って読んでから嵌ったらネットで調べる流れが良い。
調べる単語や流れが分かっているので効率が違う。
0604デフォルトの名無しさん
2013/09/14(土) 12:59:37.24日本は終わってるっていう考えは開発者としてヤバいよw
0605デフォルトの名無しさん
2013/09/14(土) 13:06:03.280606デフォルトの名無しさん
2013/09/14(土) 13:09:54.42光関係と軽量化をレンダラ含めて解説してくれる日本語が必要
0607デフォルトの名無しさん
2013/09/14(土) 13:47:08.71多体の相互作用の扱い方と衝突の扱いに難しさがある
0608デフォルトの名無しさん
2013/09/14(土) 23:09:45.22点で衝突するとか線で衝突するとか面で衝突するとかパターンが多すぎて
出来合いの使いたくなるわ
0609デフォルトの名無しさん
2013/09/14(土) 23:14:41.29線分でやってるから完全な円に対する判定が無いんだよな
0610デフォルトの名無しさん
2013/09/15(日) 08:39:02.910611デフォルトの名無しさん
2013/09/15(日) 09:06:52.080612デフォルトの名無しさん
2013/09/15(日) 09:21:12.06欲しい機能が溺愛のに無いとか。
たとえば、粉体(水が多少染みた海岸の砂など)をシミュレートしたい、
岩や鉱物、結晶などが割れたり砕けたりするのをシミュレートしたい、など。
有料ライブラリにあっても、訳あってフリーのしか使えなければ、自作するしか無いし。
0613デフォルトの名無しさん
2013/09/15(日) 12:14:11.970614デフォルトの名無しさん
2013/09/15(日) 12:30:12.64ちょっと紛らわしいからアンカーつけてくれ
0615デフォルトの名無しさん
2013/09/15(日) 14:01:12.93パーティクル的なエフェクト用途で、プリミティブは球とプレーンだけありゃいいんだけど、生成・削除・更新をとにかく大量にこなせるヤツが欲しい、みたいな。
計算・シミュレーション系の汎用ライブラリは、ニッチな条件が絡んで結局自作せざるを得ない場合も多い。
0616デフォルトの名無しさん
2013/09/15(日) 18:40:16.550617デフォルトの名無しさん
2013/09/15(日) 20:28:40.450618デフォルトの名無しさん
2013/09/15(日) 20:48:36.51手でかき分けたり、足で踏んだり、風でなびいたりする、
そういう計算を効率良くこなす物理演算も欲しい。
正確性を多少犠牲にしていいから、
動き方でオォッと思えるようなグラを作る方向で。
もちろん、そういう植物を大量にランダムに生やす生成システムも込み。
となると、自作するしか無いか。
生成システムだけならありそうだけど。
0619デフォルトの名無しさん
2013/09/15(日) 20:51:20.440620デフォルトの名無しさん
2013/09/15(日) 21:02:35.220621デフォルトの名無しさん
2013/09/15(日) 21:32:29.620622デフォルトの名無しさん
2013/09/15(日) 22:08:20.98フリーではまだないんじゃないかな
CAPCOMがMTフレームワーク2.0と称した自慢のフレームワークを使ってるけど、
そのフレームワークにそういう機能(?)がある
そうやって大企業が自慢気に出してくるくらいだからかなり難しいんじゃないの
0623デフォルトの名無しさん
2013/09/15(日) 22:46:07.080624デフォルトの名無しさん
2013/09/16(月) 01:11:37.61リアル指向より面白いもの作ることに力注げと
0625デフォルトの名無しさん
2013/09/16(月) 02:15:36.050626デフォルトの名無しさん
2013/09/16(月) 02:32:45.810627デフォルトの名無しさん
2013/09/16(月) 05:12:37.06それに物理挙動で「面白い」と思えるのは一瞬だけだし、その暇があるなら絵でも描いてた方が……
0628デフォルトの名無しさん
2013/09/16(月) 09:11:01.000629デフォルトの名無しさん
2013/09/16(月) 09:40:32.80斜面だと片足めり込んで片足浮くからな。
0630デフォルトの名無しさん
2013/09/16(月) 09:48:42.590631デフォルトの名無しさん
2013/09/16(月) 10:24:15.000632デフォルトの名無しさん
2013/09/16(月) 10:36:37.540633デフォルトの名無しさん
2013/09/16(月) 10:43:05.080634デフォルトの名無しさん
2013/09/16(月) 11:49:14.02それはそうなんだけど・・・
例えば「ワンダと巨像」で巨像に生えている毛のフサフサ感がけっこうリアルなんだが、
あれテクスチャを貼るだけでもゲームコントロールの面白さは全く目減りしないと思うんだ。
でもやっぱりあの毛のリアリティがあった方が、そこに捕まっている感がでて、
自分がその世界にいるという感じを強く受ける。
それがゲームプレイの楽しさというかワクワク感というか、そういうのに繋がつていると思うんだ。
コントロールの楽しさだけではない、プレイ全体の楽しさね。
他にも「ゼノブレイド」も同じで、やっぱり自分がそこにいる感を出して
プレイの楽しさを上げていると思うんだよ。
あのフィールド、オブジェクトがなくのっぺりしたテクスチャだけだったら、がっかりでしょ?
確かにそれでもコントロールの楽しさは変わらないけどね。
0635634
2013/09/16(月) 11:49:59.970636デフォルトの名無しさん
2013/09/16(月) 12:28:40.960637634
2013/09/16(月) 12:37:38.02長々とごめんなさい、恥ずかしいのでこのレスは忘れてください。
0638デフォルトの名無しさん
2013/09/16(月) 13:39:34.75ゼノブレは、のっぺりして見えないようにしてるだけで
実態のポリゴン数かなり抑えてると聞いたぞ
0639デフォルトの名無しさん
2013/09/16(月) 14:01:14.87その上>>624,627なわけで。
そういうの見てカッケーと思っても、小規模開発じゃ夢でおわりんぐ。
0640デフォルトの名無しさん
2013/09/16(月) 14:17:08.32ユーザー「お、おう」
0641デフォルトの名無しさん
2013/09/16(月) 15:55:22.950642デフォルトの名無しさん
2013/09/16(月) 16:05:51.95> 単なる草地じゃ費用対効果悪いんだよな。
風でなびくのとは微妙に違うようにモゾモゾと草木が動けば、そこに敵が潜んでいるとか。
0643デフォルトの名無しさん
2013/09/16(月) 17:23:41.71そして○○アイテムを使えばマーカーが見えるよ! というお約束により
プレイ進行とともに空気化される
0644デフォルトの名無しさん
2013/09/16(月) 17:33:10.23煙幕とか舞った砂塵に敵が隠れて、影やゆらぎを捉えて「そこかっ!」ってやるやつ、
ああいうゲームってなくね?
リアルタイムでボリュームレンダリングできるようになったら出るかな。
QTEではなく、ちゃんとプレーヤーの操作でね。
もちろん「そこかっ!」はゲームキャラの用意されたボイスではなくプレーヤーの心の声。
0645デフォルトの名無しさん
2013/09/16(月) 18:19:41.05それはまだ当分先じゃねえかな
0646デフォルトの名無しさん
2013/09/16(月) 18:19:48.100647デフォルトの名無しさん
2013/09/16(月) 18:26:14.82それだけならフォグとビルボードだけでも十分な雰囲気は簡単に出せんじゃない?
戦場のヴァルキュリアの煙幕はそんな感じだった気がする。ゲーム的にはそんな意味なかったけど。
CoDMW2もそんなステージなかったっけ。砂嵐の中、敵に囲まれた街から脱出するみたいなステージ。
似たようなので当時オォって思ったのは、スプリンターセルだったかで、障子越しに敵の影が映るみたいな表現があったな。
サーチライトやフラッシュライトみたいな指向性のある光や自分の影が濃い霧や煙幕に当たったり、投影されたりみたいな表現をしようとするなら、リアルタイムでボリュームレンダリング的な事考えないといけないだろうけど。
0648デフォルトの名無しさん
2013/09/16(月) 19:43:19.39なんかこう、何層もの円筒の中心軸から外を見たような感じになってしまわないかと。
まぁ俺はやったこと無いから、意外に簡単にできるかも知れんが。
0649デフォルトの名無しさん
2013/09/16(月) 20:05:58.07ボリュームレンダリングがもう少し実用的な手法があればな
0650デフォルトの名無しさん
2013/09/16(月) 21:16:54.65夢語るのは良いけど現実味増したゲームをプレイした子供や脳が子供の大人にどんな影響がでるかとかは考えないの?
0651デフォルトの名無しさん
2013/09/16(月) 21:24:20.23そういうのはあまり考えないな。
子供にプレイさせるかどうかは、大人がその子供をどう躾けるかの問題だし、
脳が子供の大人がどうなるかは、周りの大人がその馬鹿をどう躾けるかの問題だから、
このスレとは完全に関係ない。
スレチな議論は他所でやってほしい。
0652デフォルトの名無しさん
2013/09/16(月) 21:28:10.58やっていて面白いかどうかがゲームの全てであり
飾りが似合うかどうかはそのうえに成り立つことでしかない
0653デフォルトの名無しさん
2013/09/16(月) 21:51:56.00飾りもゲームの大事な一部で、何が上位か下位か、というものではないと思う。
プレーヤーの感じ方に直結するよ。
0654デフォルトの名無しさん
2013/09/16(月) 22:33:48.27無料で手に入れられるものだけで開発するには、何で作るのがおすすめでしょうか。
Flash、Unity、cocos2d、HTML5+Javascriptフレームワークなど
色々あり、どれに手をつけて勉強すべきかまじめに悩んでます。
私の経験としては、Javaで簡単なWebアプリの開発をしたことがあるレベルです。
0655デフォルトの名無しさん
2013/09/16(月) 22:45:51.96Unity でいいよ
どうやって作るのかは、まずは自分で精一杯調べろよ
0656デフォルトの名無しさん
2013/09/17(火) 01:11:43.34だとしたらリアル追求は3Dグラフィック系のスレか数学物理あたりでやったほうが良いのでは?
0657デフォルトの名無しさん
2013/09/17(火) 05:42:22.13FlashかUnityだなぁ。少なくともHTML5+JSはない。
手をつけなきゃいけないこと多すぎて、2D脱出ゲー作りって本来の目的見失いそう。
まぁこういうのはどれに手をつけるかまじめに悩むより、どうやって目的のゲーム作るのかをまじめに悩んだ方がいいぜホントに。
みんな使ってるから〜とか、影響を受けたゲームが使ってたから〜で選んでいいのよ。
ライブラリとかフレームワークなんて、自分で暫く使ってみないと解らないことの方が多いしな。
0658デフォルトの名無しさん
2013/09/17(火) 06:53:17.90だろうね。
ゲームで60fps出そうと思ったら1/60秒以内に1コマ描画し終えなければならないけど、
アニメや動画は60fpsだとしても1コマの描画に10秒とかかけてもいいわけだしね。
0659デフォルトの名無しさん
2013/09/17(火) 07:06:19.96以前(と言っても随分前)3Dグラフィック系のスレで質問したら、
ゲームプログラムやそのテクはゲーム系のスレで訊いてくれと言われた
数学物理はどうか知らんが
0660デフォルトの名無しさん
2013/09/17(火) 08:12:34.490661デフォルトの名無しさん
2013/09/17(火) 09:56:46.43設計センスのある人はまだまだ、少ないみたいだね
0662デフォルトの名無しさん
2013/09/17(火) 10:40:31.830663デフォルトの名無しさん
2013/09/17(火) 11:09:24.94ある程度パターン化されると思うが……
0664デフォルトの名無しさん
2013/09/17(火) 11:28:44.910665デフォルトの名無しさん
2013/09/17(火) 11:41:41.100666デフォルトの名無しさん
2013/09/17(火) 12:22:44.75衝突判定の話なのか
マップ作成とかレベルエディタの話なのか
0667デフォルトの名無しさん
2013/09/17(火) 23:24:26.46そこまでのリアルとなるとゲームやグラフィックスと言うより
物理シミュレーションの世界じゃねえかなあ
物理数学もある程度絡むだろうね、それだけでは終わらないだろうけど
0668デフォルトの名無しさん
2013/09/17(火) 23:49:32.92まぁ、目的はシミュレーションじゃないからなぁ。
フレームレートを落とさず、画面に映る範囲のものが綺麗に見えるならどんな嘘でもつく、
というのがゲームグラフィックスの世界。
0669654
2013/09/18(水) 00:10:52.95>>657
ありがとうございます。Unityで一旦手をつけてみます。
SceneにCubeとかのGameObjectを置いて適当にさわってみてますが
わからなすぎるので、調べながら少しずつ勉強してみます。
0670デフォルトの名無しさん
2013/09/18(水) 06:59:28.55本を買ったら「無料で手に入れられるものだけで開発する」ことにはならないのか?
俺は一冊Unity入門書(何でもいい)を買ってチュートリアルをこなすことを強く勧めるが
0671デフォルトの名無しさん
2013/09/18(水) 21:13:50.790672デフォルトの名無しさん
2013/09/18(水) 21:21:17.11それに越したことはない
0673デフォルトの名無しさん
2013/09/18(水) 22:25:23.47他の方法に比べて良い箇所がまったく無い。
0674デフォルトの名無しさん
2013/09/18(水) 22:30:00.70googleがM&Aして自分のものにしてできたものだそうだから
googleの優秀なエンジニアはあんまり開発に関わってないから
糞なんじゃないのかなあ
0675デフォルトの名無しさん
2013/09/18(水) 23:21:47.81他の「方法」ってどういうこと?
どのような目的のもとでの話なのか、
例えばどういう方法があるのか、
もう少し詳しく説明してくれないか。
0676デフォルトの名無しさん
2013/09/19(木) 03:37:18.37システム的にはそんなに難しくないだろう
宣伝の力かな
CMはどこが作ってんだろ
0677デフォルトの名無しさん
2013/09/19(木) 04:23:59.240678デフォルトの名無しさん
2013/09/19(木) 04:53:40.75なにも引っさげないことを悪とは言わない、なにか引っさげるのは幸運と才能の77であって宝石のようなものだから
臥薪嘗胆のような無駄な努力はいらんが、引っさげるまでは黙っていろ
駄作公害という用語を提唱する
人、とくに若者が何を考えることができるかを制限してしまう全てだ
0679デフォルトの名無しさん
2013/09/19(木) 05:02:10.450680デフォルトの名無しさん
2013/09/19(木) 05:21:57.870681デフォルトの名無しさん
2013/09/19(木) 05:22:07.350682デフォルトの名無しさん
2013/09/19(木) 06:54:31.910683デフォルトの名無しさん
2013/09/19(木) 10:41:06.960684デフォルトの名無しさん
2013/09/20(金) 00:50:30.340685デフォルトの名無しさん
2013/09/21(土) 03:27:27.81プライドの欠片もないんだろうね
どう考えても「萌え」が日本のゲームを駄目にしたPart2
http://anago.2ch.net/test/read.cgi/ghard/1377444049/
0686デフォルトの名無しさん
2013/09/21(土) 09:13:04.840687デフォルトの名無しさん
2013/09/21(土) 09:31:05.180688デフォルトの名無しさん
2013/09/21(土) 09:48:57.68CEDECでゲームコンサルという職を聞いてびっくりしたわ。
0689デフォルトの名無しさん
2013/09/21(土) 11:11:44.150690デフォルトの名無しさん
2013/09/21(土) 13:33:26.440691デフォルトの名無しさん
2013/09/21(土) 14:33:17.51経営陣のちゃんとした方針とかが無いと企業として失敗する
社内ライブラリの作成、維持、更新のコストは莫大になるが直接の利益は出さない
それでも、その社内ライブラリで作成するコンテンツの売り上げを見据えて許容するのか
それとも安価な社外のミドルウェアやライブラリを使って(当然コア技術が無くなるが)
確立された技術レベルや作成スピードで利益を上げるのか
そう言うのを考えないと
コア技術が社外のミドルウェアやライブラリに依存してるのに
そのあたりをゴニョゴニョしないと何も出来ない現場とかの企業は
上の思惑が正確に伝わらず、文句ばっかいって何も作れない現場になってるとか
0692デフォルトの名無しさん
2013/09/21(土) 15:22:57.10ところまで見てれば社内ライブラリとか小さい会社が持ってても爆発するだけだと思う
0693デフォルトの名無しさん
2013/09/21(土) 15:27:07.56納期や品質をコントロールするために作るんだから
フレームワークの規模は自然と事業の規模に沿う
0694デフォルトの名無しさん
2013/09/21(土) 16:19:30.48それらを作ってメンテ&それらでタイトル作って、
そのタイトルの作業もって言うスーパー人材がいないかぎり、
どの会社もアップアップでライブラリやフレームワークに割く金がない
で結局分散して、糞なライブラリやフレームワークで糞なタイトルが出来て
糞なキャッシュフローに陥って、糞な会社になっていくと言うwww
0695デフォルトの名無しさん
2013/09/21(土) 17:02:14.15マルチ展開は当然受け入れるっていう前提だよな
0696デフォルトの名無しさん
2013/09/21(土) 17:29:37.730697デフォルトの名無しさん
2013/09/21(土) 18:26:07.96萌えでCPU作る本を知らなさそうだね
0698デフォルトの名無しさん
2013/09/21(土) 18:51:05.78釣れないならそうしないが
0699デフォルトの名無しさん
2013/09/21(土) 21:31:24.19今も昔もグラフィックまわりだけ
それ以外の要素はぶっちゃけ文系的要素
0700デフォルトの名無しさん
2013/09/21(土) 21:39:55.080701デフォルトの名無しさん
2013/09/21(土) 22:23:16.690702デフォルトの名無しさん
2013/09/21(土) 22:41:07.00ナオンが釣られなければシコッてんだと、バカかwww
0703デフォルトの名無しさん
2013/09/21(土) 22:43:30.52科学技術的物理ゲームとか勘弁しちくり
0704デフォルトの名無しさん
2013/09/22(日) 09:26:57.630705デフォルトの名無しさん
2013/09/22(日) 13:11:04.14日本はこのままこの路線を進化発展させてほしいな
0706デフォルトの名無しさん
2013/09/22(日) 16:03:48.160707デフォルトの名無しさん
2013/09/22(日) 19:08:01.65意地でも「進化発展」させてほしい
0708デフォルトの名無しさん
2013/09/22(日) 19:29:30.500709デフォルトの名無しさん
2013/09/22(日) 19:35:20.550710デフォルトの名無しさん
2013/09/22(日) 20:11:32.970711デフォルトの名無しさん
2013/09/22(日) 20:27:00.740712デフォルトの名無しさん
2013/09/22(日) 21:39:28.44だから今の路線ではこれ以上進化発展しようがないから頭打ちになってるんだよ。
さらに進化発展するにはゲームを論理的に突き詰める分析が必要不可欠。
意地でも進化発展するには結果的に路線を変える以外に方法がない。
0713デフォルトの名無しさん
2013/09/22(日) 22:03:17.140714デフォルトの名無しさん
2013/09/22(日) 22:17:06.210715デフォルトの名無しさん
2013/09/22(日) 22:22:28.31>>709は精神論じゃないよ。精神論言い出す日本人はバカだ。
だいたいあの戦争は物理的に勝てる代物じゃない。
トランプや花札作ってた任天堂を世界を股にかける大企業にのし上げたファミコンのように
ブレイクスルーを日本人なら創り出せる
0716デフォルトの名無しさん
2013/09/22(日) 22:23:46.140717デフォルトの名無しさん
2013/09/22(日) 22:37:54.820718デフォルトの名無しさん
2013/09/22(日) 22:46:29.54そうなのか?
普通に勝てない戦争だから(当時の知識人もだいたいそういう認識だったが)決して
始めるべきではなかったのに、なのにバカ(軍人的体育会系)が日蓮主義の八紘一宇
の精神論だとかで暴走して果てには日米開戦まで突っ走ったのが先の大戦だろ?
「勝てる戦争」とはいくらなんでも言えないと思うね。
0719デフォルトの名無しさん
2013/09/22(日) 22:47:45.50あれの当たり判定ってどうやってんの?
斜めや円形の壁と綺麗に当たって、
ちゃんと違和感ない方向へ反射して跳ね返ってるように見えるんだけど。
円と直線の交点を割り出すとか、真面目にやってんのかな。
あと、毎フレーム全ての壁と当たり判定処理してるのか、
それとももうこの時代から画面をグリッドに分けて、
玉がある付近の壁とだけ当たり判定処理することもやってたのか。
あれ、ロンチにしては地味に結構すごいことやってるなぁ、って思って。
0720デフォルトの名無しさん
2013/09/22(日) 22:50:16.07まぁその辺は細かいこと無しで
0721デフォルトの名無しさん
2013/09/22(日) 23:03:35.46それは法整備()やら人権()が尊ばれる前の時代だから出来たんだよ
それに株主に配慮せなあかん。マネーゲーム連中に夢への投資なんて真っ先に切られる
自由が奪われて機械的な生産しか出来なくなった日本に何が出来るんだ
利益優先で無難な開発しかできないんじゃ実験から生まれる大成功なんてありえない
0722デフォルトの名無しさん
2013/09/23(月) 00:28:41.80それが日本の最新ビジネスです
0723デフォルトの名無しさん
2013/09/23(月) 05:04:01.480724うゆ
2013/09/23(月) 15:50:48.93大 東 亜 を 語 る な ら 、 知 識 つ け て 喋 れ や ク ズ
何 も か も が 的 外 れ 。
0725デフォルトの名無しさん
2013/09/23(月) 16:07:46.170726デフォルトの名無しさん
2013/09/23(月) 16:09:46.620727デフォルトの名無しさん
2013/09/23(月) 16:10:26.870728デフォルトの名無しさん
2013/09/23(月) 16:32:31.17先にゲームで稼いでおいて、軍事用途へスピンオンすりゃいいんだよ
0729デフォルトの名無しさん
2013/09/23(月) 16:34:13.520730デフォルトの名無しさん
2013/09/23(月) 17:38:17.400731デフォルトの名無しさん
2013/09/23(月) 17:49:09.390732デフォルトの名無しさん
2013/09/23(月) 20:12:38.410733デフォルトの名無しさん
2013/09/23(月) 21:20:29.180734デフォルトの名無しさん
2013/09/23(月) 22:54:44.99精密機器をはじめとする組み込み系だと信頼性が重視されるから
ゲームみたいに入り組んだ処理は逆に敬遠したい感じです
組み込みの場合はむしろ物理現象によるハードの外的影響が複雑だったり
0735デフォルトの名無しさん
2013/09/24(火) 01:32:48.43あてにしまくってるから
0736デフォルトの名無しさん
2013/09/24(火) 01:45:17.18自分はゲーム系物理シミュレーションの勉強経験は皆無なので、数学の知識からの
ただの思い付きだけど、衝突判定のあるドットすべてに接線の法線ベクトルの向き
が既定値として登録されていて、ボールの衝突イベントが発生したとき、衝突した
ドットの法線ベクトルと、ボールの直前の運動方向のベクトルを比較すれば、角度
が算出できるので、あとは通常の物理で反発係数による軌道計算すればいいんじゃ
ないかな?
0737デフォルトの名無しさん
2013/09/24(火) 02:04:13.72ハードほど入り組んだ処理を、
今のゲームプログラムでやっているのか? (疑問形。すごいウイザードを知っているので)
おまえゲームのパッドが空気嫁とか、そういう発想ないの?
物理現象(ヒヒヒヒヒ)をうまくドーパミンやエンドルフィンにつなぐのは
おまえらの存在意義だろうが
もう赤土と化した、かつて肥沃な腐葉土のあったところにしがみついてないで、
人を楽しませるという、ある意味医学とでも言うべき仕事に、おまえやる気あるか?
0738デフォルトの名無しさん
2013/09/24(火) 02:15:12.10症状が続くようならば医師の診断を受けて下さい
0739デフォルトの名無しさん
2013/09/24(火) 05:09:38.310740デフォルトの名無しさん
2013/09/24(火) 11:15:02.050741デフォルトの名無しさん
2013/09/24(火) 18:26:04.730742デフォルトの名無しさん
2013/09/24(火) 18:29:42.300743デフォルトの名無しさん
2013/09/24(火) 19:02:27.720744デフォルトの名無しさん
2013/09/24(火) 19:13:40.770745デフォルトの名無しさん
2013/09/24(火) 19:19:07.88根拠は?
0746デフォルトの名無しさん
2013/09/24(火) 19:21:32.720747デフォルトの名無しさん
2013/09/24(火) 21:13:05.070748デフォルトの名無しさん
2013/09/24(火) 21:15:11.200749デフォルトの名無しさん
2013/09/24(火) 21:18:27.08真逆じゃアホ
そのゲーム界の神になるっちゅーことじゃ
おまえのほうが頭がええと思うなら今すぐやれ
カジノの大ボスになれるぞ!!
0750デフォルトの名無しさん
2013/09/24(火) 21:21:47.50ライブラリ使わない仕事だからそこら辺も疎くなるし、そういう一つの仕事しか出来ない奴が威張ると典型的老害プログラマになっていく
0751デフォルトの名無しさん
2013/09/24(火) 21:23:52.930752デフォルトの名無しさん
2013/09/24(火) 22:29:59.45どれほど有能なのか無能なのか知りたい。
0753デフォルトの名無しさん
2013/09/25(水) 09:05:36.19だって俺はゲームプログラマーだからなw
頭良い奴は誰がやっても同じ単純作業の仕事はやらんわ。
バカだったから気付かんかったわw
結構良い大学出たけど、30才でいまだゲームプログラマーやってるとか終わってるわ俺ww
ゲームは趣味で作って小遣い稼ぎが一番いい。
0754デフォルトの名無しさん
2013/09/25(水) 09:11:48.030755デフォルトの名無しさん
2013/09/25(水) 09:47:20.45きみは典型的なゲームプログラマーだねw
数文字のレスでわかるw凄く単純。
キミみたいかタイプは扱い易そうで嫌いじゃないぜ。
0756デフォルトの名無しさん
2013/09/25(水) 11:18:30.05ゲームプログラミングのスレなんだからゲームプログラミングの話をしろ。
>>755
マ板でやれ。
0757デフォルトの名無しさん
2013/09/25(水) 11:55:24.400758デフォルトの名無しさん
2013/09/25(水) 12:56:49.83まあ板違いのお詫びに特別に何でも答えてあげるよ。
ほらプロの技術を聞くチャンスだぜ。
0759デフォルトの名無しさん
2013/09/25(水) 15:03:44.42■モルピグのタイムラグを抑える仕組みのうち最新のものを教えてください。
■モルピグによっては不正防止のため通貨にまでユニークIDを振っているそうですが、
現実の硬貨や紙幣と違って最小の\1単位まで自由に分けられる通貨をどうやって管理しているのでしょうか?
まさか\1単位でIDを割り振っているのでしょうか?
■なぜモルピグは平面座標で判定しているものが多いのでしょうか?
空間座標での判定は難しいのでしょうか?
0760デフォルトの名無しさん
2013/09/25(水) 15:32:35.59ゲームで使える綺麗で速いスキニング方法教えてくれ
ダブルクォータニオンはいまいちだった
0761デフォルトの名無しさん
2013/09/25(水) 16:37:42.76TPSの照準と弾道について教えてくれ。
普通のトカレフで何かを狙って撃ったとき、自分の視点から弾が出るわけじゃなくて銃から出るのにちゃんと当たるのは何でかね。
視点→照準、と平行にトカレフから弾を出せば弾道は視点とトカレフの距離の差そのままずれるから当たらないよね。
トカレフ→照準が合わさってるオブジェクト、にするとオブジェクトが避けたりして当たらなかった場合、オブジェクトより後ろで弾道と視点→照準の距離はどんどんずれるよね。
トカレフ―照準―視点の角度だけ誤差があるわけだから。
この辺りはどうやって調整しているんだ?
0762デフォルトの名無しさん
2013/09/25(水) 16:47:52.84照準ってピストルでも平行だろ
0763デフォルトの名無しさん
2013/09/25(水) 17:17:07.34ピストルは平行でも照準誤差なんて1センチやそこらじゃねーか
TPSなんて1メートルくらいざらにある
0764デフォルトの名無しさん
2013/09/25(水) 18:02:04.29ストリーミング再生を使って、ギャップのないループサウンド再生する方法は?
0765デフォルトの名無しさん
2013/09/25(水) 18:19:48.860766デフォルトの名無しさん
2013/09/25(水) 18:24:04.28今は単に、ストリーミング再生特有の、再生直後のディレイと、
最後まで行って先頭に戻った時に再びあるディレイがあって、ギャップ発生。
0767デフォルトの名無しさん
2013/09/25(水) 18:28:07.78モルピグって初めてきいたわ、MMOのか2ch語か。
しかしなぜ問題形式wまあ試したくなる気持ちも分からんではないけどw
答える気は無くなるな。
>>760
ダブルクォータニオンを使う必要無くない?
モーションデータを再生してねじれ現象が起きるならデータの問題だ、データを修正してもらいなさいw
>>761
視点からの着弾位置を計算して、次に銃口から着弾位置にヒットレイを飛ばせばok!
>>764
なんか問題風だなw
0769デフォルトの名無しさん
2013/09/25(水) 20:15:43.06モーションは何で作ってるんだろうか?
そのソフト上で再生して潰れるモーションなら潰れて正解だよ。
ソフト上でモーションを再生して潰れないデータを作って貰えばok。
0770デフォルトの名無しさん
2013/09/25(水) 20:30:34.880771デフォルトの名無しさん
2013/09/25(水) 20:38:32.350772デフォルトの名無しさん
2013/09/25(水) 20:42:04.360773デフォルトの名無しさん
2013/09/25(水) 20:48:57.660774デフォルトの名無しさん
2013/09/25(水) 20:48:59.86拳銃に照準もクソもねえって
5m か、せいぜい 10m までの距離で重力は無視でき
先制攻撃なら片手撃ち、両手で構えるのは威嚇、
そして標的のほとんどが敵兵ではない特殊用途
0775デフォルトの名無しさん
2013/09/25(水) 20:55:08.38自前のツール(自称売れるレベル)なんで、補間アルゴリズムなら変え放題なんすよ
もちろん次の奴からですけど
ほんじゃ、プロでも未だにリアルタイムのスキニングは線形ブレンドってことですかい?
0776デフォルトの名無しさん
2013/09/25(水) 20:56:36.64射撃場では基本的に照準を使わなければ当たらない。
適当に撃ってあたる距離なら石をぶつけても倒せると思う。
そんな感じ。
照準は凸と凹を合わせた時の形というかバランスで狙う。
距離でこの形を変えるので何度も練習する。
そんな感じ。
0777デフォルトの名無しさん
2013/09/25(水) 21:01:50.08横からだが、2曲を交互に流せば解決するんじゃないか?
0778デフォルトの名無しさん
2013/09/25(水) 21:17:53.18石ぶつけてもって、実際、拳銃はナイフなみの兵器やん
至近距離用で、先に抜いた者が圧倒的に優勢なわけで
シーンが射撃場の場合は全く性格を異にする
その理由が「敵が無抵抗」という点でもナイフと酷似
射撃場での成績は、ナイフなら彫刻の出来ってとこか
0779デフォルトの名無しさん
2013/09/25(水) 21:20:50.40ていうかmp3はその性質上、データそのものにギャップが入ってるだろ常考
0780デフォルトの名無しさん
2013/09/25(水) 21:29:59.01ダブルクォータニオンから スフィリカルデフォームから補完
お前は話し変わりすぎw揚げ足取りたいだけだろw?
まあ2chだしまともに聞いてくるプログラマーなんているわけないなww
0781デフォルトの名無しさん
2013/09/25(水) 21:38:50.05ええっ、全部スキニング(頂点ブレンディング)の話じゃないすか
ほ、本当にプロっすか・・・?
0782デフォルトの名無しさん
2013/09/25(水) 21:41:28.08射撃場ではたいてい前に出られないようにテーブルでフェンスにしてあると思う。
そのテーブルに肘をつけて、まず両目で照準を合わせてみる。
その状態で固定したまま片目をつぶる。
次に、閉じる目を逆にする。
ここで、両目で見たときと同じ位置に照準があったままになっているほうの目が、
照準を合わせる目。
これは人によって違う。
自分がどちらの目で見ているか必ず覚えておく。
0783デフォルトの名無しさん
2013/09/25(水) 21:47:02.420784デフォルトの名無しさん
2013/09/25(水) 21:53:19.28これが別の話に聞こえるんじゃ、プロって言っても携帯電話ゲーっぽいなw
0785デフォルトの名無しさん
2013/09/25(水) 22:03:04.96スフィリカルデフォームってのが知らんかったわw
フリーソフトが勝手につけた名前なんて普通知らんわww
0786デフォルトの名無しさん
2013/09/25(水) 22:09:38.53普通スキニングでダブルクォータニオンなんてつかわねーよww
処理が無駄すぎるんだよ。
スフィリカルデフォームってのもフリーソフト独自の言葉だww
普通は頂点に重みをつけて処理だ。
独学もいいけど基本をもう少し知ったほうが良いだろ。
知ったかは良くないよww
0787デフォルトの名無しさん
2013/09/25(水) 22:10:54.29いやホント、揚げ足取る気は一切無いんで、教えて下さいよ
プロでも未だに線形ブレンディングのままなんでしょうかね?
最近ジオメトリシェーダいじりだして、感動したところなんですが、
ポリ数増えて綺麗になるほど、破綻も気になっちゃいまして
破綻に関しては、モデラーの力量が大きいのも重々承知なんですが、
今時のプログラマ的には、それもどうよっていうですね
0788デフォルトの名無しさん
2013/09/25(水) 22:29:17.38昔から球面線形とエルミート曲線が基本かな。
線形は処理が足りないときに使うぐらいだね。
エルミート曲線はマトリックスを使用して計算ができるから軽い。
バグったデータに合わせてプログラムを変えていくのもありだとは思うよ。
趣味レベルならありかな。
0789デフォルトの名無しさん
2013/09/25(水) 22:38:59.28う、それはモーション部分の姿勢情報の補間方法っすよね
できれば頂点ブレンディングの補間方法を知りたくて・・・
俺の質問の仕方が悪くて誤解を与えてしまい、丁寧なレス貰ったのに大変申し訳無いっす・・・
ありがとうございます
あまり粘ってもしょうがないのでこの辺で失礼します
未だに線形ブレンディングっぽいなと分かっただけでも収穫でした
0790デフォルトの名無しさん
2013/09/25(水) 22:47:50.71頂点の重みってわかる?
多分ダブルクォータニオンを使用してる時点でわからんと思うけど。
まあ昔からかわらんね。
変わったのはシェイダーで処理するようになったぐらいか。
0791デフォルトの名無しさん
2013/09/25(水) 22:54:44.12試しに一般的な重み付き頂点ブレンドの方法言ってみ?一行でかけるだろ。
0792デフォルトの名無しさん
2013/09/25(水) 23:01:49.66それはモーション補間ね
揚げ足取らせてやったんだよw空気嫁ww
いちいち面倒な奴だな。
ググればいくらでも出ること書いてほしいのか?w
ほんとプログラマーはつつくの好きだねw
0793デフォルトの名無しさん
2013/09/25(水) 23:12:29.04・・・心底同情するわ。とんだ自称プロだな。
俺の知っている限りで悪いけど、未だに頂点ブレンドは線形だと思う。重みの和の平均を取る奴ね。
スフィリカルブレンド等の弱点をである膨らみを是正する方法はあるから、調べてみるといいよ。
ただし影響を与えるボーン数は制限されたけど。2つまでだったかな。
0794デフォルトの名無しさん
2013/09/25(水) 23:15:42.90とりあえず嘘書くなよ。
ここはレベル低いね・・・
0795デフォルトの名無しさん
2013/09/26(木) 00:09:44.85実は途中から諦めてましたが、そのうち識者が参加してくれるかなと
もしかしたらその方法のサイトみたことあるかも知れないっす
もう一度調べてみます、丁寧なレスありがとうございました
確かそれ、レジスタ数が足りなくて断念した記憶があるのですが、
最近SM4.0にターゲットを変えたお陰で、色々楽しめそうっす
0796デフォルトの名無しさん
2013/09/26(木) 00:11:54.700797デフォルトの名無しさん
2013/09/26(木) 00:31:40.040798デフォルトの名無しさん
2013/09/26(木) 01:24:32.05なんかいい方法ないかな
0799デフォルトの名無しさん
2013/09/26(木) 17:03:16.77自分がスプライトとしてこの関数はマウスカーソルが自分の枠内にいた時だけ呼ばれますか、
それとも画面全体でクリックしたら常に呼ばれますか
0800デフォルトの名無しさん
2013/09/26(木) 17:53:47.080801デフォルトの名無しさん
2013/09/26(木) 18:09:39.310802デフォルトの名無しさん
2013/09/26(木) 18:47:02.38OnMouseClicked(intx int y)はコンポーネントにあります
自分の枠内にカーソルがある時だけ呼ばれるためには「形状」が定義されている必要があってめんどくさい
それならいっそ画面全部で共通で全コンポーネントで OnMouseClicked(int x, int y)が呼ばれるようにしたら?
どっちがいいでしょうか
0803デフォルトの名無しさん
2013/09/26(木) 20:06:48.91OnMouseClickedの中がif文だらけになって分量が増えるのを厭わないというのであれば、好きにすればいいんじゃね。
javaだとそれ用にglass paneが用意されてたりする。
0804デフォルトの名無しさん
2013/09/26(木) 20:27:24.440805デフォルトの名無しさん
2013/09/26(木) 22:12:56.650806デフォルトの名無しさん
2013/09/27(金) 00:34:38.12自国にはプログラマ向け掲示板ないんですか?
0807デフォルトの名無しさん
2013/09/28(土) 17:56:06.1016.6ミリ秒ごとに描くんだけど
画面と同期するの方法?
0808デフォルトの名無しさん
2013/09/28(土) 18:02:31.070809デフォルトの名無しさん
2013/09/28(土) 20:21:04.530810デフォルトの名無しさん
2013/09/28(土) 21:32:12.99あるね
デフォだと勝手に同期とってた気が
0811デフォルトの名無しさん
2013/09/28(土) 21:37:29.65我が国の消費者にとって良いモノを作る人は国籍がどこでも
仕事とられる日本人こそ甘いんだから
0812デフォルトの名無しさん
2013/09/28(土) 21:50:04.89単価が10倍違うからこればかりはどうしようもない。
0813デフォルトの名無しさん
2013/09/28(土) 21:56:13.35次の商談にそれは反映されているのかね
カップラーメンに線量計あててビクーリする人が少なすぎる
我が国の国民性・・・
# 線量計もってなくても乾燥肉の味わかんね?
0814デフォルトの名無しさん
2013/09/28(土) 22:23:06.670815デフォルトの名無しさん
2013/09/28(土) 22:28:07.14たとえば飛行機海苔とPGってどう違うのか疑問でね
特にクレカだのクルマだのさあ、おめーらも金とってんだろ?
0816デフォルトの名無しさん
2013/09/28(土) 22:39:17.09どこの国の人ですか?
0817デフォルトの名無しさん
2013/09/28(土) 23:43:31.320818デフォルトの名無しさん
2013/09/29(日) 02:06:20.890819デフォルトの名無しさん
2013/09/29(日) 02:11:39.55領土問題は、汚物を消毒してから議論すべき問題だ
0820デフォルトの名無しさん
2013/09/29(日) 02:50:34.500821デフォルトの名無しさん
2013/09/29(日) 02:54:47.53隠蔽体質は国家破綻しなきゃ直らない
# もうスレチだから他いこうぜ
この問題についてでもいいんだが技術的に話そうぜ
#include <locale>
0822デフォルトの名無しさん
2013/09/29(日) 17:51:05.130823デフォルトの名無しさん
2013/09/30(月) 00:31:38.990824デフォルトの名無しさん
2013/09/30(月) 00:48:12.24do{ 〜 }while(0); はたまーにやる
0825デフォルトの名無しさん
2013/09/30(月) 04:21:27.92なるほど
最後のセミコロンで無意味になっていないか?
0827デフォルトの名無しさん
2013/09/30(月) 07:12:53.94セミコロン以外に何を書くんだ?
0828デフォルトの名無しさん
2013/09/30(月) 07:35:53.270829デフォルトの名無しさん
2013/09/30(月) 10:55:04.250830デフォルトの名無しさん
2013/09/30(月) 10:56:26.920831デフォルトの名無しさん
2013/09/30(月) 12:50:12.80これの意味が分からないw
よくあるマクロだと最後に;つけるとムダになるからつけないとかいう話はもちろんあるが、
無意味になるとは意味が分からない
0832デフォルトの名無しさん
2013/09/30(月) 13:24:20.72無駄になるとかいう話じゃないべ
0833デフォルトの名無しさん
2013/10/01(火) 00:28:50.55{
〜
}
ならたまにやって泣く
0834デフォルトの名無しさん
2013/10/01(火) 01:06:23.05怪物クラス、1つだけで実装するのか、
怪物クラスから、アメーバ、竜、ゾンビなど、
10-20くらいに分類して、子クラスを派生させるのか、
100全部、派生クラスを作るのか
皆さんは、いくつぐらい、派生クラスを作りますか?
0835デフォルトの名無しさん
2013/10/01(火) 01:31:34.26824 名前: デフォルトの名無しさん [sage] 投稿日: 2013/09/30(月) 00:48:12.24
>>823
do{ 〜 }while(0); はたまーにやる
826 名前: ◆QZaw55cn4c [sage] 投稿日: 2013/09/30(月) 06:17:05.95
>>824
最後のセミコロンで無意味になっていないか?
0836デフォルトの名無しさん
2013/10/01(火) 01:42:14.840837デフォルトの名無しさん
2013/10/01(火) 02:05:12.34開きブレースをforの行末に置くか、インデントしたら?
俺は関数の頭以外のブレースは左に付けないな
0838デフォルトの名無しさん
2013/10/01(火) 05:37:25.63怪物クラス1つだけで実装する
全部のクラスで派生していたら継承ツリーが爆発するから普通やらない
0839デフォルトの名無しさん
2013/10/01(火) 07:19:35.87継承して全部別クラスにする。
インスタンスを作る側のソースが明示的になるし、後々の変更箇所も個々の怪物内で完結するからツリーが爆発しようとそっちの方が結果的にきれい。
0841デフォルトの名無しさん
2013/10/01(火) 10:16:56.83アクセッサで処理したらええんとちがう?
0842デフォルトの名無しさん
2013/10/01(火) 10:17:41.510843デフォルトの名無しさん
2013/10/01(火) 10:19:28.890844デフォルトの名無しさん
2013/10/01(火) 11:40:31.22行末より見た目は分かりやすいんだよな
インデントはなんのことか分からん
0845デフォルトの名無しさん
2013/10/01(火) 17:47:40.190846デフォルトの名無しさん
2013/10/01(火) 19:49:30.17?
do whileは文でつよ?文は式の一部にはなれないんでつよ??
0847デフォルトの名無しさん
2013/10/01(火) 23:00:49.010848834
2013/10/02(水) 03:11:52.17その値で、if、switchなどで分岐しますよね
その分岐が膨大な数に、なりませんか?
IDが、1-10はアメーバ、11-20は竜、21-30はゾンビなど、
系列ごとに決めて、またその中で、個別の怪物で分岐する?
複雑そうです
それと、怪物クラスの数やデータが変わっても、
再コンパイルせずに、設定ファイルから、怪物クラスを読み込むには、
Luaを使いますか?それともXML?
0849デフォルトの名無しさん
2013/10/02(水) 08:29:17.300850デフォルトの名無しさん
2013/10/02(水) 08:50:42.66どういうゲームを想定してるか分からんからなんとも言えないな
そもそも固有の処理が必要なの?RPGなんかだと攻撃力なんかのパラメーターがかわるだけで
ほとんどの処理が共通の気がするけど。分岐する必要がないくらいに
あと普通はIDとは別に種別を持たせてそっちで判別することになると思うけど
0851デフォルトの名無しさん
2013/10/02(水) 09:18:30.81あと、どうしても種類に個別な処理をさせたいなら、
手続きをコマンドオブジェクトとかdelegateとか使って単にパラメータ化して扱えばいい。
もちろん、そういう小規模な扱いで十分なのならだけど。
0852838
2013/10/02(水) 09:39:45.84外から注入する方式で。
ただ多少規模が大きくなるけど一番良いのは「ゲームオブジェクト - コンポーネントモデル」。
怪物の種類に応じてAIコンポーネントを作ってそれをゲームオブジェクトにアタッチできるようにしておくこと。
これだとどんな機能でも再コンパイルなしで機能を追加できる
一部の言語で(クラスではなく)インスタンスにメソッドを
ゲームを作るのにオブジェクト指向は向いてないです
0853デフォルトの名無しさん
2013/10/02(水) 10:50:58.700854デフォルトの名無しさん
2013/10/02(水) 11:06:46.82オブジェクト指向にもコレだ!と言える抜け道が必要なのだ
0855デフォルトの名無しさん
2013/10/02(水) 15:13:14.810856デフォルトの名無しさん
2013/10/02(水) 23:10:43.21向いてるのはシーン遷移くらいだね。
0857デフォルトの名無しさん
2013/10/02(水) 23:40:16.86上で出ているように問題は"ゲームオブジェクト"と"C++のオブジェクト(クラス)"が1:1に対応しない事。
継承ツリーによる問題の細分化が不可能なこと
うっかりすると継承が10段あってクラスが100個あるような巨大ツリーを作って地獄を見るけど、それは非常に間違えている
基底クラスの変更が全体に影響し変更コストは非常に高い
上で言ったゲームオブジェクト-コンポーネントモデルなら
ゲーム全体でクラスの継承は2-3段もあれば十分作れて変更も容易
0858デフォルトの名無しさん
2013/10/03(木) 00:26:15.33ろくに書けないから文句言っているだけに見える
というかゲームオブジェクトコンポーネントモデルって何だ
アスペクト指向のことか?
0859デフォルトの名無しさん
2013/10/03(木) 00:42:24.70適当に用語を口走っている可能性が……
0860デフォルトの名無しさん
2013/10/03(木) 00:44:37.93オブジェクト指向を捉えているのなら、それって全然オブジェクト指向じゃなくて
ただの手続指向じゃないかと。
0861デフォルトの名無しさん
2013/10/03(木) 00:50:17.16そのサブルーチンにAIをパラメーターとして与えるというイメージで語っているんじゃまいか。
0862834
2013/10/03(木) 02:02:07.56自分でツクールを作るのと、同じような気がしてきました
それと、怪物、カード、アイテムの整理などに、
SQLiteなどのDBを使いますか?
0863デフォルトの名無しさん
2013/10/03(木) 02:05:07.56これが解答
0864デフォルトの名無しさん
2013/10/03(木) 02:43:56.170865デフォルトの名無しさん
2013/10/03(木) 02:48:25.420866デフォルトの名無しさん
2013/10/03(木) 04:04:36.34スマン、834と838を間違えてたわ。
0867デフォルトの名無しさん
2013/10/03(木) 04:40:02.360868デフォルトの名無しさん
2013/10/03(木) 06:46:42.07例えばGNUのインデントスタイルみたいな感じ、まあ見た目は悪いがw
0869デフォルトの名無しさん
2013/10/03(木) 07:55:24.57ゲームの仕様次第だけど、ネトゲ以外は普通DBを使わない
怪物やアイテムの種類数がゲーム中に増減したりしないから
0870デフォルトの名無しさん
2013/10/03(木) 08:02:50.21うっかりセミコロンが紛れてるのが問題なので、GNUのインデントスタイルにしても
解決しないような
セミコロンが目立つようになるわけじゃないし
0871デフォルトの名無しさん
2013/10/03(木) 08:30:21.72構造体の配列はそれは実際にカード型データベースだ。
配列で不都合ならリンクリストでも set でも map でも unordered_map でも必要なものを使えばいい。
sqlite とかはデータベースではあるけど DBMS と言わないと話が混乱する。
データベースを持たないゲームはかなり少ないし、DBMS を使用するゲームもかなり少ない。
ゲーム内ではなく開発時のデータ作成の話なら、Excel でも LAMP でもテキストファイルでも好きなのを使えばいい。
0872デフォルトの名無しさん
2013/10/03(木) 10:08:26.780873デフォルトの名無しさん
2013/10/03(木) 11:19:46.67されどゲームプログラミング
0874デフォルトの名無しさん
2013/10/03(木) 12:38:15.69実態はともかく、構造体の配列を指して「DB」って言う人はいないから
混乱はしないだろ
0875デフォルトの名無しさん
2013/10/03(木) 23:25:38.32871に貴重なサンプルがいるだろ
0876デフォルトの名無しさん
2013/10/04(金) 01:19:29.810877834
2013/10/04(金) 04:06:38.74一般的に、大規模なシステムは、継承の階層を深くせず、
is-a(継承)よりも、have-a(実装、委譲、部品化)で設計します
その2者間で、どのようなクラス階層を構築すべきか、迷います
例えば、自分のアイデアと、オブジェクト指向が一致しないのです
ドラゴンゾンビが、竜クラスとゾンビクラスのどちらに属するのか?
両方のクラスを継承するのは、複雑すぎてムリ
ならば、竜とゾンビをインターフェースにして、両者を実装する?
もちろん、AI(戦略)をパラメーターで渡すなら、
単体攻撃、3:様子をみている、13:かみつく、28:踏みつぶす、721:毒
全体攻撃、414:泡、426:ブレス、821:毒
(3、13+721、28) (414+821、426+821)
どれが、竜クラスの攻撃か、ゾンビクラスの攻撃か、わからなくなってくる
あまり厳密に、継承を考えないほうが良さそうです。複雑すぎる
0878デフォルトの名無しさん
2013/10/04(金) 04:35:25.73それは別次元のものを同次元に並べて考えている段階で無理がでる。
竜とか人型(ヒューマノイド)で分けるのがクラス。
だからドラゴンゾンビはあくまでも竜族。
ゾンビをクラス(種族)として捉えるのはオブジェクト指向じゃない。
ゾンビ(アンデッド)はあくまでも一種のステータス(状態)。
ステータスはhas-aの対象でしょ。
既出のようにどちらかというとコントラクトの一種で、アスペクト指向の次元に属する話題だね。
0879デフォルトの名無しさん
2013/10/04(金) 07:50:26.72そのドラゴンゾンビというのは、あくまで人間が分かりやすいように決めた単なる「名前」でしょ?
名が体を表しているかどうかは、名付け親のセンスであって、本質ではない。
そのドラゴンゾンビと名付けられたモノが、実際にどのようなどのような能力を持ち、
どのような行動をし、どのように生息しているか。
そういう仕様を事細かに洗い出して決定するのが先決。
そして全てのキャラに対してそのような仕様を決める。
(後で追加するにしても、とりあえず今の時点で出ている全キャラについて決める)
それから、実装方法について考える。
それらの仕様は分類すると竜のものなのかゾンビなのか、他のものなのか。
分類したものはクラスの継承で表すのか、それともコンポーネントのアタッチなのか。
>>877 はどうも仕様を考える前に、クラスの有り様を考え、
それに合わせて仕様を考えようとしているように見えてならない。
0880デフォルトの名無しさん
2013/10/04(金) 09:11:46.82// シーンノードの作成
var dragon = new Node("DragonZombie");
// コンポーネントの追加
dragon.Attach (new DragonBehavior()); // 動作
dragon.Attach (new Sprite()); // 表示
dragon.Attach (new Collision()); // 衝突判定
dragon.Attach (以下略);
// パラメーター調整
var cmp = dragon.GetComponent<DragonBehavior>();
cmp.IsDead = true;
ただこういうフレームワークから全部自作すると大変なので、
何かのゲームエンジンを使った方が良いと思う
上のコードは俺エンジンで書くとこうなるという例
0881デフォルトの名無しさん
2013/10/04(金) 09:36:52.850882デフォルトの名無しさん
2013/10/04(金) 14:53:48.54>竜とゾンビをインターフェースにして、両者を実装
ありえんwww
0883デフォルトの名無しさん
2013/10/04(金) 15:10:58.24AIだけ差し替えるでFA
0884デフォルトの名無しさん
2013/10/04(金) 15:35:19.79でおk。変数名や与えるパラメータで表現すべきことを、
クラス名で表現しようとしてカチカチウンコの継承ツリーを背負うことになる。
0885デフォルトの名無しさん
2013/10/04(金) 17:12:13.37お前が軽い気持ちで立てたスレも今ではこうやって議論が行われるスレになってるんだぞ
0886デフォルトの名無しさん
2013/10/04(金) 20:06:07.39MOSTERDATABASE g_monsDB[64];
とか構造体名や変数名に入れることもあるw
CSVファイルもDBって言うことあるw
0887デフォルトの名無しさん
2013/10/04(金) 22:00:50.25モンスターの王様とウザさ最高峰のゾンビじゃね
0888834
2013/10/05(土) 08:40:19.96ドラゴンゾンビは、両者の特徴を持っています
ただ、そのアイデアがオブジェクト指向で表しにくい
A+B=ABなら単純ですが、進化してABCになっている
(または、特徴が減ることもある)
あまり継承を考えず、ゆるやかな分類だけにしておきます
ところで、キャラの魔法ダメージの計算式で、
デフォルトが100%で、ダメージ、小<100<大
0以下マイナスで、逆に魔法を吸収すると、考えていますが、
画面には、魔法防御力で表示したほうが分かりやすい
デフォルトが100%で、防御力0以上のみ、小<100<大で、
ダメージは逆に、大<100<小となるが、
魔法吸収を表現できません。どうすべきか
ちなみに、D&Dの影響で、ウィザードリィは、
AC(アーマークラス)のデフォルトが10で、
ACが小さいほど(マイナスもある)、防御力が高い
これは、アメリカ人にはおなじみだが、
ドラクエからRPGを始めた、日本人にはわかりにくい
0889デフォルトの名無しさん
2013/10/05(土) 08:51:14.89> A+B=ABなら単純ですが、進化してABCになっている
そういう時に使うのがコンポーネントの考え方だと思う
0890デフォルトの名無しさん
2013/10/05(土) 09:03:05.64派生クラスBlessAttack、PoisonAttackを作って仮想関数の実装だな
モンスタークラスは自分の攻撃手段をインスタンス化して持っておけばOK
ただこれが(十分だとは思うが)ベストかと言われるとそうでもない
例えば攻撃には武器が必要で攻撃力によって威力が変わるとき
現在装備している本体が持つウェポン情報にAttackBaseからアクセスする必要がある。
この参照は本質的に必要かと言われると必要ではなく、ない方がベスト
また攻撃だけでなく同様の仕組みを他にも適応すると
すぐにクラスが爆発して参照が入り乱れる
規模が小さいときはそれで良いけど大きいときはコンポーネントモデルの方がいい
0891デフォルトの名無しさん
2013/10/05(土) 10:05:49.16■ゲームに登場するすべての攻撃のタイプ、IDで管理
0・・・ブレス
1・・・毒
2・・・以下略
■攻撃クラス
class ACTIONCLASS{
int ダメージの計算処理();
int エフェクトアニメーションのクラス();
etc
};
■モンスタークラス
class MONSTERCLASS{
char *モンスター名;
int *acttype;
int actnum;
int グラフィックID;
etc
};
これでactunmに2入れてacttypeに領域確保して、
攻撃のタイプIDを入れればいいんでないの
acttype[0]=0;
acttype[1]=1;
0892デフォルトの名無しさん
2013/10/05(土) 10:17:29.59毒状態にする攻撃とか範囲攻撃とか攻撃時のアニメような特徴を
それぞれスキルオブジェクトに追加していくのが得策
0893デフォルトの名無しさん
2013/10/05(土) 10:37:02.18ActionClassの配列を(MonsterClassの下にではなく)別途一カ所にまとめて保存しておくメリットがない
あとActionClassから呼び出し元の情報にアクセスしたい事は普通にある
0894デフォルトの名無しさん
2013/10/05(土) 12:30:01.17> ただ、そのアイデアがオブジェクト指向で表しにくい
それを表現するのが目的ならガンガンクラスを作ればいいし、竜やゾンビの振る舞いや、毒の効果を委譲かなんかで実装して合成クラスを作ればいい。
そういうルールのゲームを作るのが目的なら、それを表現できるフレームワークを作るべき。そのフレームワークを作るにはオブジェクト指向は向いているだろう。
だいたい、そういうのをハードコーディングすると、少し変更してまたテストプレイ、というサイクルを回すのに毎回リビルドが必要になってだるい。
クロス開発の時にはリビルド&再実行の時間が長くなりがちだから、スマホとかコンシューマだと特にだるい。
で、外部データファイルに記述するようにして、ボタン一発でリロードしてやり直せるようにする。
今出てる程度の話だと、
struct Attack {
const char * name;
int damage;
enum TargetType target; // 単体/グループ/全体/etc...
struct AdditionalEffect { enum Effect effect; float rate; };//特殊効果と発動率
std::vector< AdditionalEffect > additionalEffects;
};
struct Monster {
const char * name;
unsigned int hp;
struct AttackPattern { Attack attack; float rate; }
std::vector<AttackPattern> attackPatterns;
};
くらいで十分ではないだろうか。
毒ブレスでも十分に表現できる。
攻撃対象選択とか特殊効果なんかは id じゃなくて委譲の方がすっきりするだろうけど、外部データはこんな感じだろう。
でもまあ、どうせ後で色々仕様変更していくと、きれいに表現できない例外が出てくるんだけどね。
0895デフォルトの名無しさん
2013/10/05(土) 12:30:50.460896デフォルトの名無しさん
2013/10/05(土) 12:58:40.980897デフォルトの名無しさん
2013/10/06(日) 22:59:20.020898デフォルトの名無しさん
2013/10/06(日) 23:03:17.99ドンッ!
0899デフォルトの名無しさん
2013/10/06(日) 23:41:11.42Destroy(gameObject, 10);
で、10フレームあとに削除。その間はシーンにそのまま有効なまま存在。
この10フレームの間は無効化した方がいいのだろうか
例えばこの間は更新処理と描画処理はストップするとか・・・
0900デフォルトの名無しさん
2013/10/07(月) 00:07:23.36それが有益なタイプのゲームもある。
ボーナスアイテム(フルーツとか旗とか)が画面に出て、数秒後に消えるとか、
なにかトリガー(それに敵が接触したとか)があってから数秒後に消えるとか、
そういう仕様だと Destroy(gameObject, 10) という仕組みも理にかなっている。
これはゲームオブジェクトのライフタイムの話だから、
更新処理はどうするか描画処理はどうするかという話とは切り離して考えるのが普通。
更新してもいいし、続けて描画してもいいし、しなくてもいいし。
0901デフォルトの名無しさん
2013/10/07(月) 01:37:00.00時間単位じゃないの?
0902デフォルトの名無しさん
2013/10/07(月) 01:42:35.320903デフォルトの名無しさん
2013/10/07(月) 01:53:54.020904デフォルトの名無しさん
2013/10/07(月) 07:13:24.910905デフォルトの名無しさん
2013/10/07(月) 08:41:12.610906899
2013/10/07(月) 08:51:39.24オブジェクトのライフタイムはDestroy()の仕様とは無関係
安全にオブジェクトを削除するためには猶予期間を置いた方がいいのかどうかが質問の意図
そしてその猶予期間のオブジェクトはどうあるべきか
完全に有効なままシーンに置いておくのか、一部機能を制限して見えないようにしておくのか・・・
どういう仕様がいいのだろうか
0907デフォルトの名無しさん
2013/10/07(月) 09:04:42.22そんな重要なテーマではない。
自分がしたいようにすればいいだけ。
問題はいつも、生存期間をこっちが完全に把握し、
見通しよく運用できているかどうかだけ。
0908デフォルトの名無しさん
2013/10/07(月) 10:50:55.62■描画のフレームレート
■処理のフレームレート
■両方のフレームレート
のどれかを明記してください
0909900
2013/10/07(月) 12:34:14.09完全に取り違えてたな、すまなかった。
ただ、できることなら
「安全にオブジェクトを削除するためには猶予期間を置いた方がいいのかどうか」
これを初めに言って欲しかった。
なんとなく俺がバカみたいだ。
0910デフォルトの名無しさん
2013/10/07(月) 12:48:29.70確実性を求めるなら、猶予期間ナシで削除できる仕組みにすべき
どうせ個人だしテキトーでいいよとか、開発終盤でもうどうしようもないよってのなら
遅らせてごまかすのもアリ
0911899
2013/10/07(月) 13:05:20.52確かにミサイルとか10秒後に自爆は普通にあり得る
もともと即座にオブジェクトを消すといろいろ不都合があったので
1フレーム遅らせて削除する仕組みを作ろうとしたら、何も1フレームに限定する必要なくね、
その期間中のオブジェクトは通常通り有効なオブジェクトのまま保存するか、
シーンから取り除いて別に保存しておくべきか、あるいはetcと考えて質問した見ました
取りあえず実装してみたけど変更は用意なので、
Destroy (gameObject, time);
にしてtime時間後にフレームの最後で削除、その期間中は普通に有効のままにしよう
ありがとうございました
0912899
2013/10/07(月) 13:11:21.44まだ生きてるし
0913デフォルトの名無しさん
2013/10/07(月) 15:00:45.93907の回答で十分だとは思うが、例えば即座に削除できない場合の
例としては、描画エンジンが必要とするからというのが挙げられるだろう。
この場合、例えばスマートポインタを使うことで、所有権の管理ができる。
元々の所有者がまずあり、描画エンジンに描画を依頼する。
この時、双方が所有権を共有する。
描画エンジンは、描画に必要無くなれば所有権を放棄する。
全ての所有者が放棄した時に、実際に破棄される。
元々の所有者が放棄したが、描画エンジンが必要としている場合、
描画エンジンがそのオブジェクトを必要としなくなった時点で全ての
所有権者がいなくなり、破棄される。
他にも色々な実装例があるけど、ともかく、不要になったら消していいけど、
必要なうちは消しちゃダメ、って時に、要不要をちゃんと判断しないといけない。
10 フレームがどういう根拠でその数字が出てきたのか分からない。
根拠がないならダメ。
その上で、899 にあるように、削除予約の状態にあるオブジェクトは
生きているけど更新と描画を行わないというのはよくある実装。
0914デフォルトの名無しさん
2013/10/07(月) 17:05:07.81参照カウントすれば確実なのに
0915デフォルトの名無しさん
2013/10/07(月) 18:02:37.59墓場クラス埋葬メソッドとか、
そういう、有機的な発想を設計にもちこむよりは、
従来の、リストに追加、削除といったシンプルないつもの方法で表現したほうが単にスッキリ。
0916デフォルトの名無しさん
2013/10/07(月) 18:29:17.02遊戯王カードゲームやると
墓地はリソースで、どんどん墓地に落としたほうが有利だとか思うようになるぜw
0917デフォルトの名無しさん
2013/10/07(月) 18:56:33.42参照カウントなどという負け犬思考の実装は不可
誰が誰を参照しているかはプログラマーがきちんと管理すればいい話
0918デフォルトの名無しさん
2013/10/07(月) 19:12:10.15おまえマルチスレッドで作ったことないだろ
0919デフォルトの名無しさん
2013/10/07(月) 19:34:34.79お前よりも負け犬の方が遥かに役立つ
お前は負け犬以下だよ
0920デフォルトの名無しさん
2013/10/07(月) 19:37:56.50それは言い切るとは漢。気持ちいいね。
>>918
C++, Java, C#で色々なものをマルチスレッドで作った来たけど、
マルチスレッドの場合最大の関心事は同期。結局はそれだけ。
参照カウントに手が伸びちゃうようなときって、多分参照の管理が入り組んでるんだろうな。
ウンコしといて消臭剤ぶっかけるが如し。
0921デフォルトの名無しさん
2013/10/07(月) 19:45:56.31せっかくの機会なので質問させてください。
参照カウントを使わず、どう参照しているかをプログラマが把握しておく方針の場合、
実際にちゃんと問題なく意図通りに参照されいているかというのはどうテストしてるのでしょうか?
0922デフォルトの名無しさん
2013/10/07(月) 21:00:56.650923デフォルトの名無しさん
2013/10/07(月) 21:05:10.74また宗教戦争でも始めるつもりか?
0924デフォルトの名無しさん
2013/10/07(月) 21:08:29.18もう勝手にしやがれ
0925デフォルトの名無しさん
2013/10/07(月) 21:42:47.58コンシューマは無視か
0926デフォルトの名無しさん
2013/10/07(月) 22:18:03.770927デフォルトの名無しさん
2013/10/07(月) 23:01:28.44以下の話題は宗教戦争になるので自粛してください
タスクシステム
フレームレート
マルチスレッド
参照カウント
0928デフォルトの名無しさん
2013/10/07(月) 23:02:27.690929デフォルトの名無しさん
2013/10/07(月) 23:04:27.340930デフォルトの名無しさん
2013/10/08(火) 00:07:48.08実際使う量の倍以上メモリがあるなら気にしなくてもどうにかなる
カツカツの場合、確保や解放のタイミングが限られてくるから断片化はやはり気にしなくておk
0931デフォルトの名無しさん
2013/10/08(火) 09:57:07.410932デフォルトの名無しさん
2013/10/08(火) 10:21:38.040933デフォルトの名無しさん
2013/10/08(火) 10:52:36.220934デフォルトの名無しさん
2013/10/08(火) 11:01:16.830935デフォルトの名無しさん
2013/10/08(火) 12:05:40.79おまえらスマポ使わないわけ?
0936デフォルトの名無しさん
2013/10/08(火) 12:53:29.330937デフォルトの名無しさん
2013/10/08(火) 15:47:01.230938デフォルトの名無しさん
2013/10/08(火) 16:49:18.610939デフォルトの名無しさん
2013/10/08(火) 17:19:11.79テーレーレーレレレ
テーレーレーレーレレー
ガチャン
ピロリッ
ブーッブーッブーッ
0940デフォルトの名無しさん
2013/10/10(木) 11:56:37.100941デフォルトの名無しさん
2013/10/10(木) 12:48:36.820942デフォルトの名無しさん
2013/10/10(木) 14:56:23.040943デフォルトの名無しさん
2013/10/10(木) 16:07:31.980944うらま☆
2013/10/10(木) 23:22:38.100945デフォルトの名無しさん
2013/10/11(金) 00:20:12.49ナマポもやっぱ必要だしとか混ぜると途端に面倒になるからもうナマポでいいじゃんってなる
0946デフォルトの名無しさん
2013/10/11(金) 12:41:26.87マウスがクリックされたら動作するやつとか、
C系ならゲームループの中でマウスクリックを検出してそのフレームに反映させられるけど、
Java系だとマウスクリックされた瞬間にフレームとか関係なくいきなり関数が発動するだろ。
0947デフォルトの名無しさん
2013/10/11(金) 12:49:29.26.Netだけど一度キーバッファーに全部格納して
後で自分の好きなように使ってる
0948デフォルトの名無しさん
2013/10/11(金) 18:17:40.41方向キーで移動できるようにしたいのですが……
0949デフォルトの名無しさん
2013/10/11(金) 18:21:27.46何この話?
フラグ使えばいいだけの話じゃないのか?
0950デフォルトの名無しさん
2013/10/11(金) 19:12:06.62正解
0951デフォルトの名無しさん
2013/10/11(金) 19:13:16.800952デフォルトの名無しさん
2013/10/11(金) 19:16:29.87fromeventdispatchthread.enqueue(e)
0953デフォルトの名無しさん
2013/10/11(金) 20:39:09.150954デフォルトの名無しさん
2013/10/11(金) 21:53:47.77ダブルバッファにしておけば排他制御もシステムだけでよくなる
0955デフォルトの名無しさん
2013/10/11(金) 21:58:57.56アニメーション効果のあまりないオセロやマインスイーパータイプしか思い付かん
0956デフォルトの名無しさん
2013/10/11(金) 22:07:49.82そこには単に、イベントディスパッチスレッドと、
ゲームループが走ってるスレッドが対等な関係であるだけなのに。
0957デフォルトの名無しさん
2013/10/11(金) 22:09:08.600958デフォルトの名無しさん
2013/10/11(金) 22:13:59.780959デフォルトの名無しさん
2013/10/11(金) 23:36:58.800960ゲームプログラムなら俺に聞け29
2013/10/12(土) 00:46:17.88なんでも聞いてちょ
【前スレ】
ゲームプログラムなら俺に聞け28
http://toro.2ch.net/test/read.cgi/tech/1366526476/
次スレは>>950が立てること。
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0961デフォルトの名無しさん
2013/10/12(土) 00:54:35.50今はそんなにペース速くないから、>>980くらいで良くね?
0962デフォルトの名無しさん
2013/10/12(土) 02:30:22.47970あたりで立てておいた方が安全じゃね?
0963デフォルトの名無しさん
2013/10/12(土) 02:44:17.36そうなんだ。
じゃ970にして、テンプレも「>>970が立てること。」にしておくということで、どう?
0964デフォルトの名無しさん
2013/10/12(土) 02:58:58.60>>970はがんばれ
0965デフォルトの名無しさん
2013/10/12(土) 04:48:11.81俺ならHTMLのテーブルに倣うかな。
テーブルのセルの結合に使われるcolspanやrowspan。
二次元配列の各セルにそういうフラグを持たせて、処理や描画のときに参照する。
struct MAP{
int tip;
int colspan,rowspan;
};
MAP mymap[100][100];
描画のときとかはforで回してると思うけど、例えばcolspanが4なら4セル分の大きさのセルを描いて、後の3セルをスキップ。
rowspanがちょっと面倒だけど縦方向のスキップを数えるフラグ立てながらやれば何とかいけるだろ。
for内でフラグ立てながらやるのが面倒なら構造体の中のcolspanとrowspanをそれぞれ1がデフォルトってことにして、
0ならスキップというルールにしてもいい。
これなら結合時に値をセットしておける。
0966デフォルトの名無しさん
2013/10/12(土) 07:44:43.93それと1行目のセルの結合(はあ?)がまったく関係していないところが凄い
セルの結合とか何言ってるんだと思う
0967デフォルトの名無しさん
2013/10/12(土) 09:46:59.18プログラマや技術屋からは出てこない発想だよなw
まぁ、人は正規化のみに生きるにあらずなんだろうけど。
0968デフォルトの名無しさん
2013/10/12(土) 10:23:03.630969デフォルトの名無しさん
2013/10/12(土) 11:15:30.620970デフォルトの名無しさん
2013/10/12(土) 12:19:01.55ついてはすみやかに >>950 は次スレを建て、障害を取り除いて下さい
0971デフォルトの名無しさん
2013/10/12(土) 16:27:48.99セル結合ってのは表なら普通にある発想では
0972デフォルトの名無しさん
2013/10/12(土) 17:42:15.200973デフォルトの名無しさん
2013/10/12(土) 17:50:26.500974デフォルトの名無しさん
2013/10/12(土) 17:57:08.930975デフォルトの名無しさん
2013/10/12(土) 18:17:36.29ありがとうございます。
なんとか上手いこと実装できそうです。
0976デフォルトの名無しさん
2013/10/12(土) 18:29:59.27実装しない方が良い。間違えた方向に努力するのは時間の無駄
タイルマップで例えば2x2のタイルがあったら、それは4つに分割して描画するのが基本
0977デフォルトの名無しさん
2013/10/12(土) 19:04:04.33結合せずにグループ化で対応できないかね?
0978デフォルトの名無しさん
2013/10/12(土) 19:32:59.98二次元配列こそがうつくしす
0979デフォルトの名無しさん
2013/10/12(土) 19:55:12.360980デフォルトの名無しさん
2013/10/12(土) 20:09:56.42スパース行列みたいにしたり、リストにしたりするより結局シンプルだと思う。
エクセルとかも行と列に限界決めてたはず。
0981デフォルトの名無しさん
2013/10/12(土) 20:43:22.61ゲームプログラムなら俺に聞け29
http://toro.2ch.net/test/read.cgi/tech/1381578085/
0982デフォルトの名無しさん
2013/10/12(土) 20:55:41.84□□□□
□□□□
こういうテーブルがあって、
真ん中の2*2を結合させる場合、
□□■□
□■■□
こうやって左上のセルに2*2だという情報を持たせて、
それ以外の3セルに使用不可フラグを立てればいいだろ
キーボードの右を押してフォーカスをこの結合セルから右のセルに移動させる場合は、
1つ右のセルのフラグを調べ、使用不可ならもう1つ右のセルのフラグを調べ・・・と繰り返して
使用可能なセルにたどり着いたらフォーカスをそこへ設定
下段の一番右のセルからキーボードの左を押した場合は、
使用可能なセルが見つかるまで左へ一つずつ検索し、
見つかったらそのセルのサイズを調べる、
それが1*1なら一つ前へ戻って今度は上に向かって検索
あとは分かるな?
0983デフォルトの名無しさん
2013/10/12(土) 20:58:03.48いやw
さすがに内部自体を結合させるようなアホ(あるいはそれでやりきる天才)は居ないだろうw
0984デフォルトの名無しさん
2013/10/12(土) 21:24:13.02データ本体を格納する一次元配列と、その各行の先頭アドレスを格納するアドレスの一次元配列で構築すべきである。
そのほうがサイズを可変にできて良い。
0985デフォルトの名無しさん
2013/10/12(土) 21:46:39.190986デフォルトの名無しさん
2013/10/13(日) 00:14:14.94あればシムシティみたいなゲーム作る時楽になりそうだが。
0987デフォルトの名無しさん
2013/10/13(日) 00:23:24.320988デフォルトの名無しさん
2013/10/13(日) 00:24:55.170989デフォルトの名無しさん
2013/10/13(日) 00:31:32.42ただ948のような場合はメリットがないと思う
0990デフォルトの名無しさん
2013/10/13(日) 00:39:55.78配列の中身にインデックス持たせて後々整合性のケアに悶絶したやつ多し。
0991デフォルトの名無しさん
2013/10/13(日) 02:49:46.03>>948がマップがどうのと言ってるところを見ると、セルのグループ化のほうがいいような気がするんだ。
0992デフォルトの名無しさん
2013/10/13(日) 03:50:41.73座標っつーても相対座標だよな?
0993デフォルトの名無しさん
2013/10/13(日) 05:25:07.84セル化したやつはグループID付けて、キー入力処理は上下左右のベクトルに従って、
同一グループではないところまで進めるみたいな。カーソルとかを結合したセルのサイズに合わせるのも一緒。
0994デフォルトの名無しさん
2013/10/13(日) 07:40:53.02もともとこの話はナナメ読みだけど、
俺も結合の表現は、結合グループの管理をメインにするな。
元がセルの二次元配列で、あとはそうやって、表現上のゴニョゴニョは管理。
0995デフォルトの名無しさん
2013/10/13(日) 09:16:22.57何をやりたかったのかはよく知らないが恐らく無駄な努力を頑張ってる
0996デフォルトの名無しさん
2013/10/13(日) 10:57:48.73でもなんというか、フラグ使うにしろキューにしろ、
マウスゲーのオペレーション部分(イベント発生部分)を言語の標準ライブラリで
拾えるってだけでもそこそこ優位と言えなくもないかもしれない?
JavaならSWT・SWING・FXあたりがあるけど、SWINGとFXの中間が欲しいよね
SWINGより精錬された仕様が欲しいけど、FXは静的なデザインに最適化されすぎているというか
0997デフォルトの名無しさん
2013/10/13(日) 14:05:00.94シムシティみたいなゲームの場合は結合するとかしないとかそういうレベルで考えないほうが良いと思われる。
3x3の建物が建つ場合でも、結合ではなく3x3のグループを作ってグループIDを割り振り、
そのIDと建物オブジェクトのIDを関連付けする。
0998デフォルトの名無しさん
2013/10/13(日) 15:16:15.820999デフォルトの名無しさん
2013/10/13(日) 16:38:29.68衝突検出用のツリーみたいなもんに座標とリファレンス管理さす。
そうやってぶつからないかぎり、x, y, w, hを自分で持っとく。
で、ゲーム無いとしては団地リスト、工業リスト、商業リストの三本などをもっとく。
ゲーム内では基本的にそのリストだけ見てる。
新たに割り当てる時だけ衝突検出に頼る。
とおもったけど衝突検出も単に平坦に、そこにあるかないかだけなんで、
フラグの二次元配列で十分だな。
1000デフォルトの名無しさん
2013/10/13(日) 16:53:33.43ゲームプログラムなら俺に聞け29
http://toro.2ch.net/test/read.cgi/tech/1381578085/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。