Пятница, 23 Апреля 2021, 21:00

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Движки для разработки игр и сложные системы разработки » 3D движки для разработки игр » XNA с Microsoft Visual C# 2010 Express (Вопрос - ответ) (Вопрос - ответ)
XNA с Microsoft Visual C# 2010 Express (Вопрос - ответ)
LorderonДата: Понедельник, 22 Ноября 2010, 19:09 | Сообщение # 1
старожил
Сейчас нет на сайте
Придлогаю в этой теме начать такой порядок: вопрос - ответ.
Всё происходит по среде разработке Microsoft Visual C# 2010 Express.
--------------------------------------------------------------------------------
Первый вопрос:
у меня при редактировании не чего не пишет в ошибках, но когда я компилирую, у меня пишет вот это: "Ссылка на объект не указывает на экземпляр объекта.".
Вот строка из-за которой эта проблемма: "
Code
backgroundTexture = content.Load<Texture2D>("CityGroundSmall.jpg");
"


Сообщение отредактировал Lorderon - Понедельник, 22 Ноября 2010, 19:14
Mogby01Дата: Понедельник, 22 Ноября 2010, 20:43 | Сообщение # 2
был не раз
Сейчас нет на сайте
В той строке, которую ты привел нужно убрать расширение файла.Т.е. должно быть не backgroundTexture = content.Load<Texture2D>("CityGroundSmall.jpg"); а backgroundTexture = content.Load<Texture2D>("CityGroundSmall"); Если не получится - говори
LorderonДата: Понедельник, 22 Ноября 2010, 20:51 | Сообщение # 3
старожил
Сейчас нет на сайте
Неполучилось.
Code

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;

namespace WindowsGame7
{
     /// <summary>
     /// This is the main type for your game
     /// </summary>
     public class Game1 : Microsoft.Xna.Framework.Game
     {
         GraphicsDeviceManager graphics;
         SpriteBatch spriteBatch;
         Texture2D backgroundTexture;
         SpriteBatch sprites;
         ContentManager content;
         public Game1()
         {
             graphics = new GraphicsDeviceManager(this);
             Content.RootDirectory = "Content";
         }

         /// <summary>
         /// Allows the game to perform any initialization it needs to before starting to run.
         /// This is where it can query for any required services and load any non-graphic
         /// related content.  Calling base.Initialize will enumerate through any components
         /// and initialize them as well.
         /// </summary>
         protected override void Initialize()
         {
             backgroundTexture = content.Load<Texture2D>("CityGroundSmall");  
             sprites = new SpriteBatch(graphics.GraphicsDevice);
             base.Initialize();
         } // Initialize()

         /// <summary>
         /// LoadContent will be called once per game and is the place to load
         /// all of your content.
         /// </summary>
         protected override void LoadContent()
         {
             // 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

             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)
         {
             graphics.GraphicsDevice.Clear(Color.Green);

             sprites.Begin();
             sprites.Draw(backgroundTexture, Vector2.Zero, Color.White);
             sprites.End();
             base.Draw(gameTime);
         } // Draw(gameTime)
     }
}
Mogby01Дата: Понедельник, 22 Ноября 2010, 21:08 | Сообщение # 4
был не раз
Сейчас нет на сайте
Ща запщу C#, посмотрю...

Добавлено (22.11.2010, 21:08)
---------------------------------------------
Ахахахахаххх!!!!Мы с тобой два лоха!!!Я пацталом!!!Как я не заметил сразу!!!???Надо было заместо backgroundTexture = content.Load<Texture2D>("CityGroundSmall"); писать backgroundTexture = Content.Load<Texture2D>("CityGroundSmall");Т.е. Content надо писать с большрй буквы.Мы оба хороши хД

LorderonДата: Понедельник, 22 Ноября 2010, 21:20 | Сообщение # 5
старожил
Сейчас нет на сайте
Теперь пишет, что путь к файлу не правелен... как его надо писать. Учитываю что я добавил картинку в проект.

Сообщение отредактировал Lorderon - Понедельник, 22 Ноября 2010, 21:28
Mogby01Дата: Понедельник, 22 Ноября 2010, 21:28 | Сообщение # 6
был не раз
Сейчас нет на сайте
мда....можешь скрин сделать?
LorderonДата: Понедельник, 22 Ноября 2010, 21:45 | Сообщение # 7
старожил
Сейчас нет на сайте
http://savepic.org/886942.gif а потом http://savepic.org/886942.gif
ezhickovichДата: Понедельник, 22 Ноября 2010, 21:48 | Сообщение # 8
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Lorderon, картинка должна лежать в рабочей папке проекта...


Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
LorderonДата: Понедельник, 22 Ноября 2010, 21:53 | Сообщение # 9
старожил
Сейчас нет на сайте
Вот: C:\Documents and Settings\Lord_Aeron\Мои документы\Visual Studio 2010\Projects\WindowsGame7\WindowsGame7\WindowsGame7
Єто ведь папка проекта? Суда, или в какюето доп. директорию закинуть надо?
ezhickovichДата: Понедельник, 22 Ноября 2010, 21:55 | Сообщение # 10
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (Lorderon)
Суда

Посмотри в настройках проекта должен быть путь к рабочей директории...
Вообще в ней обычно располагается файл проекта (НЕ РЕШЕНИЯ, А ПРОЕКТА!)



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
Mogby01Дата: Понедельник, 22 Ноября 2010, 22:06 | Сообщение # 11
был не раз
Сейчас нет на сайте
Нененененененене!Нужно нажать правой кнопкой мыши на папке Content в обозревателе проектов(в C# обычно находится справа) и выбрать "Существующий файл", дальше выбираешь свою картинку и нажимаешь ок
ezhickovichДата: Понедельник, 22 Ноября 2010, 22:14 | Сообщение # 12
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Ну я с XNA не знаком =)


Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
Mogby01Дата: Понедельник, 22 Ноября 2010, 22:17 | Сообщение # 13
был не раз
Сейчас нет на сайте
да ладно...по сути твой совет дельный, только немного неполный/неточный.
nilremДата: Понедельник, 22 Ноября 2010, 22:20 | Сообщение # 14
Просветленный разум
Сейчас нет на сайте
Вообще-то при создании ХНА проекта вместо одного проекта создается сразу 2. В первом содержится код.
Во второй проект (возле него в скобках написано Content) и нужно добавлять ресурсы. При этом, не зависимо от их расположения, ресурсы автоматически копируются в папку заданную в строке

Code
Content.RootDirectory = "Content";

В этой папке программа и ищет эти самые ресурсы.
Кроме того, после добавления такого ресурса, ему задается свойство Asset Name, которое нужно использовать в коде.


Windmill 2

WindMill 2D Game Engine
Mogby01Дата: Понедельник, 22 Ноября 2010, 22:23 | Сообщение # 15
был не раз
Сейчас нет на сайте
Я знаю это.Тока я думал, что Content это не проект а просто особая папка. Оо =)
nilremДата: Понедельник, 22 Ноября 2010, 22:46 | Сообщение # 16
Просветленный разум
Сейчас нет на сайте
Quote (Mogby01)
Я знаю это.Тока я думал, что Content это не проект а просто особая папка. Оо =)

Что-то не верится. Выше Lorderon выложил скрины, на которых отлично видно, что изображение добавлено не туда, куда надо - не в тот проект.


Windmill 2

WindMill 2D Game Engine
LorderonДата: Понедельник, 22 Ноября 2010, 23:06 | Сообщение # 17
старожил
Сейчас нет на сайте
Повтыкивал во все папки какие можно. Имя проверил - всё правильно, а пишет тоже самое. Такое ощущёние, что ответ под самым носом, но из-за тумана непрофисиональизма, я не могу найти его...
Сделайте пожалуйста мини-урок со скринами... я конкретно туплю...
ezhickovichДата: Понедельник, 22 Ноября 2010, 23:08 | Сообщение # 18
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (Lorderon)
Сделайте пожалуйста мини-урок со скринами... я конкретно туплю...

Добавь его в проект Content - тебе уже сказали...



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
LorderonДата: Понедельник, 22 Ноября 2010, 23:11 | Сообщение # 19
старожил
Сейчас нет на сайте
Я подобавлял! cry
-------------------------
Блин, давно не нубствовал... sad
LorderonДата: Понедельник, 22 Ноября 2010, 23:24 | Сообщение # 20
старожил
Сейчас нет на сайте
Code
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;

namespace WindowsGame7
{
     /// <summary>
     /// This is the main type for your game
     /// </summary>
     public class Game1 : Microsoft.Xna.Framework.Game
     {
         GraphicsDeviceManager graphics;
         SpriteBatch spriteBatch;
         Texture2D backgroundTexture;
         SpriteBatch sprites;
         ContentManager content;
         public Game1()
         {
             graphics = new GraphicsDeviceManager(this);
             Content.RootDirectory = "Content";
         }

         /// <summary>
         /// Allows the game to perform any initialization it needs to before starting to run.
         /// This is where it can query for any required services and load any non-graphic
         /// related content.  Calling base.Initialize will enumerate through any components
         /// and initialize them as well.
         /// </summary>
         protected override void Initialize()
         {
             backgroundTexture = Content.Load<Texture2D>("CityGroundSmall");
             sprites = new SpriteBatch(graphics.GraphicsDevice);
             base.Initialize();
         } // Initialize()

         /// <summary>
         /// LoadContent will be called once per game and is the place to load
         /// all of your content.
         /// </summary>
         protected override void LoadContent()
         {
             // 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

             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)
         {
             graphics.GraphicsDevice.Clear(Color.Green);

             sprites.Begin();
             sprites.Draw(backgroundTexture, Vector2.Zero, Color.White);
             sprites.End();
             base.Draw(gameTime);
         } // Draw(gameTime)
     }
}

Вот вся дериктория весит 214 кб
Форум игроделов » Движки для разработки игр и сложные системы разработки » 3D движки для разработки игр » XNA с Microsoft Visual C# 2010 Express (Вопрос - ответ) (Вопрос - ответ)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2021 Рейтинг