Физика дальновидных ... привет мир ...? - PullRequest
3 голосов
/ 09 мая 2011

Понятия не имею почему, но я не могу понять, почему это не работает ... Я пытаюсь сделать что-то действительно простое, например что-то, что просто падает с экрана.

Похоже, что с последней загрузкой и первым примером кода на сайте я все еще не прав.

У меня есть это:

using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using System.Collections;
using Microsoft.Xna.Framework.Input;
using FarseerPhysics.Dynamics;
using FarseerPhysics.Collision.Shapes;


namespace Cross {
    public class Game1 : Microsoft.Xna.Framework.Game {
        GraphicsDeviceManager graphics;

        public Game1() {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";

            graphics.IsFullScreen = false;
            graphics.PreferredBackBufferHeight = 600;
            graphics.PreferredBackBufferWidth = 1200;

            this.Window.Title = "Game";
        }


        protected override void Initialize() {
            World world = new World(Vector2.Zero);

            Body myBody = world.CreateBody();
            myBody.BodyType = BodyType.Dynamic;

            CircleShape circleShape = new CircleShape(0.5f);
            Fixture fixture = myBody.CreateFixture(circleShape);

            base.Initialize();
        }

        protected override void LoadContent() {

        }

        protected override void UnloadContent() {
        }


        protected override void Update(GameTime gameTime) {
            base.Update(gameTime);
        }

        protected override void Draw(GameTime gameTime) {
            base.Draw(gameTime);
        }
    }
}

Но я получаю 2 ошибок:

Нет CreateBody() метод (хотя есть AddBreakableBody())

'FarseerPhysics.Dynamics.World' does not contain a definition for 'CreateBody' and no extension method 'CreateBody' accepting a first argument of type 'FarseerPhysics.Dynamics.World' could be found (are you missing a using directive or an assembly reference?)

Конструктор CircleShape принимает 2 аргумента (это простой, но все же ошибка в примере)

'FarseerPhysics.Collision.Shapes.CircleShape' does not contain a constructor that takes 1 arguments

Я столько всего перепробовал, и я запутался, почему я могу это получить. Этот код работает для других? Мой dll испорчен?

1 Ответ

3 голосов
/ 09 мая 2011

Их пример неверен, вы правы! (Я удивлен, что у них такие явные ошибки.)

Перейдите в класс CircleShape и посмотрите, в каком порядке идут параметры. Круг определяется позицией и радиусом, а не просто радиусом.

Затем найдите в вашем проекте CreateBody (), чтобы узнать, откуда следует вызывать этот метод.

...