これが私の状況です。プログラミングは初めてで、非常に基本的なプラットフォーム ゲームの作成を始めたばかりです。文字通り、プラットフォームを備えたゲームを意味します。
キャラクターを乗せて飛び回らせ、プラットフォームを配列として作成しました。これは、それらをすべて下に並べて配置できるようにするためでした。問題を回避するためにこれを行う方法は他にもありますが、配列に対してそれを行う方法を知りたいと思いました。
だから私はこれで私のキャラクターを倒しました
kirby.yVelocity += 1.0f
これで問題ありませんが、アレイ内のいずれかのプラットフォームにヒットしたときに、yVelocity を 0.0f にしたいと考えています。
だから私はこのコードを試しました
if (plat[i].drawRect.Intersects(kirby.drawRect))
{
kirby.yVelocity = 0.0f
}
これはうまくいくと思いましたが、[i] のエラーが表示され、このコンテキストでは適用できないというエラーが表示されます。
いくつかのメモ:
kirby は私のキャラクター名、drawRect は Rectangle の定義、plat は 13 のプラットフォームで構成される私の Platform 配列です。
助けてくれる人に感謝します
アップデート
問題は、plat.drawRect または plat[i].drawRect のバリエーションが機能しないことです。プラットフォーム配列に関連するすべてのコードを次に示します。
struct Platform
{
public Texture2D txr;
public Rectangle drawRect;
}
Platform[] plat;
plat = new Platform[13];
for (int i = 0; i < plat.Length; i++)
{
plat[i].txr = Content.Load<Texture2D>("platform");
plat[i].drawRect = new Rectangle(i * plat[i].txr.Width, 460, plat[i].txr.Width, plat[i].txr.Height);`
}
for (int i = 0; i < plat.Length; i++)
{
spriteBatch.Draw(plat[i].txr, plat[i].drawRect, Color.White);
}
spriteBatch.End();