![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 04.02.2011
Сообщений: 12
|
![]()
Доброе время суток! Не могу разобраться с одной проблемой У меня есть несколько спрайтов Один из них я делаю анимированной (привожу в движение) Все работает замечательно!!! Но вот возникла такая проблемка: я хочу этот же самый спрайт размножить, т.е. чтобы на основном фоне было к примеру штук 5 таких анимированных спрайтов, но уже с разными координатами
Вот часть кода из класса MyGame: protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); Picture1 = Content.Load<Texture2D>("Content//Textures//Часть1"); idleTexture = Content.Load<Texture2D>("Content//Textures//Птичка1"); runTexture = Content.Load<Texture2D>("Content//Textures//BirdFly"); bird = new AnimatedSprite[5]; for (int i = 0; i < bird.Length; i++) { y = Rnd.Next(30, 300); rect = new Rectangle(x - 90, y, 90, 60); bird[i] = new AnimatedSprite(rect, idleTexture, runTexture); } } Часть кода класса AnimatedSprite: public AnimatedSprite(Rectangle rect,Texture2D idle, Texture2D run) { this.rect = rect; this.runTexture = run; this.idleTetxture = idle; frameWidth = 90; frameHeight = run.Height; x = run.Width; Rnd = new Random(); y = Rnd.Next(30, 300); dx = dy = 10; } public void Update(GameTime gameTime, int Width) { if (isLife) { timeElapsed += gameTime.ElapsedGameTime.Millisecon ds; if (timeElapsed > timeForFrame) { timeElapsed = 0; currentFrame = (currentFrame + 1) % FrameCount; x = x - dx; if (x <= -100) { x = Width; y = Rnd.Next(30, 300); } rect.Location = new Point(x, y); } } } public void Draw(SpriteBatch spriteBatch) { if (isLife) { sourceRect = new Rectangle(frameWidth * currentFrame, 0, frameWidth, frameHeight); spriteBatch.Draw(runTexture,rect, sourceRect, Color.White); } else { spriteBatch.Draw(idleTetxture, rect, Color.White); } } Последний раз редактировалось Renat21; 07.07.2011 в 00:03. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
XNA: DrawPrimitives() | ds.Dante | C# (си шарп) | 2 | 29.06.2011 17:59 |
XNA | dampirik | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 5 | 22.06.2011 01:59 |
составление Библиотеки процедур для работы со спрайтами TransSpr в turbo pascale 7.0 | сергей12345 | Помощь студентам | 0 | 27.03.2011 15:49 |
XNA 4, C# | stck | C# (си шарп) | 1 | 01.02.2011 04:28 |
C# XNA | Cpluser | Общие вопросы .NET | 1 | 19.12.2009 15:07 |