[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 12/24 03:50 / Filesize : 178 KB / Number-of Response : 777
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++ゲーム製作総合スレッド Part2



1 名前:名前は開発中のものです。 mailto:sage [2012/10/24(水) 03:01:09.64 ID:oI68Vzqz]
ゲーム製作におけるC/C++全般に関するスレです。

元スレ
DXライブラリ 総合スレッド その12
toro.2ch.net/test/read.cgi/gamedev/1330000532/
C/C++ゲーム製作総合スレッド Part1
toro.2ch.net/test/read.cgi/gamedev/1337516528/

585 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 19:29:48.54 ID:1ABhelRH]
>>583
なんで日本語のwikiあるのにわざわざ海外のヤツはるの?

しかし、どんなのあるかもわからんようなもんを膨大な開発費で作られたゲームと比較して
「勝つにはどうしたらいいか」ってそもそも議論としてなりたたないんじゃね

586 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 19:39:59.70 ID:O5RwaKKN]
>>584
どうもこの間から流れがおかしい
変なのが住み着いたか

587 名前:名前は開発中のものです。 mailto:sage [2012/12/05(水) 19:44:32.68 ID:5bbxrjLT]
デジタルハリウッドとポナルポという二大キチガイが居る時点で

588 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/12/05(水) 21:08:41.30 ID:mvjh2Sl9]
低学歴へ

>後半、イメージエポック御影社長(左から2番目)を交えトークに拍車がかかります。
>会場からの質問「海外のFPSに日本のFPSが勝つにはどうすればいいと思いますか?」
>御影社長「うーん、海外のFPSはマサチューセッツ大学を首席で卒業したプログラマーとかが作っているので、それを超えるには根本的に開発スタイルを変えないとダメで・・・」

589 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 01:32:24.33 ID:/C9ywAz0]
だから日本のFPSってなによ?
比較になってねーだろって

590 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 05:54:12.14 ID:OR1WKfSs]
>>589
SeeNaに決まってるじゃん。

591 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 08:03:48.67 ID:/oF0dOum]
落ち着いてスレタイと>>1を音読しろ馬鹿共

592 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 14:50:50.09 ID:secBQEQ4]
ゲーム制作で関数ポインタ使ってます?
僕はあれのメリットが理解しきれずとりあえず使わなくて進めてます。
例えば複数の敵や弾があった場合、名前や引数が同じだけど内容が異なる処理をループで実装したい場合に使ってますか?
実際の使用例とか聞いてみたいです。

593 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 15:50:04.34 ID:wGXNDkNL]
>>592
タスクシステム

c++なら関数ポインタ使うような所はポリモーフィズムで対応するんじゃない



594 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 17:52:50.38 ID:MOIAHQLk]
>>592
ゲーム系ツールでは使ってるけど、ゲーム制作では使ってないなあ。

595 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 18:18:57.69 ID:fuWUXeVY]
アドベンチャーゲームとかでイベントのスクリプトを実装しようとしているのだけど、
例えばmessage('hogehoge')でメッセージを表示するスクリプトだとすると実装は、

1 事前にmessage()関数を用意してスクリプトを直接評価してその関数を呼び出す

2 識別子(message)を取り出して文字列マッチングで処理する

どちらの方法が良いだろう

596 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 18:27:25.72 ID:/oF0dOum]
>>592
マルチスレッドのために別スレッドで実行する関数のポインタを渡す

597 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 19:14:32.65 ID:k6F8L/e1]
>>595
自作のスクリプト言語?
スクリプト内で色々定義出来るようにするなら後者の方が楽
しないなら前者の方が楽で高速

個人的な意見を言うなら組み込みスクリプト使った方が楽

598 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 19:17:59.37 ID:sPyX5poJ]
luaを組み込んで思うように処理速度出なくて死ね

599 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 19:39:44.25 ID:IAqOXp0Z]
>>592
個人的にはオブジェクト配列はポインタ使ったほうが管理しやすいな。
observerパターンなんかもポインタ使う。
蛇足ながら、無理に使えとは言わんけど、
デザインパターンは一通り目を通して損はしないと思う。

600 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 19:54:42.30 ID:ySGiyJS+]
コールバックで関数ポインタ必要でしょ。
Windowsでプログラミングすれば嫌でも必要になるはずだが?

601 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 19:57:34.43 ID:+vhLc7nO]
>>595
ごめん質問の意味を曲解してたかも
スクリプトの構文解析をどうするかって話?

602 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 22:26:25.89 ID:/oF0dOum]
>>598
jit版使え
継承階層深くなければv8にも勝る速度を稼げる

603 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 23:13:35.68 ID:IAqOXp0Z]
>>600
MFCならカプセル化されてるし、そうでなくとも、
関数ポインタなんか意識せずとも書けるでしょ。
VC++はご丁寧にテンプレート吐いてくれるし。



604 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 23:17:48.75 ID:G+8u4RQx]
無用なスクリプト化を思い留まる冷静な判断力、って初心者には軽視されがちだよね
技巧に走るのが目的のお勉強趣味なら好きにすればいいけど

605 名前:名前は開発中のものです。 mailto:sage [2012/12/06(木) 23:31:32.07 ID:+fSGl9c6]
今はインターフェースっぽいの使って配列に子クラスのインスタンス詰めて処理してます。
これがポリモーフィズムになるのかな?
とりあえず関数ポインタは置いといてやってみます。
関係ないけど昨日循環参照になってしまったみたいでずっとコンパイルできなかった、、

606 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 06:21:28.35 ID:tL7IIDRf]
>>603
MFCってw 今時w

607 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 06:23:32.54 ID:tL7IIDRf]
StateMachineのデザパタで必要じゃない?>関数ポインタ
ゲームにStateMachineは必須でしょ。

608 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 07:29:40.83 ID:BoWzUI+p]
>>598
>>602
アドベンチャーに速度が必要なの?

>>604
逆に有用なスクリプト化ってどんなだよ

609 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 07:39:51.21 ID:ynWkr9Hy]
>>607
どの部分に状態遷移を使うか、あるいはどう実装するか次第じゃない?

例えば、タイトル画面 → プレイ画面 → エンディング画面 のような遷移なら、
それぞれの画面ごとにクラス化(共通の親を持つ)して、State/Strategyパターンでもいいかもしれない。

状態遷移表を用意して一括管理するなら、関数ポインタの方が楽かもしれない。

610 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 07:41:53.64 ID:ynWkr9Hy]
>>608
>有用なスクリプト

横だが、やっぱ作業分担の時じゃね

611 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 09:16:12.26 ID:5eInNVDL]
スクリプトの利点は
・コンパイル不要
・習得が容易

スクリプトの実装はプログラミングスキルそんなに要らないから分担しやすい
頻繁に調整のかかる部分の実装に使うと効率的に開発出来る

一人で作ってる小さなプログラムだとあんまり役に立たんかもな

612 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 12:58:07.00 ID:1uoHMWk+]
StateMachineって初めて聞いた
Stateとは違うん?

613 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 13:39:24.50 ID:tW5aEqx6]
デザインパターンはsingletonしか覚えてせんでした。
stateパターンも空いた時間に覚えようかな。
さっきちらっと解説ページみたけどじっくりみないと理解できそうになかった。



614 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 13:46:03.91 ID:xNVLTqCh]
ステートパターンなんか使わなくてもこれで十分
シーン遷移如きで開発が頓挫するようなことあるかと

enum
{
  TITLE,
  PLAY,
  ENDING,
};

int main(void)
{
  int state = TITLE;

  switch(state)
  {
    case TITLE: title(); break;
    case PLAY: play(); break;
    case ENDING: ed(); break;
  }
}

615 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 13:50:16.31 ID:fSRHLTsP]
>>614
それじゃステートが変わる瞬間のコーディングがやっかい。
やっぱりStateEnter, StateUpdate, StateExitが欲しくなる。

デザパタが何故存在するのかもう一度良く考えてみて。

616 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 14:09:10.06 ID:eXGoHhXk]
趣味で作るコンパクトなゲームなら>>614で十分
それなりに大規模だとメンテナンス性を考えてデザインパターンを考慮したほうがいい
覚えたての知識をむやみやたらに使いたがるのはよくあることだが
パターンに限らずまず本当に必要かどうか見極める事が肝要だな

617 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 14:32:54.73 ID:KKye1TcY]
>パターンに限らずまず本当に必要かどうか見極める事が肝要だな

たしかにそうですね。とりあえず今のところmainで遷移区分によってタイトル、ステージ1どっちを処理するか判断させてるのでそこの部分はそのままにしようかなとおもいます。
ステージ1作りおわったら↑の実装やデザインパターンをみたあとに必要かどうか考えようかな。

618 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 14:58:49.11 ID:D8hnsSVO]
>趣味で作るコンパクトなゲームなら>>614で十分


そう思っていた時期が私にもありました・・・

619 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 15:10:23.01 ID:xNVLTqCh]
シーン遷移にステートパターン適用しないと開発が行き詰るってどれだけ無能なの

620 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 15:20:35.36 ID:skNMHtby]
最初の質問から見当違いの方向に話が進むのはこのスレの仕様

621 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 15:20:52.81 ID:eXGoHhXk]
作るだけなら単純な実装の方が速い
メンテナンスや再利用を考えるならパターンは考慮したほうがいい
けど汎用的な設計は単純に作るより時間かかるしスキルもいるから
趣味で作るときに汎用性求めすぎると作ってるうちにしんどくなる
単純設計で作って再利用出来そうなものを自作ライブラリにするのが
現実的

622 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 15:39:20.30 ID:ynWkr9Hy]
>>615
そのEnterとExitって、要はコンストラクタとデストラクタみたいなやつ?

623 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 15:40:46.94 ID:ynWkr9Hy]
>>621
一度作ってしまうと、>614と大して変わらない労力でシーン遷移出来ちゃうのよねー



624 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 16:01:22.40 ID:D8hnsSVO]
>>622
違うとおも。
一つのクラス内で起こるステート変更かと。
敵キャラが「待ち」から「攻撃」に移るみたいな。
各ステートのEnter関数でアニメーションのリセットしたりする。

625 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 17:19:52.00 ID:swkCGWsv]
Stateは俺も悩むわ
ネットで調べると講座用の簡易なのしかないし
ガッツリ調べるとゲームから乖離してイメージが掴めん・・・

626 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 18:09:35.62 ID:uKacoqVx]
SLGはstateパターン使わないと軽く詰む。
switch処理だとメンバ変数が大変な事になるしなぁ。

627 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 18:40:55.11 ID:ynWkr9Hy]
シーン遷移はStateなのかStrategyなのか

628 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 19:38:29.66 ID:jju3TROv]
シーン遷移なんてstackで十分だよ

629 名前:名前は開発中のものです。 mailto:sage [2012/12/07(金) 19:47:04.17 ID:EGZVovBQ]
>>627
全く別のふるまいになるからストラテジではないんでね
ゲームをプレイヤの操作をインプットとしたステートマシンと考えると
ステートの方がしっくりくる…のかな?

630 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/12/08(土) 00:15:26.47 ID:rCS98IFy]
>>後半、イメージエポック御影社長(左から2番目)を交えトークに拍車がかかります。
>>会場からの質問「海外のFPSに日本のFPSが勝つにはどうすればいいと思いますか?」
>>御影社長「うーん、海外のFPSはマサチューセッツ大学を首席で卒業したプログラマーとかが作っているので、それを超えるには根本的に開発スタイルを変えないとダメで・・・」


低学歴へ

631 名前:名前は開発中のものです。 mailto:sage [2012/12/08(土) 00:25:12.27 ID:xSL8vY1o]
ちょっと疑問なんだが、デジハリ名乗りながら低学歴云々ってそれ完全にブーメランだろ
なんでわざわざコテつけんの?

632 名前:名前は開発中のものです。 mailto:sage [2012/12/08(土) 00:31:18.65 ID:wLwkILiu]
>>631
触っちゃダメ。

633 名前:名前は開発中のものです。 mailto:sage [2012/12/08(土) 02:02:10.29 ID:I9wJ8evd]
歩き動作や弾を撃つときの描画の実装がごちゃごちゃしてきたー。



634 名前:名前は開発中のものです。 mailto:sage [2012/12/08(土) 08:56:56.31 ID:rjdgGOk6]
State/Strategyって 壁.Draw() { 壁->図形.Draw() { /*四角形用の処理*/} } みたいに
アクセサが被るのがモヤっとしない?(ここではDraw)

もちろん、そこが被ってワンクッションあるからこそ単一継承では難しい複数の機能を
併せ持つということができて多態性の幅が広がるけど、それって継承を使った際における
保守・変更時に整合性が取りやすいって部分を犠牲にして得た対価なだけな気がする

635 名前:名前は開発中のものです。 mailto:sage [2012/12/08(土) 13:50:45.55 ID:fq3ThR28]
>>634
デザインパターンはあくまでベストプラクティスだから
それにあった処理に対して適用すると効果的ってだけで万能なわけじゃない
ちゃんと前提条件を踏まえて使わないとソース管理が煩雑になるだけ

636 名前:名前は開発中のものです。 mailto:sage [2012/12/08(土) 14:16:38.28 ID:Bn+gP5Uf]
>>614
仕様によるキリ)
しかし、その部分でこだわり発揮している作品って見たことがないな。
シーン遷移仕様がカオスとか、どんなゲームになるんだろうw

637 名前:名前は開発中のものです。 mailto:sage [2012/12/08(土) 15:30:29.07 ID:7AwysAnX]
結局C++使いは継承(デザインパターン)使って俺つえーしたいだけだし、
C使いは関数ポインタ使って俺つえーしたいだけだし、
C#,Java使いはジェネリックス使って俺つえーしたいだけだし、
perl使いは無駄にシンプルで解読不能なコード記述して俺つえーしたいだけだし、
要は俺つえーしたいという欲望を捨てない限り救われることはないし、
足るを知り、満足するということを覚えない限り苦悩から逃れることはできぬ

638 名前:名前は開発中のものです。 mailto:sage [2012/12/08(土) 21:06:16.34 ID:7BkOFPw9]
そして一周回って言語を作り始める

639 名前:名前は開発中のものです。 mailto:sage [2012/12/08(土) 23:35:28.04 ID:jztRnxv9]
>>637
C#の俺つえーはラムダだな。
無くても良くね?感アリアリ。

640 名前:名前は開発中のものです。 mailto:sage [2012/12/08(土) 23:59:37.28 ID:pghPfEMz]
C++にもlambdaあるし、
std::functionのおかげでdelegateっぽいこともできるし、
signal/slotライブラリを使えばeventのようなことも可能だ

641 名前:名前は開発中のものです。 mailto:sage [2012/12/09(日) 00:19:33.51 ID:KzrZ3rOC]
そういや std::mem_fun ってstd::shared_ptr には対応してないの?
Boostの方を使うしかないのかな

642 名前:名前は開発中のものです。 mailto:sage [2012/12/09(日) 10:40:34.38 ID:g248FFXu]
JoyToKeyについて質問です
JoyToKeyを使ったゲームを作ってるんだけど
キーの割り当てで汎用的、標準的なパターンてあるのだろうか?
(例えばPOVはテンキー、左スティックはマウス、右スティックはカーソルキー、〇ボタンはSキーとか)
どこかの有名ゲームサイトで記事等あったら教えて下さい

643 名前:名前は開発中のものです。 mailto:sage [2012/12/09(日) 10:41:23.24 ID:g248FFXu]
ちなみにPS3のコントローラーの話です



644 名前:名前は開発中のものです。 mailto:sage [2012/12/09(日) 11:54:35.46 ID:zhyc/08Z]
JoyToKeyってゲーム本体にキーコンフィグが無くても、
プレイヤー側で自由に設定できるようにするソフトだったよね?

単純に、一般的なキー・パッド入力配置を聞いてるわけじゃないの?
(もっといえば、C/C++に限った話しでもないし)

645 名前:名前は開発中のものです。 mailto:sage [2012/12/09(日) 12:03:31.70 ID:g248FFXu]
>一般的なキー・パッド入力配置を聞いてるわけじゃないの?
その通りなんですけど 作り手側でもデフォ設定するじゃないですか
んで あまりにもアフォ設定だとユーザーがプチ切れるんじゃないかと

たまたまこの画像(この人はPS3コントローラーでPC操作してるらしい)見ちゃって
不安になったもので…
ttp://stat.ameba.jp/user_images/20090729/11/sasakisannoblog/17/45/j/o0800059210222434784.jpg

646 名前:名前は開発中のものです。 mailto:sage [2012/12/09(日) 18:18:43.74 ID:ETEjY4yj]
水の表現ってどうやってる?
煙とか火はテクスチャはっつけていくつも放射状にするだけでいいのに

647 名前:名前は開発中のものです。 mailto:sage [2012/12/10(月) 05:31:35.23 ID:glxZoaj4]
>>646
どういう水の表現?
ケースバイケースで色々方法ある。
さざ波や反射はシェーダーで処理するのがベスト。

648 名前:名前は開発中のものです。 mailto:sage [2012/12/10(月) 08:39:58.94 ID:KaDY5hdz]
市販のゲーム見た感じでは単純なのだとテクスチャいくつか重ねたりuv値でアニメーションさせたり
複雑なのだと水面うねったり水底を歪ませたりしてるね
水しぶきはパーティクル、雨は線作って画面に重ねる感じかな?

ところで水平線ってどうやって表現すればいいの?
でっかいポリゴンにテクスチャ繰り返しで水面作ってるけど
もっといい方法ある?

649 名前:名前は開発中のものです。 mailto:sage [2012/12/10(月) 12:36:19.95 ID:EaVtuODL]
地形を球にすれば、何も考えなくても地平線も水平線も勝手にできる。

650 名前:名前は開発中のものです。 mailto:sage [2012/12/10(月) 14:00:21.22 ID:s9PS7ew3]
PS2のドラクエ5が、そのへん上手かった気がする

651 名前:名前は開発中のものです。 mailto:sage [2012/12/10(月) 21:22:12.10 ID:rtIV+/pt]
簡単な質問なんだけど、一回だけキーを判定する方法ってどうやってる?
前のキーAを取っておく方法だとキーBを押した時にキーAが発動しちゃう

652 名前:名前は開発中のものです。 mailto:sage [2012/12/10(月) 21:29:03.43 ID:mPXWYpf6]
AとBそれぞれ前に押しているかを判定すればいいんじゃないのか

653 名前:名前は開発中のものです。 mailto:sage [2012/12/10(月) 21:33:59.05 ID:rtIV+/pt]
ああ…やっぱりそれぞれ判定する用に配列作るのか
パッド使ってるからKey[16]にそれぞれのキー押した時間格納すればいけるかも、ありがとう



654 名前:名前は開発中のものです。 mailto:sage [2012/12/10(月) 22:33:14.03 ID:Ci9afKAy]
普通は1フレーム前の状態を取っておく
そうじゃないと
押してない→押した
押した→押してない
の判定ができない

655 名前:名前は開発中のものです。 mailto:sage [2012/12/10(月) 22:36:04.62 ID:H439YNPF]
654みたいなのが下の下で、1bitだけ確保するというアホすぎる戦術。
普通は押され続けた回数をカウントしておき、押されている限りインクリメントする。
1だったら押された直後と判定できるし、
キーリピートの実装も簡単だ。

656 名前:名前は開発中のものです。 mailto:sage [2012/12/10(月) 22:42:01.64 ID:HAruj3/y]
何でそんなに、こき下ろすのに気合入ってるんだよw
形になりゃええやん

657 名前:名前は開発中のものです。 mailto:sage [2012/12/10(月) 22:48:12.00 ID:j+XLrcw7]
もしかして時間ってフレーム数の事言ってんじゃね?

658 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 05:21:45.01 ID:Yt3B5aQe]
>>655
今時フレームレート固定が前提?

659 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 07:19:45.97 ID:MblGPOXr]
>>658
何でそんな面倒な事をせなあかん?

660 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 07:52:24.55 ID:AZewm+2Z]
>>659
だから聞いてるんだけど?

661 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 08:12:46.85 ID:gdIUkimf]
時間と前フレーム押したかどうか持っとけば可変でもいけるっつーことですよね
それに対して固定前提の処理をどや顔で提示したって突っ込んでるんですかね?

662 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 09:13:08.17 ID:k+/1zF7i]
655では時間の保持について言及してないので
フレーム固定前提だと思われたってことですよね
それに対して時間も持っとけば可変でいけるとか
誰でも分かる当たり前の事をどや顔で提示してるんですかね?

663 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 09:32:55.95 ID:gdIUkimf]
>>662
でも可変だったらインクリメントした値保持する意味なくね?



664 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 10:24:46.56 ID:iTUjo3NN]
>>663
経過時間に掛けてインクリメントする値を変えれば良い。

665 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 13:03:20.48 ID:Q/n5yH4F]
フレーム変化したらその分キー入力呼ばれなくなるんだから特別な処理する必要なくね

666 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 13:05:18.47 ID:8fksbtB7]
「3秒ボタン押したらフォース発射」を考えてみよう。

667 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 14:38:59.44 ID:l8u6Xf/B]
>>664
状態変化したときの時間保持して現在時間との差分見た方が誤差少ないと思ったけど
数百回程度の加算の誤差なら大したことない?

668 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 16:09:57.95 ID:F6mkJulj]
ていうか加算するやり方は可変フレームレートには向かないよ。
時間と状態をヒストリーに保存するのが吉。

669 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 19:00:48.01 ID:vFlVKFlM]
長押しを判断させるのはプロセス側で良いんじゃないか?

670 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 19:07:47.23 ID:zSHYCAjl]
love me, I love you
www.youtube.com/watch?v=X4c-FpcWh0U

Easy Come Easy Go
www.youtube.com/watch?v=1jOnu8THvlg

MONSTER
www.youtube.com/watch?v=8xFPy93bM8g

671 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 19:30:46.96 ID:is07smQ+]
>>669
でも入力の履歴は入力管理するインスタンスに持たせたくない?
例えば3秒以上押されてるか確認したい場合はプロセスは入力インスタンスにどのボタンを何秒ホールドしてるか
問い合わせてそれを3と比較する方が処理がスッキリすると思う

672 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 20:21:01.28 ID:vFlVKFlM]
>>671
もちろん俺も色々悩んだけど、長押しかどうかの判断をしたいプロセスは
結局のところ「自分のコントロールのためにボタンが押され始めた時刻」を
保持しておかないと後々融通が効かないかなーと判断したのよね
だから押しっぱ時間は入力管理クラスで測るんじゃなくて
専用のカウンタークラスを必要とするプロセスに包含させることにしたよ

673 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 20:42:53.21 ID:QH4Jp+pF]
こんな事をしてる人って、もしかして俺だけ?

BYTE GetKey()
{
return g_bGetKey;
}

BYTE GetKeyOn()
{
return ( g_bGetKey ^ g_bGetKeyBackup ) & g_bGetKey;
}

BYTE GetKeyOff()
{
return ( g_bGetKey ^ g_bGetKeyBackup ) & g_bGetKeyBackup;
}

キー入力の直後を取得する場合は、
if( GetKeyOn() & GET_KEY_BUTTON1 )
ってな感じ。



674 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 21:08:30.32 ID:SN3sP5DN]
俺もPC向けだと時間でやらなきゃ駄目だというところに行き着いたよ。
もしかして安定が保証されてる(?)ような専用のゲーム機ではフレームでやっちゃっていいよってことになってるのだろうか?

675 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 21:11:47.98 ID:Hl/o+Fyi]
フレームレートが安定しないような廃スペック要求するゲームを作ってるなんてすごいですね
で、画面の更新間隔と内部の処理を同期する必要あるの?

676 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 21:13:32.84 ID:X82lXxGK]
>>673
ぶっちゃけよくわからん
GetKey()は押されているボタン
On()は押された直後のボタン
Off()は離した直後のボタン
がそれぞれビットに入って帰ってくんのかな?

677 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 21:44:39.23 ID:QH4Jp+pF]
>>676
そゆ事

678 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 22:08:30.81 ID:7anuxOVx]
>>675
安定していたとしても固定されてるわけじゃないし、その安定性も誰かが保証してくれるわけでなし

679 名前:名前は開発中のものです。 mailto:sage [2012/12/11(火) 22:19:47.38 ID:qtWofOeR]
>>677
いいんじゃないかな
でも
~a & b
a & ~b
の方がわかりやすいかな?

680 名前:名前は開発中のものです。 mailto:sage [2012/12/12(水) 00:10:24.61 ID:fpIP8ZOc]
stateとか他のデザインパターンについても空いた時間にちょこちょこ読んでるけど
まだ理解しきれてないから使わずにとりあえず実装進めている。

後から後からこのプロパティ要るな〜とか、ここの処理は親クラスで実装したほうがいいな
とか色々出てくるからやっぱ最初の時に設計固めるのって大事ですね。
こういうケースって結構あります?

681 名前:名前は開発中のものです。 mailto:sage [2012/12/12(水) 02:08:00.48 ID:zIx3wKzo]
>>680
趣味で経験があまりないならまずやってみ
迷走して完成しないのが一番もったいないし、失敗しないとノウハウは身につかない

仕事なら・・・がんがれ

682 名前:名前は開発中のものです。 mailto:sage [2012/12/12(水) 05:36:12.32 ID:pejMdb7O]
>>675
3Dゲームなら可変フレームレート前提で作るのは常識だろ。
ハードによってパフォーマンス全然違うし、ユーザー側で
イフェクトのオンオフを設定できるからそれでもスピード変わる。

16ビット機時代のゲームはテレビの垂直同期に
合わせてたから、ヨーロッパでPAL用に作られた
ゲームがNTSC機に移植されると微妙にスピードが
速くなったりしてたな。

683 名前:名前は開発中のものです。 mailto:sage [2012/12/12(水) 08:42:23.07 ID:+6S9fL9F]
イフェクトってかっこいいな
エフェクトの英語読みか?



684 名前:名前は開発中のものです。 mailto:sage [2012/12/12(水) 11:05:54.53 ID:K+wZ6m/T]
>>682
2Dなら固定、3Dなら可変ってイメージがあるな。
あくまでイメージなので根拠はない。

685 名前:名前は開発中のものです。 mailto:sage [2012/12/12(水) 19:37:51.95 ID:DFbI9bul]
>>682
描画だけ可変にすれば良いんじゃないの?
どうして内部の処理と描画を同期する必要がある?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<178KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef