public Paddle(Sprite sprite, Vector2D position) : base(sprite, position, BodyFactory.CreateCapsule(Entities.world2D, sprite.Size.Height, sprite.Size.Width / 2, 1.0f, position)) { body.Position = position; Entities.Register(this); }
public Box(Vector2D position, Size size) : base(position, size, BodyFactory.CreateRectangle(Entities.world2D, size.Width, size.Height, 1.0f, position, BodyType.Dynamic)) { Entities.Register(this); body.IsStatic = false; body.Restitution = 1; body.Friction = 0.01f; }
public Circle(Vector2D position, float radius) : base(position, new Size(radius * 2, radius * 2), BodyFactory.CreateCircle(Entities.world2D, radius, 1.0f, position, BodyType.Dynamic)) { this.radius = radius; Entities.Register(this); body.IsStatic = false; body.Restitution = 1; body.Friction = 0.01f; }
public void Draw(Vector2D position) { GL.Enable(EnableCap.Texture2D); GL.BindTexture(TextureTarget.Texture2D, texture.Handle); var halfWidth = Size.Width / 2; var halfHeight = Size.Height / 2; vertices = new[] { position.x - halfWidth, position.y + halfHeight, 0, position.x - halfWidth, position.y - halfHeight, 0, position.x + halfWidth, position.y - halfHeight, 0, position.x + halfWidth, position.y + halfHeight, 0 }; GL.EnableClientState(ArrayCap.TextureCoordArray); GL.TexCoordPointer(2, TexCoordPointerType.Float, 0, uvs); GL.EnableClientState(ArrayCap.VertexArray); GL.VertexPointer(3, VertexPointerType.Float, 0, vertices); GL.DrawElements(PrimitiveType.Triangles, indices.Length, DrawElementsType.UnsignedShort, indices); }
protected PhysicsObject(Vector2D position, Size size, Body body) { this.size = size; this.body = body; }
public bool Equals(Vector2D other) { return x > other.x - Epsilon && x < other.x + Epsilon && y > other.y - Epsilon && y < other.y + Epsilon; }
private float DotProduct(Vector2D other) { return x * other.x + y * other.y; }
public Vector2D MirrorAtNormal(Vector2D normal) { normal = normal.Normalize(); return this - (normal * 2 * DotProduct(normal)); }
protected override void OnMouseClick(MouseEventArgs e) { MouseClickedHappenend = true; MouseClickPosition = new Vector2D(e.X, e.Y); base.OnMouseClick(e); }
protected PhysicsSprite(Sprite sprite, Vector2D position, Body body) : base(position, sprite.Size, body) { this.sprite = sprite; }