5.1. Определение прямоугольников, описанных вокруг объектов
Продолжаем разработку методики создания типичной и широко распространённой игры, когда в качестве летающих игровых объектов используются продукты питания, следуя следующей статье с сайта microsoft.com:
Rob Miles. Games Programming with Cheese: Part Two.
Общие требования к программному обеспечению для разработки этой игры приведены выше.
Также продолжаем методично и последовательно решать типичные задачи по созданию данной и всех подобных игр.
Программы игр могут обнаружить столкновения между объектами при помощи прямоугольников, описанных вокруг заданных объектов. Естественно, это является существенным допущением, т.к. подавляющее большинство объектов имеют форму, отличную от прямоугольника. Однако данное допущение применяется во многих играх, и пользователь в азарте игры не замечает этой погрешности.
Прямоугольник, описанный вокруг изображения батона хлеба bread.jpg, показан на рис. 5.1.
Рис. 5.1. Прямоугольник, описанный вокруг хлеба.
Ширина полей между объектом и описанным вокруг объекта прямоугольником должна быть сведена к минимуму, чтобы объект обязательно касался прямоугольника в как можно большем количестве точек и отрезков линий. Если начало прямоугольной системы координат “x, y” находится в верхнем левом углу экрана , то координаты верхней левой точки (bx, by) и нижней правой точки (bx + batWidth, by + batHeight) однозначно определяют данный прямоугольник на экране.
В среде выполнения .NET Framework (для настольных компьютеров) известна структура Rectangle (из пространства имён System.Drawing), у которой метод-конструктор Rectangle Constructor имеет несколько перегрузок. Наиболее применяемая перегрузка метода-конструктора Rectangle Constructor (которую далее и мы будем часто применять) с параметрами (Int32, Int32, Int32, Int32) структуры Rectangle на главных (в мире программирования) языках приведена в табл. 5.1.
Таблица 5.1.
Метод-конструктор Rectangle Constructor (Int32, Int32, Int32, Int32) структуры Rectangle.
Visual Basic (Declaration)
Public Sub New ( _
x As Integer, _
y As Integer, _
width As Integer, _
height As Integer _
Visual Basic (Usage))
Dim x As Integer
Dim y As Integer
Dim width As Integer
Dim height As Integer
Dim instance As New Rectangle(x, y, width, height)
C#
public Rectangle (
int x,
int y,
int width,
int height
)
C++
public:
Rectangle (
int x,
int y,
int width,
int height
)
J#
public Rectangle (
int x,
int y,
int width,
int height
)
JScript
public function Rectangle (
x : int,
y СКАЧАТЬ