2014-11-23 3 views
1

у меня есть проблемы с выполнением игры 2DXNA столкновения Prob

в настоящее время до сих пор я сделал: создать плеер + карта + клавиатура + мышь теперь я делаю столкновение с игроком и карты

и я попробовать, что если игрок хотя один или несколько блоков с этим кодом

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Microsoft.Xna.Framework.Graphics; 
using Microsoft.Xna.Framework; 
using System.Windows.Forms; 

    class UpdateCollision 
    { 
     Player myPlayer; 
     Map myMap; 

     public void Initialize(Player myPlayer, Map myMap) 
     { 
      this.myPlayer = myPlayer; 
      this.myMap = myMap; 
     } 

     public void Update(GameTime gameTime) 
     { 

      // Use the Rectangle's built-in intersect function to 
      // determine if two objects are overlapping 
      Rectangle Player; 
      Rectangle Block; 

      // Only create the rectangle once for the player 
      Player = new Rectangle((int)myPlayer.Position.X, 
      (int)myPlayer.Position.Y, 
      myPlayer.Width, 
      myPlayer.Height); 

      // Do the collision between the player and the Block 

      int i, j; 

      // For each block in the game 
      for (i = 0; i < myMap.Height/myMap.pictureSize; i++) 
      { 
       for (j = 0; j < myMap.Width/myMap.pictureSize; j++) 
       { 
        // If the block is Draw 
        if(myMap.Blocks[i, j].isAlive) 
        { 
         Block = new Rectangle((int)myMap.Blocks[i, j].X, 
               (int)myMap.Blocks[i, j].Y, 
                myMap.pictureSize, 
                myMap.pictureSize); 

         // Determine if the two objects collided with each 
         // other 
         if (Player.Intersects(Block)) 
         { 
          MessageBox.Show(myMap.Blocks[i, j].X+ ","+myMap.Blocks[i, j].Y); 
         } 

        } 
       } 
      } 


     } 

     public void Draw (SpriteBatch spriteBatch) 
     { 


     } 
    } 

и он никогда не выходит на поле сообщения, даже если это трудно

изображение собрания enter image description here

+0

'MessageBox'? В XNA-игре? Какие. –

+0

Когда вы говорите, что «никогда не идет в окно сообщения», вы используете точку останова, не так ли? Поэтому просто проверьте координаты обоих объектов, чтобы узнать, почему 'Интерсект' не стреляет. 'Intersect' - родной метод, поэтому проблема, вероятно, на 100% на вашей стороне. И хорошее горе удаляет эту зависимость DLL от Windows.Forms! Я видел некоторые странные вещи с XNA, но это ... вероятно, побеждает в награде. –

+0

да, это правда, я использую сообщение, чтобы показывать только информацию, я удалю его , но все равно он не работает –

ответ

2

@ Pierre-Luc Pineault спасибо я играл, что

моя ошибка была ошибка в блоках класса я установить его Y-а X и X в Y, так что все было расстроен сейчас он работал

спасибо

Смежные вопросы