0

ねえ、私は Lidgren をたくさん探していて、シンプルなコンソール クライアントとサーバーを手に入れることができましたが、2D には本当に苦労しています...

基本的に、これまでのところコンソール ベースのアプリケーションしかありませんが、Lidgren を使用した 2D ゲームの例を見つけました。サーバーを開き、次に 2 つのアプリケーションを開きました。それらは自動的に接続され、2 つのウィンドウで遊ぶことができ、もう一方の画面でキャラクターが動くのを確認できました。そのプロジェクトは配列を使用してテクスチャをロードし、Draw()メソッドでは単純に配列を描画しますが、次の値を使用します。

foreach (var kvp in positions)
{
   // use player unique identifier to choose an image
   int num = Math.Abs((int)kvp.Key) % textures.Length;`
   // draw player
   spriteBatch.Draw(textures[num], kvp.Value, Color.White);
}

誰かがそのnum変数が何をするのか説明できますか? そして、これを行うために異なるクラスを使用したい場合は、単純に同じことを行いますが、プレーヤー クラスとアニメーションで行います - テクスチャ更新データをどのように送信しますか?? 申し訳ありませんが、私は多くの質問をしています..しかし、実際に役立つものは何も見つかりませんでした:/

事前に感謝します。何か他のことを知る必要がある場合は、教えてください! :)

4

1 に答える 1

0

このnum変数は、textures 配列から、常に同じである一意のテクスチャを選択するだけです。4 つのテクスチャがあるとしますがKeyモジュロ演算子( %) は の残りを取得し7/4ます。これは 3 になります。基本的には、繰り返す必要があるため、テクスチャの量をラップします (Ex、Id4および Id8は同じです)。テクスチャ)

今のところ、静的テクスチャのみを使用できますが、同じコードを使用してテクスチャ バリエーションを選択できます。

テクスチャ更新データとは?テクスチャを変更したり、位置を更新したりしますか? テクスチャを変更する場合、テクスチャは既知ですか? (例: ID/名前は送信できますか? データは送信する必要がありますか?)

于 2013-11-09T23:06:53.710 に答える