Навигация
· XNA FAQ
· С чего начать
· Конкурсы
· Обратная связь
· XNA Блоги
Сейчас на сайте
· Гостей: 1

· Пользователей: 0

· Всего пользователей: 3,684
· Новый пользователь: headron
Последние фото
Эх, чуть не проспал закрытие.
Эх, чуть не проспал ...
Альбом: XNA Engine

GB
GB
Альбом: XNA Engine

South Park Coon & Friends
South Park Coon & Fr...
Альбом: XNA Games

Блоги
yavshoke
» XboxOne - интерес...
dampirik
» Push уведомления ...
dampirik
» Реклама,статистик...
Chort
» XNA и StartCoroutine
Chort
» Curve Class
dampirik
» Реклама, статисти...
dampirik
» Увеличение скорос...
dampirik
» Реклама, статисти...
general
» Распаковка DxtCom...
general
» Как работать с XN...
Поддержка
microsoft.com
1gb.ru - Дом для вашего сайта
Статистика посещений:

Просмотр темы
 Распечатать тему
Не работает SpriteBlendMode
yaz77
#1 Распечатать сообщение
Опубликовано 08.12.2010 11:22:50
Младший специалист


Сообщений: 20
Зарегистрирован: 23.12.09

Здравствуйте…
Я писал программу на XNAGS31 под (Visual Stududio 2008) и у меня все работало. Но как только я перешёл на XNA 4 соответственно под (Visual Stududio 2010) у меня появилась следующая проблема…
При обработки строки
spriteBatch.Begin(SpriteBlendMode.None);

пишет : Элимент SpriteBlendMod не существует в текущем контексте.
Полный текст…
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
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;
using Microsoft.Xna.Framework.Storage;

namespace Apocalypse
{
public class Game1 : Microsoft.Xna.Framework.Game
{
SpriteBatch spriteBatch;
GraphicsDeviceManager graphics;
KeyboardState keyboardState;
private Texture2D background; // Фон игрового поля
private Rectangle viewPortRectangle; // Границы игрового поля
//Мировая матрица
Matrix WorldMatrixM1, WorldMatrixM2, WorldMatrixM3, WorldMatrixM4;
//Модели -
//modelCls вращается
modCls ship, planeta1, luna1, dok, dok_platforma;
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
graphics.PreferredBackBufferWidth = 1680;
graphics.PreferredBackBufferHeight = 1050;
graphics.PreferMultiSampling = false;
graphics.IsFullScreen = true;
}
protected override void Initialize()
{
base.Initialize(); // TODO: Add your initialization logic here

}
protected override void LoadContent()
{
//загрузка моделей и создание объектов, используемых для
//хранения информации о моделях и их вывода на экран
ship = new modCls(this, Content.Load<Model>("shmel"), graphics);
planeta1 = new modCls(this, Content.Load<Model>("planet1"), graphics);
luna1 = new modCls(this, Content.Load<Model>("luna_1"), graphics);
dok = new modCls(this, Content.Load<Model>("dok"), graphics);
dok_platforma = new modCls(this, Content.Load<Model>("dok_platforma"), graphics);
background = Content.Load<Texture2D>("background");
//Добавляем объекты в коллекцию Components - для их
//автоматического вывода на экран
Components.Add(ship);
Components.Add(planeta1);
Components.Add(luna1);
Components.Add(dok);
Components.Add(dok_platforma);
//Установка матриц, которые используются для управления объектами
WorldMatrixM1 = Matrix.CreateTranslation(0.0f, 0.0f, 0.0f);
WorldMatrixM2 = Matrix.CreateTranslation(0.0f, 0.0f, 0.0f);
WorldMatrixM3 = Matrix.CreateTranslation(19.0f, 0.0f, 0.0f);
WorldMatrixM4 = Matrix.CreateTranslation(-3.0f, -2.5f, 1.0f);
}
protected override void UnloadContent()
{
// TODO: Unload any non ContentManager content here
}
protected override void Update(GameTime gameTime)
{
//Матрица для объекта modelCls1 устанавливается для поворота его вокруг
//осей X и Y на один градус
WorldMatrixM1 = WorldMatrixM1 * Matrix.CreateRotationY(MathHelper.ToRadians(1f));
WorldMatrixM2 = WorldMatrixM2 * Matrix.CreateRotationY(MathHelper.ToRadians(0.1f));
WorldMatrixM3 = WorldMatrixM3 * Matrix.CreateRotationY(MathHelper.ToRadians(0.1f)) * Matrix.CreateRotationX(MathHelper.ToRadians(0.1f));

//Передаем матрицы объектам
ship.WorldMatrix = WorldMatrixM1 * Matrix.CreateTranslation(-3.0f, -1.3f, 0.0f);
planeta1.WorldMatrix = WorldMatrixM2 * Matrix.CreateTranslation(-20.0f, 10.0f, -50.0f);
luna1.WorldMatrix = WorldMatrixM3 * Matrix.CreateTranslation(-29f, 1f, -50f);
dok_platforma.WorldMatrix = WorldMatrixM4;
base.Update(gameTime);
keyboardState = Keyboard.GetState();
if (keyboardState.IsKeyDown(Keys.Escape))
this.Exit();
}
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
// TODO: Add your drawing code here
spriteBatch = new SpriteBatch(GraphicsDevice);
//Фоновое изображение
// Границы игрового поля
viewPortRectangle = new Rectangle(0, 0,
graphics.GraphicsDevice.Viewport.Width,
graphics.GraphicsDevice.Viewport.Height);

spriteBatch.Begin(SpriteBlendMode.None);

// Рисуем фон
spriteBatch.Draw(background, viewPortRectangle, Color.White);
spriteBatch.End();
base.Draw(gameTime);
}
}
}

Обращаю ваше внимание, что программа работает на другом компьютере с прежней версией vs и xna…
Подскажите пожалуйста в чем может быть проблема и как её исправить ?
Изменил(а) yaz77, 08.12.2010 11:24:27
 
Bandit
#2 Распечатать сообщение
Опубликовано 08.12.2010 11:31:07
Специалист


Сообщений: 188
Зарегистрирован: 18.02.09

структуры SpriteBlendMode в 4 хна нет... Есть класс BlendState ... Ихмо.. читай встроенную справку по 4 хна
Последнее творение -> XNA на WPF
 
yaz77
#3 Распечатать сообщение
Опубликовано 08.12.2010 13:35:45
Младший специалист


Сообщений: 20
Зарегистрирован: 23.12.09

Bandit написал:
структуры SpriteBlendMode в 4 хна нет... Есть класс BlendState ... Ихмо.. читай встроенную справку по 4 хна


Спасибо, что ответили на первую часть вопроса (Подскажите пожалуйста в чем может быть проблема и как её исправить ?)
Как вы понимаете (SpriteBlendMode.None) мне нужна, чтобы модели не просматривались через другие модели. А как использовать для этого класс BlendState я ни как не могу понять.
Если можно приведите пожалуйста пример как добиться того же эффекта в xna 4.
 
Chort
#4 Распечатать сообщение
Опубликовано 08.12.2010 15:42:30
Аватар пользователя

Администратор


Сообщений: 1296
Зарегистрирован: 16.02.09

ну как бы так, посмотри другие статик переменные класса BlendState
Загрузить источник  GeSHi: C#
  1. spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied);
Добавлено за 0.005 секунд, используя GeSHi 1.0.8.2

На вопросы отвечаю с головы. Ссылка на ответы или запускаю студию только в интересных случаях.
 
yaz77
#5 Распечатать сообщение
Опубликовано 08.12.2010 16:25:24
Младший специалист


Сообщений: 20
Зарегистрирован: 23.12.09

Chort написал:
ну как бы так, посмотри другие статик переменные класса BlendState
Загрузить источник  GeSHi: C#
  1. spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied);
Добавлено за 0.004 секунд, используя GeSHi 1.0.8.2


К сожелению не работает…
 
yaz77
#6 Распечатать сообщение
Опубликовано 09.12.2010 18:53:07
Младший специалист


Сообщений: 20
Зарегистрирован: 23.12.09

Что ни кто не знает как сделать чтоб текстуры моделей на просвечивались через другие модели ?
 
general
#7 Распечатать сообщение
Опубликовано 09.12.2010 19:01:34
Аватар пользователя

Администратор сайта


Сообщений: 3788
Зарегистрирован: 10.02.09

мне не понятно что у тебя за текстуры такие и почему они просвечиваются.
информации мало, намутить мог что угодно.
вопрос простой, в документации все описано.
[dreamteam-mobile]
[dtimofeev.blogspot.com][c#][XNA][blog]
 
mike
#8 Распечатать сообщение
Опубликовано 10.12.2010 11:19:57
Аватар пользователя

Администратор сайта


Сообщений: 739
Зарегистрирован: 10.02.09

Пробуй в Begin(..) передать BlendState.Opaque
 
yaz77
#9 Распечатать сообщение
Опубликовано 10.12.2010 17:39:03
Младший специалист


Сообщений: 20
Зарегистрирован: 23.12.09

В архиве минипроект test…

Там два обьекта – маленький летает вокруг большого при этом его видно когда он находится за большим… прошу помоч исправить это желательно прям в нём.
С уважением Евгений…
yaz77 присоединил файл:
test_1.rar
 
general
#10 Распечатать сообщение
Опубликовано 10.12.2010 18:23:45
Аватар пользователя

Администратор сайта


Сообщений: 3788
Зарегистрирован: 10.02.09

код проекта ужасен. наворочено одно на другое.
не стал я умничать...

перенес:
Загрузить источник  GeSHi: C#
  1. protected override void LoadContent()
  2. {
  3. spriteBatch = new SpriteBatch(GraphicsDevice);
  4. ...
  5. }
Добавлено за 0.004 секунд, используя GeSHi 1.0.8.2


восстановил убитый стейт:
Загрузить источник  GeSHi: C#
  1. protected override void Draw(GameTime gameTime)
  2. {
  3. GraphicsDevice.Clear(Color.Black);
  4.  
  5. // TODO: Add your drawing code here
  6.  
  7. //Фоновое изображение
  8.  
  9. // Границы игрового поля
  10. viewPortRectangle = new Rectangle(0, 0,
  11. graphics.GraphicsDevice.Viewport.Width,
  12. graphics.GraphicsDevice.Viewport.Height);
  13.  
  14.  
  15. spriteBatch.Begin();// в прежней версии была строка spriteBatch.Begin(SpriteBlendMode.None);
  16. // Рисуем фон
  17. spriteBatch.Draw(background, viewPortRectangle, Color.White);
  18. spriteBatch.End();
  19.  
  20. DepthStencilState dss = new DepthStencilState();
  21. dss.DepthBufferEnable = true;
  22. graphics.GraphicsDevice.DepthStencilState = dss;
  23.  
  24. base.Draw(gameTime);
  25. }
Добавлено за 0.007 секунд, используя GeSHi 1.0.8.2


кто помнит как сделать красиво милости прошу.
Изменил(а) general, 10.12.2010 18:26:12
[dreamteam-mobile]
[dtimofeev.blogspot.com][c#][XNA][blog]
 
yaz77
#11 Распечатать сообщение
Опубликовано 10.12.2010 20:10:27
Младший специалист


Сообщений: 20
Зарегистрирован: 23.12.09

general написал:
код проекта ужасен. наворочено одно на другое.
не стал я умничать...

перенес:
Загрузить источник  GeSHi: C#
  1. protected override void LoadContent()
  2. {
  3. spriteBatch = new SpriteBatch(GraphicsDevice);
  4. ...
  5. }
Добавлено за 0.005 секунд, используя GeSHi 1.0.8.2


восстановил убитый стейт:
Загрузить источник  GeSHi: C#
  1. protected override void Draw(GameTime gameTime)
  2. {
  3. GraphicsDevice.Clear(Color.Black);
  4.  
  5. // TODO: Add your drawing code here
  6.  
  7. //Фоновое изображение
  8.  
  9. // Границы игрового поля
  10. viewPortRectangle = new Rectangle(0, 0,
  11. graphics.GraphicsDevice.Viewport.Width,
  12. graphics.GraphicsDevice.Viewport.Height);
  13.  
  14.  
  15. spriteBatch.Begin();// в прежней версии была строка spriteBatch.Begin(SpriteBlendMode.None);
  16. // Рисуем фон
  17. spriteBatch.Draw(background, viewPortRectangle, Color.White);
  18. spriteBatch.End();
  19.  
  20. DepthStencilState dss = new DepthStencilState();
  21. dss.DepthBufferEnable = true;
  22. graphics.GraphicsDevice.DepthStencilState = dss;
  23.  
  24. base.Draw(gameTime);
  25. }
Добавлено за 0.007 секунд, используя GeSHi 1.0.8.2


кто помнит как сделать красиво милости прошу.


Большое спасибо !
 
general
#12 Распечатать сообщение
Опубликовано 10.12.2010 22:34:11
Аватар пользователя

Администратор сайта


Сообщений: 3788
Зарегистрирован: 10.02.09

там можно аккуратно сделать.
просто поленился.
[dreamteam-mobile]
[dtimofeev.blogspot.com][c#][XNA][blog]
 
Перейти на форум:
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Мини-чат
Вы должны авторизироваться, чтобы добавить сообщение.

27.08.2014
Я умею немного на asp.net + html и css

22.08.2014
на ASP mvc 3 есть пару проектов. Могу помочь, если нужно. Обидно, если закроется Frown

21.08.2014
я тоже ноль

21.08.2014
Я в вебе только с php занимался да и то на уровне чтоб работало.

21.08.2014
Я в вебе полный ноль…

21.08.2014
Переводить его надо, хоть на ту же азуру. И двиг менять на что-то современное. Если есть веб-разрабы - можем скооперироваться. Один делать не буду.

21.08.2014
не знаю всех нюансов по оплате и все хорошее когда нибудь заканчивается

21.08.2014
А что случилось?

21.08.2014
похоже сайт будет работать до 28го числа

09.08.2014
Апи пока не видел. Но есть приложение в магазине Live Lock Screen BETA, так что думаю скоро будет

08.08.2014
Я про API для Update1. На нем работает это

08.08.2014
А что именно нужно? Чтото и сейчас открыто http://msdn.micro.
...105).aspx

06.08.2014
Кто-нибудь слышал об открытии доступа к Lock Screen Api?

31.07.2014
VPDExpress на базе MVS 2012, ни в какую не ловит исключения. Даже если их сам создаешь. И всех так?

25.07.2014
С днем системного администратора причастных к этой профессии! По случаю - тортик от жены

RSS каналы сайта
XNA - Новости
XNA - Статьи
XNA - Форум
XNA - Галерея
XNA - Файлы
Время загрузки: 0,42 секунд 8,709,584 уникальных посетителей