![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 04.02.2011
Сообщений: 12
|
![]()
Доброе время суток! Помогите мне пожалуйста разобраться с одним вопросом. С языком программирования C# я знаком давно, но вот с платформой Microsoft XNA 4.0 Game Studio 4.0 я знаком лишь 3 дня Я начал свое знакомство с книги "Разработка игр под Windows в XNA Game Studio Express" И у меня сразу же возник вопрос: почему при попытке загрузки спрайта файл не загружается?
Вот код класса Game1.cs: namespace MyGame { public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; //ContentManager content; KeyboardState MyKeybordState; //Vector2 spritePosition; Sprite sprite; public Game1() { graphics = new GraphicsDeviceManager(this); Content = new ContentManager(Services); Content.RootDirectory = "Content"; Window.Title = "Моя первая игра"; graphics.PreferredBackBufferWidth = 1024; graphics.PreferredBackBufferHeight = 768; graphics.PreferMultiSampling = false; graphics.ToggleFullScreen(); sprite = new Sprite(); } protected override void Initialize() { sprite.spritePosition = new Vector2(Window.ClientBounds.Width / 2, Window.ClientBounds.Height / 2); base.Initialize(); } /// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { sprite.Load(Content, @"Textures\Main"); //Вот здесь файл Main.png должен загружаться //но компилятор пишет либо File not found хотя //я пробывал кидать папку content во все //какие только можно папки проекта, либо //компилятор выводит File not open //Помогите пожалуйста разобраться //У меня стоит Visual Studio 10 и //Microsoft XNA Game Studio 4.0 // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); // TODO: use this.Content to load your game content here } /// <summary> /// UnloadContent will be called once per game and is the place to unload /// all content. /// </summary> protected override void UnloadContent() { // TODO: Unload any non ContentManager content here } /// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One). Buttons.Back == ButtonState.Pressed) this.Exit(); // TODO: Add your update logic here MyKeybordState = Keyboard.GetState(); if (MyKeybordState.IsKeyDown(Keys.Esca pe)) { this.Exit(); } base.Update(gameTime); } /// <summary> /// This is called when the game should draw itself. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.Bisque); // TODO: Add your drawing code here spriteBatch.Begin(SpriteSortMode.Im mediate, BlendState.AlphaBlend); sprite.DrawSprite(spriteBatch); spriteBatch.End(); base.Draw(gameTime); } } } Код класса Sprite.cs: namespace MyGame { public class Sprite { public Texture2D spriteTexture; public Vector2 spritePosition; public Sprite() { } public void Load(ContentManager content, string stringTexture) { spriteTexture = content.Load<Texture2D>(stringTextu re); } public void DrawSprite(SpriteBatch spriteBatch) { spriteBatch.Draw(spriteTexture, spritePosition, Color.White); } } } Последний раз редактировалось Renat21; 24.06.2011 в 19:04. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 15.07.2010
Сообщений: 74
|
![]()
У меня твой код работает
Картинку ложишь в паку с Content в скобках Кстати ,а зачем у тебя собака перед именем картинки ? |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 11.03.2011
Сообщений: 67
|
![]() Цитата:
Если помог, жми спасибо
![]() |
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 15.07.2010
Сообщений: 74
|
![]()
Окей , спасибо за информацию
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 04.02.2011
Сообщений: 12
|
![]()
Да я понял свою ошибку! Спасибо за помощь! Ошибка заключалась в следующем: корневой каталог был указан как раз таки Content вот здесь:
Content.RootDirectory = "Content"; И независимо от того указываю я загрузку спрайта: sprite.Load(Content, @"Textures\Main"); или нет компилятор будет искать файл не в папке Content\Textures а в папке Content и поэтому необходимо указывать, к примеру, вот так: Content.RootDirectory = "Content//Textures"; И потом указать имя файла при загрузке: sprite.Load(Content, "Main"); Но этот способ не удобен тем, что в игру будут загружаться не только спрайты, но и какие-либо звуковые и видео файлы, поэтому следует удалить строчку Content.RootDirectory = "Content"; и лишь при загрузке спрайта указывать путь, например, вот так: sprite.Load(Content, "Content//Textures//Main"); Я попробовал картинка загружается! Все OK! ![]() ![]() Последний раз редактировалось Renat21; 26.06.2011 в 14:58. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 15.07.2010
Сообщений: 74
|
![]()
Прости, ты как добавляешь файлы?
Я Content->Add->Add Existing Item В Content.Load пишешь имя и тип файла , путь не прописывая , тока имя файла |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[C#] Создаю игру на XNA Game Studio 4.0. Теория создания карт, редактора и другое | Casper-SC | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 12 | 07.09.2010 00:52 |
XNA Game Studio или VC++? | VintProg | Свободное общение | 6 | 02.09.2010 17:50 |
XNA Game Studio 4.0. Проблемы с запуском. Подробности в теме... | Casper-SC | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 30.08.2010 09:07 |
Вопрос по 3d game studio | Goblin | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 10.05.2010 19:51 |
Знакомы вы с 3d game studio ? | House | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 4 | 30.07.2008 12:56 |