問題タブ [bit-masks]

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.

0 投票する
2 に答える
133 参照

sprite-kit - SpriteKit の物理接点

この単純な状況でビットマスキングがどのように機能するかを説明することは可能ですか?

どういうわけか、これはそれらの間でオフになっているため、それらの間に衝突はありません。衝突マスクを 32 ビット全体で 00 に設定していると思いますが、それは別の質問にしましょう。これらをオフにする方法はまだわかりません。

各ボールに固有のコンタクト ビット マスクを設定したら、ボールがコンタクトしたときにコンタクト情報を提供するにはどうすればよいでしょうか?

どの 2 つのボールが互いに接触したかを知るにはどうすればよいでしょうか?

特定のコンタクトで最大のボールだけがコンタクト情報を受信することは可能ですか?


アップデート:

私は必ずしもコードを求めているわけではありません。何が何で、どのように機能し、なぜ何が何をするのかを説明するコードが必要な場合は、コードを使用してください。

しかし、私が本当に求めているのは、ビットマスキングがどのように機能して、接触に「誰」が関与したかを判断できるロジックを提供する方法を理解することです。

ボールのサイズごとに異なるビットマスクを指定した理由は、2 つのボール間の特定の接触において、より大きなボールを決定するのに役立つと考えたからです。しかし、私はこれについて間違っている可能性があります。

更新 2:

進行中のプロセスの理解:

私が理解しているように、これらはプロセスの一部です。

  1. SKView をサブクラス化した SKScene を、物理ワールドの連絡先通知デリゲートに準拠するものとして登録します。それもそうだと言う。

  2. シミュレーションで知りたい、および/または制御したい身体的相互作用タイプの欲求の各タイプのカテゴリとしてビットマスクを設定します

  3. これらのビットマスクを使用して、それらを適切に適用することにより、接触や衝突の一部にすることが望まれる各オブジェクトの性質を明確にします (ここでは魔法のような意思決定が行われます)。

  4. デリゲートとして登録された同じ SKView サブクラスで、何かを行うコードで連絡先コールバックをオーバーライドします

  5. 誰/何が誰に連絡したかを判断する魔法のコードを作成します。


私はこれらのいくつかを理解していますが、連絡先ビットマスクの設定とカテゴリビットマスクの命名の理由の違いは理解していません。また、誰が誰に連絡したかを判断する方法も理解していません。

0 投票する
1 に答える
2052 参照

hex - 10進数からビットマスクに変換する方法は?

以前に他の誰かによって構築された ACL システムがあり、そこでビットマスキングがどのように機能するかを理解しようとしています。私はこの4つの定数を定義しています:

次に、DB で、1、2、5、9、15 のような権限を持つユーザーが表示されます。このツールを使用してそれらを変換しようとしたところ、次の結果になりました。

この作品について、私は次のように考えています。

最後の 2 つのビットは であるため、これらのユーザーにはアクセス許可があると1想定しています(上記の表を参照)。そうですか?そうでない場合、10進数からビットマスクに変換する正しい方法は何ですか?3UPDATE|DELETE

0 投票する
1 に答える
292 参照

symlink - シンボリックリンクの st_mode の値がおかしい

このシンボリックリンクを (Kubuntu GNU/Linux 16.04 上で) 実行していますが、8 進数の0100600 stat()(10 進数で 33152) という奇妙な値を取得しています。ビットごとにS_IFMT(これは 0170000 8 進数です)、0600 8 進数を取得します。どういう意味ですか?stat.h次の値を示します。

0600 (すべて 8 進数) ではなく、0120000 が表示されることを期待しています。何を与える?