私は現在XNAでゲームを作っています。これまでは順調に進んでいますが、ゲームの実行中にスプライトのテクスチャを変更する方法がわかりません。この例は次のようになります。キャラクターがまだ1つの画像である場合、彼が歩くと別の画像になります。どうすればこれを実現できますか?
質問する
1494 次
2 に答える
0
チェックを実行し、インスタンスTexture2D texture
をプリロードされたライブラリから他のテクスチャに設定するだけです。
私は通常、コンテンツフォルダ内のすべてのテクスチャを辞書にロードし、次のように使用します。
var StringTextureDic = new Dictionary<string, Texture2D>();
// code that loads all textures into the dictionary, file names being keys
// whenever I need to assign some texture, I do this:
if (!playerIsMoving)
Player.texture = StringTextureDic["player standing"];
if (playerIsMoving)
Player.texture = StringTextureDic["player moving"];
于 2013-01-20T05:33:42.103 に答える
0
実際、ゲーム中にプレイヤーのテクスチャを変更するのは悪い考えです。そんな時はテクスチャーシートを使うのがいいと思います。
Rectangle frame;
int curFrame;
int frameWidth;
int frameHeight;
int runAnimationLength;
Update()
{
//Handle your "animation code"
if(playerIsMoving)
curFrame++; //Running
if(curFrame == runAnimationLength)
curFrame =0;
else
curFrame = 0; //Standing still
}
Draw(SpriteBatch spriteBatch)
{
frame = new Rectangle(curFrame*frameWidth,curFrame*frameHeight,frameWidth,frameHeight);
spriteBatch.Draw(
texture,
position,
**frame**,
color,
rotation,
origin,
SpriteEffects.None,
1);
}
于 2013-01-20T10:43:54.617 に答える