パチンコゲームを作ろうと考えている初心者が衝突判定について質問

このQ&Aのポイント
  • 初心者がパチンコゲームの衝突判定について質問しています。重い動作を防ぐために無回転の単純な玉の動きを考えているが、すべての釘との判定が重くなるのではないかと悩んでいます。
  • 既存の絵に衝突判定をつける方法に困っている初心者がパチンコゲームの作成について質問しています。衝突判定についてのアドバイスを求めています。
  • パチンコゲームを作る初心者が衝突判定について困っています。玉と釘の判定をすべての釘に対して行うと重い動作になってしまうため、別の方法を探しています。アドバイスをお願いします。
回答を見る
  • ベストアンサー

パチンコゲームを作りたいのですが…

おはこんばんにちは。 初めての質問で緊張していますが、よろしくお願いします。 当方プログラムは2DのRPGしか作った事のない初心者です。 今回、パチンコゲームを作ろうと考えているのですが その際、つまづいた部分で質問があります。 ・衝突判定について 衝突判定については回転や空気抵抗等の計算までしてしまうと 動作が重くなるので割愛し、無回転での単純な玉の動きで再現するつもりです。 が、玉を動かす度にすべての釘と判定すると これまた重くなってしまうのでは…と思ってしまいます。 衝突判定をする際、 私は玉(変数a)と釘(変数b)の2つで計算、それを全ての釘分回しているのですが この場合、ステージなどの壁のような障害物の時に(°ω。)ってなります。 今まで作ってきたどっと絵のようなステージマップ変数を作れるものであれば 衝突判定に困らなかったのですが…、 こういう既存の絵に衝突判定をつけるのに戸惑っています。 もしかして、もっといい衝突判定方法があったりしますか!? 説明下手で申し訳ありませんが、どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.1

物理演算が問題なのであれば、単に作るだけであればcocos2d-xやUnity等のゲームエンジンを導入された方が簡単だと思います。手でプログラムするよりもずっと高速に計算しますよ。 #プログラムすることそのものが目的なのであれば別ですが

nelos1379
質問者

お礼

早い返答ありがとうございます! そういった便利なものの存在を知りませんでした…。 まだまだちんぷんかんぷんですが… どちらが使いやすいか、商用目的の使用は可能か等を調べて勉強してみたいと思います!!

関連するQ&A

  • 物体の衝突判定について教えてください

    こんにちは、今作っているFlashで初期段階で いきなり行き詰ってしまい色々と調べてみたんですが 解決出来ずに困っていますのでお助け願えたら幸いです。 Flashでピンボールを作ろうと思っています。ゆくゆくはパチンコ等も作りたいなと思っているんですが分からない事は球を跳ね返す衝突判定(当たり判定)が何もない長方形及び正方形のステージ内なら問題なく重力を持たせた球を跳ね回す事が出来たのですが、障害物や曲面の跳ね返りの方法が分からなくて困っています。ピンボールやパチンコでも曲面が多かったりパチンコなんかはステージ自体が円ですよね。どちらも球を最初に打った時は楕円の形に沿って球が飛んで釘や障害物に当たりながら落ちていくと思うのですが、その球を楕円に沿わす方法や障害物(釘)に球が当った跳ね返り方がどうしても分かりません。文章が下手で上手く伝わっているかどうか分かりませんがご教授ください。

    • ベストアンサー
    • Flash
  • ゲーム作りにおいてのクラス指向について

     多人数プレイ(とりあえず4人用で)用格闘ゲームを作る過程で、2週間ほど前からクラス指向を学びはじめたんですが、その構築方法のコツというか考え方がよく分かりません。  僕は今やっていることは、まずステージの状態を管理をするStageクラスとプレイヤーの状態を管理するPlayerクラスを作り、メイン関数内でPlayer1~Player4のインスタンスを宣言し、それらに各キャラクターのパラメータ(グラフィックデータなど)を設定するメンバ関数Player1.Set()~Player4.set()を呼び出しました。  同様にStageのインスタンスStage1を宣言し、位置や拡大率などのパラメータを設定するメンバ関数Stage.Set()を呼び出しました。  次に各プレイヤーとステージを表示させるメンバ関数をメッセージループ内で実行し、凸凹なステージとプレイヤー1~4の衝突判定を行うために、Playerクラス内に、Stageクラスのインスタンスや位置情報などを引数とした関数Player1.Collision()~Player4.Collision()をメッセージループ内で呼び出しました。  そして攻撃と当たり判定を実装しようと思ったのですが、この調子だと、キャラクターが攻撃したときの攻撃判定枠と、攻撃したキャラクター以外の当たり判定枠の衝突をプレイヤー分だけ条件処理させて、 Player1.Kougeki1Hantei(Player2); Player1.Kougeki2Hantei(Player2); Player1.Kougeki3Hantei(Player3); … … Player4.Kougeki100Hantei(Player3); こんなふうにクラス指向として何の価値もないプログラムに向かっているのではないかと焦りまくっています。  ともかく上記ような僕の考え方についてみなさまの辛口な意見・アドバイスをお聞きしたいのですが、一番知りたいことは、 「Player1~Player4のうち、攻撃したプレイヤーの攻撃判定枠と、その攻撃をしたプレイヤー以外のすべてのプレイヤーの当たり判定枠との衝突判定」という処理を、 Player1.Kougeki1Hantei(Player2); Player1.Kougeki2Hantei(Player2);  このような書き方以外でどうやって行えばよいのかという点です。  また勝手ながら、僕の思考回路のショートを避けるために、各々のプレイヤーやステージのインスタンスに設定する情報はほぼ一定で(ユーザがキャラクターやステージを選択できない)、動きや攻撃の種類も全員同じとします。  ではよろしくお願いいたします。

  • 確率変動って?

    パチンコで「確率変動スタート」といいますが、何の「確率」がどのように「変動」するのですか? パチンコというのは、鉄の玉がバネではじかれて、釘との微妙な衝突で穴に入ったり入らなかったりして楽しむものでしょ! コンピューターが何らかの計算をして、それを左右しているとすれば、ゲームではなく、まるで誰かに遊びをコントロールされているようです。おしえてください。

  • 釘が読めるようになりたい

    パチンコ屋に行くたびに自分なりに釘を見てるのですが、命釘が開いてるのに風車が内向きだったり、その逆の場合があったり、出球を減らす所の釘が閉められていたりで、全てが良い釘調整にしている台をあまり見たことがなく、そこそこよさそうに思える台を打ってみると最初は回転が良かったのが1日打つとたいして回ってなかったり、別の日には最初はあまり回ってないのに1日打つとわりと回っていて勝てることがあったりします。 それで、1万円くらい打った場合の回転数とかで千円でどれくらい回るのかを判断したりしているのですが、できれば、もっと早い段階で回る台を見抜きたいのですが、パチプロの人はどうやって早い段階で回る台を見抜いているのか釘の見方を教えて下さい。 よろしくお願いします。

  • パチンコの回転数についての質問

    はじめまして。 今回質問させてもらうのはパチンコで欠かすことのできない回転数についてです、パチンコでは勝つための最もシンプルで重要な要素としてボーダー理論と言うものがあります。 1000円あたり平均何回転するかと言うものですが、質問させて頂きたいのは最近体験したこの回転数についての不思議です。 ここ2、3週間くらい地元の人気店A店にパチンコを数回打ちにいったのですが、主に慶次やエウ"ァを打っていて朝一1万円くらいまではボーダーラインを大きく超え、今日はもらったと言う気分になるのいですが、不思議なことにそのすべてで数時間打つと回転数が極端に減ってしまうのです。 例えば慶次で朝一5000円で平均29回転回ったと思えば10000円では25回転まで落ち、数時間後しまいには出玉1箱150回転回らないというところまで落ち込んでしまいました。 同じくエウ"ァで朝一15000円で平均27回転回り、5連後の1箱で時短終了後270まで回るような状態だったのですが、次の1箱から100回転強くらいしかまわらなくなり、出玉がのまれた後念のため現金で回転数を改めて計算したところ、なんと5000円の平均が17回転まで下がっていました、またそれかと思いそこでやめたのですが、同じ店で2週間で全く同じ現象が4度も起こりました。 もちろんすべてで2,3000円程度の短時間ではなく最低でも4時間以上は打っての結果です。 参考のために記述しておきますと、ある程度の釘読みはできるので、悪くない台選びはしているつもりです、それと通常時のストロークや止め打ちなどしなければいけないことは最初から最後まで徹底してしています、ある程度出玉が出て時間が経過しても同じようにまわせていると思っています。 長くなりましたがこの結論から、ホール側は釘調整の一つとして朝一からしばらくは回るようにして、だんだんと回らなくなるような釘調整をしていたりするのでしょうか?もしくは遠隔など他の方法があったりするのでしょうか? 他店ではあまりなかったのですが、同じ店でそれだけ同じことがおきると何かあるのではないかと疑ってしまいます、そのへんの事情に詳しい方や、アドバイスをできる方、なんでも構わないので回答よろしくお願いします。

  • 力学の問題を教えて下さい

    半径a,質量Mの一様な球が、重心の運動する鉛直平面に垂直な水平軸の周りに角速度w0で回転しながら粗い水平面(球は滑らない)に衝突するとき aバックスピンがかかる(もとの方向に戻る)ための衝突直前の球の重心の速度に対する条件を求めよ b衝突の際の運動エネルギーの減少分を求めよ ただし、球と水平面の反発係数をeとする

  • パチンコ玉が手で触れないぐらい熱い場合の回転数は?

    神戸プレ○オ店が新装開店したのですが、なんと全ての台を出玉が計算されて、出玉を箱に積み上げないシステムに変えてしまいました。 しかしパチンコの醍醐味である千両箱を積み上げる事は無くなり、ひとつの重要な面白さが無くなってしまったのですが、違った問題が発生しているように思います。 それは、当たりを引いたとき出玉計測されて機械の中に出玉が入っていき、カードに球数が記録されて、貸玉ボタンを押すと新たに玉が機械より出できますが、この玉が手で触れないぐらい熱い為に約400球(千円当たり)で5、6回程度しか回りません。 球の熱さにより千円当たりの回転数が落ちる事があるのでしょうか?(通常は千円あたりで10回程度です) 微妙なバランスで釘調整などをしますのでやっぱり微妙な球の温度なども回転数に影響するものかと思い、参考に教えて頂ければありがたいと思います。 多分球の温度は約55度前後だと思います。

  • 指定した座標の色を得るためには

    Java初心者で、いろいろ調べてみたのですが、わからなかったので質問します。 現在、物体にボールが当たったときの衝突モデルを作っているのですが、その当たる場合の衝突判定ができないで困っています。 物体の形状は円と矩形を組み合わせた少し複雑な形状で、すべて黒色で表しています。 また、その物体は回転もさせるようにしているので、「ボールの座標が黒色の部分に位置しているか」で当たり判定ができないかと考えています。 もしそういうメソッドがあるのであれば、そのクラスと簡単な例を教えてもらえないでしょうか?よろしくお願いします。

    • ベストアンサー
    • Java
  • 回転する矩形同士の当たり判定について

    C++でゲームのSTGのようなゲームを作成しています。 ショットの当たり判定は全て矩形で行っていますが、 レーザーのような細長いショットの場合、 どうしても斜め方向の判定が必要になってきます。 単純な回転しない矩形ならば、 それぞれの矩形の頂点座標の距離を比較するだけでいいので、 4回の比較で判定することができるのですが、 回転が加わってしまうとどうしても複雑になってしまい、 どういう風にとればいいのか解らずに困っています。 例えば、以下のような場合など、 回転を考慮しない判定だと衝突と判定されます。      ┌――┐      |   |      |   |   /\└――┘ /    \ \    /   \/ 解説サイト等を拝見しましたが、 矩形の回転の加わった当たり判定まで解説しているサイトが見当たらず、 ベクトルを使えば出来るという情報は得たものの その方法が解らずに困っています。 シーンによっては多くのショットが生成されるので 付加をするならば、できる限り高速な処理で、判定をしたいのですけども、 どなたがその方法をご存じないでしょうか? よろしくお願いします。

  • 円盤同士の衝突による角速度について。

    円盤同士の衝突による角速度について。 趣味で、おはじき遊びのようなことができるアプリケーションを開発しているのですが、 机の上でおはじきが衝突した際に、どのように回転をさせたらいいか判りません。 一応ネットで計算式を探してみたのですが、丁度良いものが見つかりませんでした。 円盤同士の衝突に際する角速度の求め方について、公式のようなものをご存知の方、 どうかよろしくお願いします。