.NET 4.x Как превратить пиксели в обекты? - C#
Формулировка задачи:
Hello World! Помогите мне пожалуйста, хочу создать игру-песочницу в стиле The Powder Toy (пиксельная песочница).
И вот все бы хорошо, только я никак не могу придумать, как пиксели, которые мы рисуем, превратить в обьекты имеющие свои свойства.
Решение задачи: «.NET 4.x Как превратить пиксели в обекты?»
textual
Листинг программы
/// <summary> /// Базовый класс частицы /// </summary> abstract class Particle { public PointF Location { get; set; } public PointF PrevLocation { get; set; } public PointF Velocity { get; set; } public PointF Force { get; set; } public float Mass { get; set; } public virtual Color Color { get; set; } public float AirFriction { get; set; } protected static Random OtherThreadRnd = new Random(); protected static Random Rnd = new Random(); public Particle() { Mass = 1; Color = Color.Orange; AirFriction = 0.95f; //сила тяжести Force = new PointF(0, Mass*9.8f); } /// <summary> /// Обновление сил, скоростей и координат /// </summary> public virtual void Update(Sandbox sb, float dt) { PrevLocation = Location; //приращение скорости Velocity = Velocity.Add(Force, dt / Mass); //трение о воздух Velocity = Velocity.Mult(AirFriction); //приращение координаты Location = Location.Add(Velocity, dt); //мы ударились о другую частицу? var cell = sb[(int)Location.X, (int)Location.Y]; if (cell != null && cell != this) { //остаемся на месте, обрабатываем столкновение Location = PrevLocation; OnCollision(cell); } } /// <summary> /// Событие соударения /// </summary> public virtual void OnCollision(Particle other) { Velocity = new PointF(Rnd.Next(-4, 5), 0); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д