タグ付けされた質問 「mathematics」

数学の問題は、ゲームの開発で使用される算術、幾何学、微積分、公式およびその他の計算を扱います。


3
戦闘後に獲得した経験値の計算
単純なテキストバトルゲームを開発していて、バトル後に獲得する必要のあるXPの計算にいくつか問題があります。考慮したいいくつかの要因があります。 1)同じレベルの誰かを倒した場合、プレイヤーはもちろん良いXPを獲得する必要があります 2)より高いレベルの誰かを倒した場合、プレイヤーは素晴らしいXPを獲得する必要があります 3)より低いレベルの誰かを倒した場合、プレイヤーは貧弱なXPを獲得する必要があります 4)上記は適切にスケーリングする必要があります。つまり、プレーヤーAがレベル10で、レベル9または11のプレーヤーBと戦う場合、その差は大きくありません(もちろん、レベル11のキャラクターを倒すとXPが増えますが、これは巨大であると期待します)、しかし、彼がレベル5または15で戦う場合、この違いは巨大なはずです。 すべてのシナリオでうまく機能する何かを計算するのに問題があるだけで、現在の私のXPテーブルは以下のようになります。 Current Level XP Needed Increase from Last Level 1 30 0 2 65 35 3 106 41 4 154 48 5 210 56 ... 10 672 123 PHPでは、必要なXPを計算するためのコードは次のようになります。 $offset = 30; $multiplier = 1.17; $base = $prevXp * $multiplier; $xp = $base + $offset; …

4
2つの四元数を論理的に等しいかどうか比較するにはどうすればよいですか?
私はいくつかの単体テストを書こうとしていますが、四元数を比較する方法がわかりません。2つの四元数が同じ方向を表すかどうかを知る必要があります(オブジェクトは同じ方向を向いています)。位置のようなベクトルを使用して、パーツを比較し、それらが十分に近いことを確認しますが、四元数の場合、値が大きく異なる可能性があります。 2つの四元数を比較するにはどうすればよいですか?

2
ハイトマップを拡大するときに補間アーティファクトを回避するにはどうすればよいですか?
高さマップをアップスケールするためにバイキュービック補間アルゴリズムを使用していますが、ピクセル境界の周りのアーティファクトに気づいています。ただし、単純な3次補間(スプライン)を使用すると、これらのアーティファクトは表示されないようです。 キュービックスプラインとは異なり、バイキュービック補間では2次導関数の連続性が保証されないためでしょうか?もしそうなら、連続的な二次導関数を持つ既知のアルゴリズムはありますか?そうでなければ、これらのアーティファクトに対処する方法はありますか? 線形補間(ピクセル境界を表示): バイキュービック補間(ピクセル境界で見えるアーティファクト): キュービック補間(顕著なアーティファクトなし): いくつかのバイキュービック式を試したところ、同じ結果が得られました。ここではいくつかの例を示します。 http://paulbourke.net/miscellaneous/interpolation http://www.paulinternet.nl/?page=bicubic

2
3Dオブジェクトを2Dサーフェスにレンダリング(埋め込みシステム)
私はある種の組み込みシステムに取り組んでおり、自由な時間にその描画機能をテストしたいと思っています。 問題のシステムは、EasyMX Stellarisボードに接続されたARM Cortex M3マイクロコントローラーです。そして私は小さな320x240 TFTスクリーンを持っています:) 今、私には毎日自由時間があり、回転する立方体を作成したいと思います。ARM用Micro C PROには3D描画機能がないため、ソフトウェアで実行する必要があります。 『DirectX 10を使用した3Dゲームプログラミング入門』という本から、変換の行列代数を知っていますが、DirectXでカメラを正しく設定できると便利です。 2Dオブジェクトを回転させることができると思いますが、3Dオブジェクトをどうやって使うのですか? どんなアイデアや例でも大歓迎です。私はアドバイスを好みますが。これを理解したいのですが。

3
ゲームオブジェクトの位置をグリッドにスナップするにはどうすればよいですか?
「落下ブロック」のゲームプレイ要素を含むゲームを作成しています。問題は、ブロックをある種のグリッドにスナップできるようにする方法がよくわからない、つまり、最も近いセルをその位置にどのように選択するかがわからないことです。 ブロックはグリッドに継続的にスナップしていません(つまり、重力の影響を受けています)。任意のヒント?


4
楕円上の均等に分散された点を計算するための単純なアルゴリズムは何ですか?
長軸と短軸を考慮して、楕円上に均等に分散した点をプロットする簡単なアルゴリズムを探しています。これは、次のような円を使用すると非常に簡単です。 var numberOfPoints = 8; var angleIncrement = 360 / numberOfPoints; var circleRadius = 100; for (var i = 0; i < numberOfPoints; i++) { var p = new Point(); p.x = (circleRadius * Math.cos((angleIncrement * i) * (Math.PI / 180))); p.y = (circleRadius * Math.sin((angleIncrement * i) * (Math.PI …

2
さまざまな攻撃速度の武器のバランスを保つRPGのダメージ式を設計するにはどうすればよいですか?
私はモバイルRPGゲームを作成しています。ディアブロ3のような戦利品システムがある無限のゲームです。武器には攻撃と速度があり、鎧には抵抗値があります(パーセントではありません)。 私が使用している式は次のとおりです。 float realDamage = SkillDmg * BaseDamage / ( BaseDamage + Defense ) 結果は良好です。防御力が低くなると、ダメージが大きくなり、(BaseDamage + Defense)の間の分割のために指数関数的に上昇しません。 攻撃速度が1.0で、50のダメージを与える剣があるとします。それは50 dpsであり、私はそれがより速く攻撃したいダガーを持っていますが、もちろんより少ないダメージを与えます、dpsを維持するために、ロジックはダガーの攻撃速度が2倍になる場合、ダメージは半分になる必要があると言います(2.0スピード25 dmg)。しかし、上記の式を使用すると、実際の実際のダメージDPSが剣よりも低いことがわかります。 ダガーに25のダメージを与えずに少しだけ増やして、これを解決しました。いくつかの計算を行って、実際のdpsを同じにして、物事のバランスをとることができます。この場合、2.0スピードの短剣は剣と同じ実際のダメージdpsになるように32ダメージを与える必要があります。 しかし、武器にDPS番号を表示したい。短剣のDPSを32 dmg * 2の攻撃速度で表示すると、剣の50 dpsと比較して64 dpsになります。 可能な解決策?最初のダメージ計算式を変更しますか?もしそうなら、どれに?式を変更しないとしましょう、解決策はありますか?私は本当にそれを作るために半分より多くのダメージを与えるために短剣をだまさなければならないのが好きではありません... 私は本当にディアブロ3のダメージの公式を知ってほしいと思います。ディアブロ3はDPSの武器であり、基本的なダメージ*攻撃速度です。 編集: Lets assume defense = 50 and normal attack (skillDmg = baseDmg) Sword 1.0 attack speed dealing 50 dmg -> real …

1
ゲーム内でシェイプをスナップする
プレイヤーがキャンバス上を動き回る可能性がある形を一緒にスナップする方法を考え出そうとしています。 正方形が他のオブジェクトに近づくと、その形状を(特定の近接性がある場合)引き込み、そのオブジェクトの端に沿って完全にスナップさせます。 ルール: エッジが互いに平行な場合のみ 子の正方形(ドラッグ中)が親の正方形(接近中)の半分のサイズの場合、親の正方形のエッジの中点で、子が左/右/上/下のどちらにスナップするかを決定できます。 誰かがこのようなことをしましたか?私はc#とUnityを使用しています。乾杯。
8 unity  c#  mathematics 

2
水の法線ベクトルから水の流れ方向ベクトルを取得する
私はゲームの水の重要な詳細の開発に行き詰まりました。 水の典型的な3Dの世界が重力に向かう傾向がg=(0,-1,0)あり、水面の法線があるとn=(x,y,z)考えると、それに基づいて水の流れ方向ベクトルをどのように計算できますか? 例として、このうまくできていないグラフを考えてください(ただし2Dで) 更新:非常に単純化された水面を検討しています(平面のみ:波紋、波、圧力などはありません)。それらのいずれかを適用する必要がある場合、答えは通常よりも多くの要因に依存します。

0
OpenFLを使用したSceneManagerの実装
OpenFLとHaxeを使用して基本的なSceneManagerを実装しようとしています。OpenFLとHaxeの使用経験はあまりないので、いくつか問題があります。 以下は、SceneManagerクラスの設計方法です。 package; import openfl.display.Sprite; import openfl.Lib; class SceneManager extends Sprite { private var currentScene: ...; public function new(rootScene: ...) { super(); currentScene = rootScene; Lib.current.addChild(currentScene); } public function changeScene(newScene: ...): Void { Lib.current.removeChild(currentScene); currentScene = newScene; Lib.current.addChild(SceneTwo); } } 「...」は、どのシーンでも保持できる一般的な「クラス」タイプに置き換える必要があります。 誰かがこれを解決するのを手伝ってくれるなら、私は本当に感謝するでしょう。

4
ランダム分布関数を変更する::シーケンスで複数の類似した値を取得する可能性を低くする
銀河セクターで手続き的に惑星を生成するための数列を生成したいと思います。各惑星はランダムに配置する必要がありますが、2つの惑星が互いに直接隣接していることはほとんどありません。どうすればそれを達成できますか? 分布関数を適用することで可能性を変更できることを知っていますが、特定の値をより多く/より少なくするためにそれらをどのように制御できますか?

1
RK4、デリバティブ、ゲーム物理の理解
Gafferon Gamesには、物理​​シミュレーションを構築するためのRK4統合に関する優れた記事があり、ここにあります:統合の基本 個人的には、私の数学と物理学の知識で改善を利用できます。私はベクトル数学、トリガー、いくつかの統計(ソフトウェアに線形回帰式を使用する必要がありました)などの領域と、基本的に高校レベルから大学1年生までのほとんどの領域で快適です。 質問に答えて、私はこの記事を読み、関連するソースをダウンロードし、1行ずつデバッグして、何が起こっているのかを理解しようとしましたが、それでも私が見ているものを明確に取得していないように感じています。私はインターネットを検索して「For Dummies」バージョンを見つけようとしましたが、正直言って少し違った方法で学習し、暗記に重点を置いて数式をじっと見つめていると、何が起こっているのかを理解する必要があるので、それを削減するつもりはありません。柔軟に適用できます。 これが私がこれまでに理解したことだと思いますが、他の誰かが私を明確にしたり完全に修正したりできることを願っています。RK4はオイラーステップを使用し、それを基に時間を進めて、より基本的にいくつかのオイラーステップ(?)を計算し、加重和を使用して次のフレームの最適な位置と速度を決定しますか? さらに、その加速方法(AS3に変換): private function acceleration(state:State, time:Number):Number { const k:int = 10; const b:int = 1; return - k*state.x - b*state.v; } 一定の質量(10)と力(1)をとりますか?そして、奇妙な計算を返します。なぜかわかりません...-質量*位置-力*速度?何? 次に、私の最後の混乱のために、(AS3)のような評価メソッドで: private function evaluateD(initial:State, time:Number, dtime:Number, d:Derivative):Derivative { var state:State = new State(); state.x = initial.x + d.dx*dtime; state.v = initial.v + d.dv*dtime; …

7
偽のランダム分布を作成しますか?
時々「本当の」ランダムなイベントは不公平に見え、プレーヤーを不満にさせることがあります。たとえば、敵は20%の確率でダブルダメージ(クリティカルヒット)を引き起こします。したがって、彼は1/725の確率で連続して4つのクリティカルヒットを行うことができました。思ったほど小さくはありません。 各ヒット後に確率が調整されることを願っています。プレイヤーがクリティカルヒットを得たばかりの場合、次のヒットの確率は減少します。それ以外の場合は増加します。 この動作の数学モデルはありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.