問題タブ [procedural]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
landscape - 既存の地形に基づくオンザフライの地形生成
この質問は、ここで提起された質問と非常によく似ています。
私の問題は、次のようなマップがあることです。
このマップは、2Dパーリンノイズを使用して作成され、作成された高さマップを実行して、対応する要素の高さまたは勾配に基づいて、地形内の各要素にタイプと色の値を割り当てます。これはかなり標準的です。マップ配列は2次元であり、画面サイズの正確な寸法(ピクセル/ピクセル)であるため、1200 x 800の生成では、リグで約2秒かかります。
次に、強調表示された長方形を拡大します。
明らかに、サイズが大きくなると、ディテールが失われます。そしてここに問題があります。その場で追加の詳細を作成し、プレーヤーが動き回るときにそれをディスクに書き込みたいと思います(プレーヤーは、グリッドに沿った動きに制限されたドットになります)。これを行うための2つのアプローチがあり、最初に頭に浮かんだのはすぐに実装したものです。
これは、前の画像の黄色のグリッドスペース(中央の左側)で強調表示されている、古い地形のサンプリングされた要素から作成された新しいバイアスされたローカル地形の拡大図です。ただし、このシステムでは大幅な変更が必要になります。たとえば、黄色のグリッドスペースの1つ上にあるユニットをビーチタイルに移動すると、地形が完全に変化します。
したがって、それが正しく機能するためには、過度の量を実行する必要があります。プレーヤーが次の場所に到達するために必要なローカル世界の40ほどのグリッドスペースを移動したときにスムーズな遷移を作成するために、単語は補間になると思います。世界中でタイル張り。それは複雑で非常にエレガントではないようです。
2番目のアプローチは、元のマップのグリッドを小さなビットに分割し、各正方形を4で割ることです。私はこれを実装しておらず、実際に詳細を増やす方法がわかりませんが、おそらくそれが最善の解決策になると思います。
これにどのようにアプローチできるかについてのアイデアはありますか?ローカルでオンザフライである必要があることに注意してください。地図の解像度を上げるだけでは、絶対に避けたいと思います。
3d - 最速のパーリンのような 3D ノイズ アルゴリズム?
Ken Perlin が最初にノイズを発明してから 20 年以上が経過しました。Perlin に近いプロパティ (手続き型、自然に見えるグループ化、バンディングの削減、通常の機能サイズなど) を備えた、より高速な種類の 3D ノイズ ジェネレーターを作成できた人はいますか?
プロシージャル ワールド ジェネレーターを構築しようとしていますが、現在 Perlin ではうまくいきません。私の実装が現時点で最高のものではないことは認めますが、とにかく書き直す場合は、より良いアルゴリズムが利用できるかどうか疑問に思いました.
php - PHPの手続き型からOOPへ
手続き型コードをoopに変換しようとしています。
HTMLスタイルなしのクラス/オブジェクトでの私の不完全な試み:
私の手続き型コードは次のように出力されます:1 One22。
私のoopコードは次のように出力されます:2 Two
私の理解では、$info_idと$info_titleは配列ではなく、最後に保存された情報のみを出力するため、oopはそのように出力されます。
だから、私が変更した場合:
に:
配列を印刷すると、必要なすべての情報が表示されますが、配列以外の形式で表示するにはどうすればよいですか?
私が今までやってきたことは正しいですか、それとも私はこれに近づいていますか?
php - オブジェクトまたはOOPを使用して手続き型コードを記述していますか?
つまり、基本的に私は手続き型コーディングからOOPへと飛躍しています。私はOOPの原則を実装しようとしていますが、実際にはオブジェクトを使用して手続き型スタイルを記述しているだけで、しつこい感じがします。
つまり、パイプ/椅子/プリンターなどのリストがあるとすると、それらはすべて、単一のテーブルデータベースに製品としてリストされています。タイプに応じてリスト全体とアイテムを表示するWebアプリを構築する必要があります。OOPとそのパラダイムの「正しい」使用に重点が置かれています。
次のようにするだけで何か問題がありますか?
そして単に
また、次のようなより具体的な表示方法を実装します。
showSpecificProduct($ id)->($ idは、ユーザーがリンクの1つをクリックすると言うと、$ _ GETを介して渡され、基本的には次のような個別のproduct.phpファイルが作成されます。
showSpecificProduct()は、選択クエリと表示用のHTMLの出力の両方を実行します。
簡単に言うと、私はそれについて大丈夫ですか、それともクラスとオブジェクトを使用して手続き型コーディングを行っているだけですか。また、私が間違っている場合にそれを解決するためのアイデア/ヒントなどはありますか?
c++ - クラスの手続き型インスタンス化 - 方法は?
インスタンスの ID 番号を単に報告する 1 つのメソッドを持つクラス Object があるとします。通常、「Object obj_1」のようなオブジェクト クラスのインスタンス化と、「obj_1.report」のようなメソッドの呼び出しをハードコーディングします。
私の質問は、プロシージャルにオブジェクトをインスタンス化する方法です。たとえば、obj_1、obj_2 など、obj_n まで n 個のオブジェクトを作成したいとします。当然、実際のループについてではなく、変数を使用してクラスをインスタンス化する方法について質問していますが、名前の代わりに変数の値を取得して obj_ プレフィックスに追加します。おそらくキャストで?また、ID のみを指定して特定のインスタンスのメソッドを手続き的に呼び出すにはどうすればよいですか。インスタンス化とメソッド呼び出しの両方が同じように機能すると思いますが、初心者として、ハードコーディングするのではなく、外出先で正確に行う方法を理解するのに苦労しています。
前もって感謝します!
編集: C++ 構文に興味があります
java - 2Dノイズ生成のためのパラメトリックランダム関数
無限のランダムな地形を生成しようとしています。地形は、同じシードが与えられるたびに同じものを生成する必要があります。
Javaのランダム関数を使用して、地形グリッド上の特定のノードのx座標とy座標のさまざまな関数を使用してシードを作成してみました。x * y + x + y + seed、20 * x + 30*yなど。
このアプローチの問題は、生成された数値に常に明確なパターンが見られることです。
つまり、基本的に私が欲しいのは次のとおりです。f(x、y)=乱数
上記の関数にある種のシードを含めることができれば、次のようになります。f(x、y、seed)=乱数
x、yの組み合わせごとにいくつかの数値を生成する必要がありますが、上記の関数を使用すると、追加の数値を簡単に導出できるはずです。これらは、地形の高さ、およびどのような特徴(建物、樹木)が存在するかを決定するのに役立ちます。
パーリンノイズや他のそのような方法については言及しないでください。私の問題は、ノイズの見栄えを良くすることではなく、確実に「ランダムな」ノイズを取得することです。
ありがとう、ジェイミー。
php - 名前空間とoopを使用したphp手続き
私の理解では、PHP での OOP と手続き型プログラミングの最大の利点は、関数名の分離 (一種の名前空間) です。
バージョン 5.3 以降の名前空間がある場合、どう思いますか? ほとんどの場合 (小規模から中規模の Web サイト)、高速で構造化されたコードが必要な場合は、名前空間を使用してください + 手続き型プログラミングは、定義して書き込むよりも大きな利点があります。おっと。
利点:
- 構造化された
- コード/開発の高速化
- ここでも、「_」で始まる名前空間内にプライベート関数のようなものを定義できますが、それらを使用する必要がないことがわかっています。
- 等..
コード例:
使用法:
意見募集中です。開発者のスタイルだけであることは知っていますが、何かが足りないかもしれません。
PS。ほとんどの場合 (小規模から中規模の Web サイト) - つまり、ほとんどが 1 回の開発であり、長期的には少し機能を改善するクライアント向けの Web サイトを作成する場合です。
math - メッシュ操作のためのガウスフォールオフフォーマット
以下のこのリターンは、ガウスフォールオフとして定義されています。eまたは2の累乗が表示されないため、これがガウスフォールオフとどのように関連しているか、またはメッシュを滑らかに変形させるために使用するフォールアウトの種類が間違っているかどうかはわかりません。
ここでMathf.Clamp01
、0から1までの値を返します。
inRadius
は歪みのサイズであり、次の要素distance
によって決定されます。
vertices
はメッシュの頂点のリストでありposition
、メッシュの操作/変形のポイントです。
私の質問は2つの部分です:
1)上記は実際にガウスフォールオフですか?指数関数的ですが、2の重要なeまたは累乗はないようです...(更新-グラフがガウスのように滑らかに減少するように見えることがわかります。おそらく、この関数は問題2の原因ではありません。下)
2)メッシュが十分にスムーズに変形していません-上記のパラメーターを考慮して、別のガウスフォールオフをお勧めしますか?
php - PHP OOP 設計で使用するクラスの選択
私はアーケード サイトを運営していますが、ここ数年の間に多くの機能が追加されました。手続き型プログラミングが複雑すぎるように見え、新しい機能を追加したり、単純なデザインの変更を加えたりするのは非常に難しい場合があります。
したがって、同じ機能を備えた OOP 形式でサイトをゼロから再コーディングすることにしました。
私が抱えている問題は、クラスを選択することです.OOPとそれがどのように機能するかを理解していますが、常に開始するのに問題があるようです. ログインユーザー関数を持つユーザークラスなどのクラスの関数を作成しようとする必要があるのか 、それともユーザークラスがユーザーの詳細を追加/更新/表示するだけで、ログイン部分がシステムでより優れているかはわかりませんクラス?
現時点では、次のクラスと関数から始めましたが、このカテゴリに収まりますか?
次に、page.php .. (接続クラスは表示されません) に次のようなものを含めることができます。
しかし、サイトにはゲームのカテゴリを表示するページがあり、単一のゲームではないため、displayGames() 関数がどこに収まるかわかりません。
「現実世界」の例を見つけようとしましたが、象の色を変えたり踊ったりする方法を示すphpコードはあまり役に立ちません...
math - Tiny Wings のように、高さと幅が異なるなだらかな丘を生成しますか?
Tiny Wings のように高さと幅が異なるなだらかな丘を生成するにはどうすればよいですか? 現在、sin() を使用していますが、明らかに均一な丘が永遠に繰り返されます。
秘密は何ですか?
ありがとう!