Я видел несколько руководств, в которых прямоугольник использовался в качестве массива. Но их захватчики не анимированы. Я использую таблицу спрайтов для захватчиков, и мне нужно их всех анимировать... Как это сделать?
Вот мой класс захватчиков:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Storage;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
namespace SpaceInvaders
{
class botInvaders
{
public botInvaders()
{
}
public static Texture2D BotInvaderTex;
Rectangle BotInvaderHitBox;
public static Vector2 BotInvaderPos = new Vector2(0, 28), BotInvaderOrigin;
int BotInvaderCurrentFrame = 1, BotInvaderFrameWidth = 52, BotInvaderFrameHeight = 88;
float Timer = 0f, Interval = 100f;
public void Initialize()
{
}
public void LoadContent(ContentManager Content)
{
BotInvaderTex = Content.Load(".\\gameGraphics\\gameSprites\\botInvaders\\normalInvaders\\invaderShip1");
}
public void Update(GameTime gameTime)
{
BotInvaderHitBox = new Rectangle(BotInvaderCurrentFrame * BotInvaderFrameWidth, 0, BotInvaderFrameWidth, BotInvaderFrameHeight);
BotInvaderOrigin = new Vector2(BotInvaderHitBox.X / 2, BotInvaderHitBox.Y / 2);
Timer += (float)gameTime.ElapsedGameTime.Milliseconds;
if (Timer > Interval)
{
BotInvaderCurrentFrame++;
Timer = 0f;
}
if (BotInvaderCurrentFrame == 2)
{
BotInvaderCurrentFrame = 0;
}
BotInvaderHitBox = new Rectangle(BotInvaderCurrentFrame * BotInvaderFrameWidth, 0, BotInvaderFrameWidth, BotInvaderFrameHeight);
BotInvaderOrigin = new Vector2(BotInvaderHitBox.Width / 2, BotInvaderHitBox.Height / 2);
}
public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(BotInvaderTex, BotInvaderPos, BotInvaderHitBox, Color.White, 0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0);
}
}
}
Это показывает, как я анимирую захватчиков. Можно часть модифицированного кода, чтобы было 5 строк захватчиков и 10 столбцов? Я могу сделать движение сам, мне нужен только массив. Заранее спасибо!
Я видел несколько руководств, в которых прямоугольник использовался в качестве массива. Но их захватчики не анимированы. Я использую таблицу спрайтов для захватчиков, и мне нужно их всех анимировать... Как это сделать? Вот мой класс захватчиков: [code]using System; using System.Collections; using System.Collections.Generic; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Storage; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; using Microsoft.Xna.Framework.Net;
namespace SpaceInvaders { class botInvaders { public botInvaders() { }
public static Texture2D BotInvaderTex; Rectangle BotInvaderHitBox; public static Vector2 BotInvaderPos = new Vector2(0, 28), BotInvaderOrigin;
int BotInvaderCurrentFrame = 1, BotInvaderFrameWidth = 52, BotInvaderFrameHeight = 88;
float Timer = 0f, Interval = 100f;
public void Initialize() { }
public void LoadContent(ContentManager Content) { BotInvaderTex = Content.Load(".\\gameGraphics\\gameSprites\\botInvaders\\normalInvaders\\invaderShip1"); }
public void Update(GameTime gameTime) { BotInvaderHitBox = new Rectangle(BotInvaderCurrentFrame * BotInvaderFrameWidth, 0, BotInvaderFrameWidth, BotInvaderFrameHeight); BotInvaderOrigin = new Vector2(BotInvaderHitBox.X / 2, BotInvaderHitBox.Y / 2);
if (Timer > Interval) { BotInvaderCurrentFrame++; Timer = 0f; }
if (BotInvaderCurrentFrame == 2) { BotInvaderCurrentFrame = 0; }
BotInvaderHitBox = new Rectangle(BotInvaderCurrentFrame * BotInvaderFrameWidth, 0, BotInvaderFrameWidth, BotInvaderFrameHeight); BotInvaderOrigin = new Vector2(BotInvaderHitBox.Width / 2, BotInvaderHitBox.Height / 2); }
public void Draw(SpriteBatch spriteBatch) { spriteBatch.Draw(BotInvaderTex, BotInvaderPos, BotInvaderHitBox, Color.White, 0f, Vector2.Zero, 1.0f, SpriteEffects.None, 0); } } } [/code] Это показывает, как я анимирую захватчиков. Можно часть модифицированного кода, чтобы было 5 строк захватчиков и 10 столбцов? Я могу сделать движение сам, мне нужен только массив. Заранее спасибо!
Я подумал, что было бы интересно попробовать свои силы в создании красивых астрономических изображений, используя данные космического телескопа Джеймса Уэбба (JWST), которые можно бесплатно загрузить... если вы понимаете в этом смысл.
/>Существует...
Я планирую сделать простую игру с использованием XNA и хотел бы добавить возможность использования контроллера Play Station 2. Есть ли способ обнаружить его входные данные?
Currently working on a game using XNA with MonoGame but have run into a visual error while trying to render the background where it'll appear above sprites when it should always appear behind.
The background render target will occasionally flicker...