у меня есть проблемы с выполнением игры 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)
{
}
}
и он никогда не выходит на поле сообщения, даже если это трудно
изображение собрания
'MessageBox'? В XNA-игре? Какие. –
Когда вы говорите, что «никогда не идет в окно сообщения», вы используете точку останова, не так ли? Поэтому просто проверьте координаты обоих объектов, чтобы узнать, почему 'Интерсект' не стреляет. 'Intersect' - родной метод, поэтому проблема, вероятно, на 100% на вашей стороне. И хорошее горе удаляет эту зависимость DLL от Windows.Forms! Я видел некоторые странные вещи с XNA, но это ... вероятно, побеждает в награде. –
да, это правда, я использую сообщение, чтобы показывать только информацию, я удалю его , но все равно он не работает –