Войти
ПрограммированиеФорумОбщее

не загружаются текстуры в xna (2 стр)

Страницы: 1 2
#15
14:46, 12 янв. 2009

  почему у меня не сканируется нажатие клавиш на клавиатуре? изза этог нельзя зайти ни в какой пункт меню. я полностью скопировал этот код который который должен сканировать нажатия клавиш из исходников из книги и дописал только свою обработку нажатия клавиш. Вот он если че (между   и   выделена часть где должно быть сканирование введенных клавиш)
 

      protected override void Draw(GameTime gameTime)
        {
            graphics.GraphicsDevice.Clear(Color.CornflowerBlue);

            // TODO: Add your drawing code here
            // Draw background texture in a seperate pass, else it gets messed up with
            // our other sprites, the ordering does not really work great.
            spriteBatch.Begin();
            spriteBatch.Draw(backgroundTexture, new Rectangle(0, 0, width, height), Color.LightGray);
            spriteBatch.End();

            // Show screen depending on our current screen mode
            if (gameMode == GameMode.Menu)
            {
                // Show menu
                RenderSprite(cheeseTexture,
                    512 - cheeseRect.Width / 2, 150, cheeseRect);

                // Note: Usually input should be handled in Update, but I really think
                // it is better to have to closely together with the UI code here!
 [b]               if (keyboard.IsKeyDown(Keys.Right) &&
                    remDownPressed == false  )
                {
                    currentMenuItem = (currentMenuItem + 1) % 3;
                } // else if
                else if (keyboard.IsKeyDown(Keys.Left) &&
                    remUpPressed == false)
                {
                    currentMenuItem = (currentMenuItem + 2) % 3;
                } // else if
                else if ((keyboard.IsKeyDown(Keys.Space) ||
                    keyboard.IsKeyDown(Keys.Enter)  ||
                    // Back or Escape exits our game on Xbox 360 and Windows
                    keyboard.IsKeyDown(Keys.Escape)) &&
                    remSpaceOrStartPressed == false &&
                    remEscOrBackPressed == false)                                             [/b]
                {
                    // Quit app.
                    if (currentMenuItem == 2 ||
                        keyboard.IsKeyDown(Keys.Escape))
                    {
                        this.Exit();
                    } // if
                    else
                    {
                        System.Windows.Forms.Application.EnableVisualStyles();
                        System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
                        System.Windows.Forms.Application.Run(new countOfMouseAndCatsInputWindow());
                        waitingCicle = true;
                        while(waitingCicle)
                        {
                        }

                        // Start game
                        gameMode = GameMode.Game;
                        for (int i = 0; i < catCount; i++)
                        { 
                            cat[i]=new Cats();
                        }
                        for (int i = 0; i < mouseCount; i++)
                        {
                            mouse[i] = new Mouse(); 
                        }
                    } // else
                } // else if
            } // if

            base.Draw(gameTime);
        }


#16
15:32, 12 янв. 2009

ужас то какой, во-первых что делает сканирование клавиш в draw?
оно должно быть минимум в update

во-вторых

где задаётся keybord?
смею предположить что keyboard - типа KeyboardState
где то должен каждый раз вызываться keyboard = Keyboard.GetState();

#17
15:34, 12 янв. 2009

draw и update вызываются последовательно


ихмо поциенту рано за программирование браться

#18
16:12, 12 янв. 2009

//ужас то какой, во-первых что делает сканирование клавиш в draw?
оно должно быть минимум в update //

вот такст из исходников               
              // Note: Usually input should be handled in Update, but I really think
                // it is better to have to closely together with the UI code here!


//смею предположить что keyboard - типа KeyboardState
где то должен каждый раз вызываться keyboard = Keyboard.GetState();//
Microsoft.XNA.Framework.Input.KeyboardState keyboard;

щас вставил в Update()

      // Get current gamepad and keyboard states
      keyboard = Keyboard.GetState();
и вроде запахало. (А че возвращщает Keyboard.GetState()??)

тока еще вопрос появился. Вобщем так как у меня не открываются проекты аффара книги, то я вручную переместил все файлы в новый проект и скомпилил и у меня вылезла ощибка что нет конвертера .Waw. Короче почему у меня его нету если он должен быть встроен в xNA? И еще самый главный вопрос: вобщем короче я поудалял из текста звуки и все-таки откомпилил пинг-понг аффтара, и офигел от того что у меня кадры ноыве вылазили раз в полминуты(короче фпс 1\30). ВОПРОС: как можно тут программить 3D если даже обычный плоский понг с 3-мя текстурами не может идти так чтобы хотя бы в него можно было играть??? Причем комп у меня способен тянуть и сложнее игры чем этот понг: athlon 4200, 1 гиг, видеокарта правда встроенная. Как на такой конфе может это тормозить??? Вобщем могу скинуть вам исходники аффтара и вы проверите как оно идет на вашем компе.

#19
16:19, 12 янв. 2009

а вот щас случайно сделал окно игры неактивным и шарик с аркетками сразу задвигались. Короче, я реально че то не понимаю, когда окно активное, то фпс =1\30, когда делаешь его неактивным то сразу нормальный фпс. В чем прикол?? Как играть на неактивном окне???

#20
16:35, 12 янв. 2009

тролль?

#21
17:09, 12 янв. 2009

скорее всего у тебя XNA криво встала.
у тебя какая версия VS, XNA?

#22
18:38, 12 янв. 2009

vs 2005 не express
xna 2.0
вот исходники проги которую сделал аффтар книги и которая тормозит при активном окне
http://www.gamedev.ru/download/?id=8317

#23
17:15, 13 янв. 2009

как такое может быть???
вобщем я инициализирую 2 массива подряд
                        for (int i = 0; i < catCount; i++)
                        {
                            cat = new Cats();
                            RenderSprite(catTexture,4,6,catRect);
                        }
                        for (int i = 0; i < mouseCount; i++)
                        {
                            mouse
= new Mouse();
                            RenderSprite(mouseTexture,4,6,mouseRect);
                        }

вот их конструктор (общий для Cats и Mouse)

        public конструктор()
        {
            while ((this.XLowLeft < 0.2 && this.YLow < 0.4) || (this.XLowRight > 0.7 && this.YLow < 0.4)
                || this.XLowLeft < 0 || this.YLow < 0 || this.XLowRight > 1 || this.YHigt > 1)
            {
                System.Random rm = new System.Random();
  //            this.line = Random.Randomize(10);
  //              ss = rm.NextDouble();
                this.XLowRight = (float)rm.NextDouble();
                this.YHigt = (float)rm.NextDouble();
                if (this.GetType() == typeof(Mouse))
                {
                    this.XLowLeft = this.XLowRight - (float)0.1237;
                    this.YLow = this.YHigt - (float)0.165;
                }
                else
                {
                    this.XLowLeft = this.XLowRight - (float)0.1812;
                    this.YLow = this.YHigt - (float)0.2417;
                }
            }
я запустил прогу и у каждого элемента одном массиве оказались одинаковые поля которые задавались рандомом!! я смотрю у меня что-то глючит прога, когда увидел одинаковые значения то офигел и запустил снова прогу, и снова все значения одинаковые!! потом я добавил поля поля int и double чтобы потестить их и оказалось что только int случайно изменялся!! Потом я запустил прогу еще раз, НИЧЕГО В НЕЙ НЕ МЕНЯЯ,  и в первом массиве (cat) случилось чудо и значения стали разными, а вот втором остались снова все одинаковые!!! КАК ТАКОЕ может бытьи что это  за бредятина Random.NextDouble() ???

#24
17:20, 13 янв. 2009

ну кто так делает?
Random нужна создавать заранее и использовать один экземпляр для всего,

конструктор Рандома по умолчанию использует системное время, как сид,
рандомы созданные в одном цикле, на современном процессоре, будут давать одинаковые последовательности чисел
:wall:

#25
18:22, 13 янв. 2009

НЕТ СЛОВ!!!!

#26
0:15, 17 янв. 2009

в общем подскажите сколько примерно времени уйдет на создание какойлить нормальной 3Д игры в ХНА у чела (не профессиоанльного еще пока программера), который будет разрабатывать игру в одиночку (допустим для ускорения там будет всего 1 уровень а не 10 , как в больших играх, которые разрабатываются годами). А если отдельно от программиста будет моделировать 3Д модели и текстуры какой либо другой чел, то наскока уменьшится время разработки?
и вот еще насчет этого

//draw и update вызываются последовательно //
в книге написано что если кадры долго рендерятся то draw  может вызываться чаще update, то есть они не могут вызываться последовательно, например игру можно свернуть, при этом draw не будет вызываться, а обновление  update (логики ) будет происходить. К тому же у меня в проге из Апдейта вызывалось новое окно form1.ShowDialog(), в это время  draw останавливался, а в Апдейте происходило прерывание в отладчике.

И еще насчет параметра GameTime gameTime. Он вроде как передает время построения предыдущего кадра, и относительно него нужно просчитывать расстояния перемещений объектов, но это же время предыдущего кадра, а нынешний у нас может рендериться в 10 раз дольше, поэтому и все перемещения будут неправильными. Или я не прально понял??

и вообще, сейчас какие-нибудь фирмы делают вообще игры на c# (скажите какие)? или его можно будет реально использовать для игр тока лет через 5? Если вообще создатели игр собираются на него переходить.

#27
1:17, 17 янв. 2009

у меня еще такой вопрос.

В общем щас все снимают движения с помощью Моушен Капчур, возможно ли вообще создание большое количество движений человека без этого Моушен Капчура (ну нету у меня этой штуковины) так, чтобы эти движения казались реалистичными? Допустим если даже тестить все движения придется год, возможно ли после всех усилий "ручками" создать человекоподобную анимацию ?

#28
22:30, 11 фев. 2009

Возможно, только не зачем так извращатся, ибо качественую анимацию требуют только в проектах ААА.
И совет не стоит с ходу заморачиватся на 3д, если еще начинать то лучше с 2д, оно проще и понятней для новичков

Страницы: 1 2
ПрограммированиеФорумОбщее

Тема в архиве.