51076

Створення власних обєктів для гри Мішень

Практическая работа

Информатика, кибернетика и программирование

Мета: Ознайомитись з основами обєктно – оріентованого програмування (ООП). Навчитись створювати власні обєкти успадковувати їх, перевизначати методи, створювати віртуальні функції.

Украинкский

2014-02-05

24.58 KB

4 чел.

Розробив

Олійник Д.А.

13.04.13

ДРПК.020180.015

Аркуш

Перевірив

Рудакова М.

1

Змін

Арк.

№ Докум

Підпис

Дата

Практична робота№7

Тема:Створення власних об’єктів для гри Мішень.

Мета: Ознайомитись з основами об’єктно – оріентованого програмування (ООП).

          Навчитись створювати власні об’єкти успадковувати їх, перевизначати  

          методи, створювати віртуальні функції.

Хід роботи:

unit Main;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, ExtCtrls;

type THitObj = record

x,y:integer;

dx,dy:integer;

end;

type

 TForm1 = class(TForm)

   Canv: TImage;

   procedure FormCreate(Sender: TObject);

   procedure FormPaint(Sender: TObject);

   procedure CanvMouseMove(Sender: TObject; Shift: TShiftState; X,

     Y: Integer);

   procedure FormDestroy(Sender: TObject);

   procedure CanvMouseDown(Sender: TObject; Button: TMouseButton;

     Shift: TShiftState; X, Y: Integer);

   procedure FormKeyDown(Sender: TObject; var Key: Word;

     Shift: TShiftState);

 private

   { Private declarations }

 public

   { Public declarations }

   procedure CreateHitObj(fx,fy:integer);

   procedure DelAll;

   function RectsOverlap(x,y,w,h,x1,y1:integer):boolean;

 end;

var

 Form1: TForm1;

 cx,cy:integer;

 Image1,Image2:TBitmap;

 HitObjects:array of THitObj; CHitObjects:integer=0;

 Points:integer=0;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

var

i:integer;

begin

Розробив

Олійник Д.А.

13.04.13

ДРПК.020180.015

Аркуш

Перевірив

Рудакова М.

2

Змін

Арк.

№ Докум

Підпис

Дата

ShowCursor(false);

Image1:=TBitmap.Create;

Image1.LoadFromFile('Image1.bmp');

Image1.TransparentColor:=clFuchsia;

Image1.Transparent:=true;

Image2:=TBitmap.Create;

Image2.LoadFromFile('Image2.bmp');

Image2.TransparentColor:=clFuchsia;

Image2.Transparent:=true;

randomize;

for i:=0 to 2 do

CreateHitObj(random(700),random(500));

end;

procedure TForm1.FormPaint(Sender: TObject);

var

i,x:integer;

begin

x:=x+1;

if x > 400 then for i:=0 to CHitObjects-1 do begin

HitObjects[i].x:=HitObjects[i].x+1;

HitObjects[i].y:=HitObjects[i].y+1;

if HitObjects[i].x > 800 then HitObjects[i].x:=0;

if HitObjects[i].y > 600 then HitObjects[i].y:=0;

end;

Canv.Canvas.Rectangle(0,0,800,600);

Canv.Canvas.TextOut(0,0,'Очки - '+IntToStr(Points));

for i:=0 to CHitObjects-1 do

Canv.Canvas.Draw(HitObjects[i].x,HitObjects[i].y,Image2);

Canv.Canvas.Draw(cx-25,cy-25,Image1);

end;

procedure TForm1.CanvMouseMove(Sender: TObject; Shift: TShiftState; X,

 Y: Integer);

begin

cx:=X;

cy:=y;

end;

procedure TForm1.CreateHitObj(fx, fy: integer);

begin

CHitObjects:=CHitObjects+1;

SetLength(HitObjects,CHitObjects);

HitObjects[CHitObjects-1].x:=fx;

HitObjects[CHitObjects-1].y:=fy;

end;

procedure TForm1.DelAll;

begin

CHitObjects:=0

SetLength(HitObjects,CHitObjects);

Розробив

Олійник Д.А.

13.04.13

ДРПК.020180.015

Аркуш

Перевірив

Рудакова М.

3

Змін

Арк.

№ Докум

Підпис

Дата

Image1.Free;

Image2.Free;

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

DelAll;

end;

function TForm1.RectsOverlap(x, y, w, h, x1, y1:integer): boolean;

begin

if (x1 >= x) and (x1 <= (x+w)) and (y1 >=y) and (y1 <= (y+h)) then

result:=true else result:=false;

end;

procedure TForm1.CanvMouseDown(Sender: TObject; Button: TMouseButton;

 Shift: TShiftState; X, Y: Integer);

 var

 i:integer;

begin

for i:=0 to CHitObjects do

if RectsOverlap(HitObjects[i].x,HitObjects[i].y,50,50,X,Y)

then begin Points:=Points+1; HitObjects[i].x:=20+random(760); HitObjects[i].y:=20+random(560); end;

end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;

 Shift: TShiftState);

begin

if (key = VK_RETURN) and (CHitobjects < 10) then CreateHitObj(random(700),random(500));

end;

end.

Висновок: Я ознайомився з основами об’єктно- оріентованого програмування (ООП), та навчився створювати власні об’єкти успадковувати їх, перевизначати методи, створювати віртуальні функції.


 

А также другие работы, которые могут Вас заинтересовать

42246. Создание объектов в языке JavaScript, регулярные выражения и обработка ошибок 496.5 KB
  Опции шаблона регулярного выражения Опция Назначение g Глобальный поиск т. Свойства объекта Regulr Expression Имя Значение Тип возвращаемого значения Возможность изменения globl Состояние опции g true включена или flse выключена Только для чтения ignoreCse Состояние опции i true включена или flse выключена Только для чтения multiline Состояние опции m true включена или flse выключена Только для чтения source Копия строки шаблона регулярного выражения Строка Только для чтения lstIndex Позиция того символа в строке с которой...
42247. Программирование на языке JavaScript (использование средств объектной модели документа) 217 KB
  Целью работы является приобретение навыков использования свойств и методов предоставляемых объектной моделью документа DOM и средств обработки событий для создания интерактивных Webстраниц с использованием языка сценариев JvScript. Программное обеспечение: операционная система Windows Webбраузер Internet Explorer версии 6. их представление в виде объектов с заданными свойствами и запрограммированными методами должна выполняться производителем Webбраузера. form select Выделяет содержимое области типа text file или...
42248. Использование форм в Web-страницах. Вставки форм в Web-страницах 267.5 KB
  Использование форм в Webстраницах Целью работы является знакомство с элементами вставки форм в Webстраницах. Программное обеспечение: операционная система Windows Webбраузер Internet Explorer версии 6. Модуль Bsic Forms Формы HTML первоначально были предназначены для пересылки данных от удаленного пользователя к Webсерверу.
42249. Работа с объектом window, анимация. Создание интерактивных Web-страниц с использованием языка сценариев JavaScript 165 KB
  Целью работы является овладение навыками работы с окнами типа window при создании интерактивных Webстраниц с использованием языка сценариев JvScript. Программное обеспечение: операционная система Windows Webбраузер Internet Explorer версии 6. Объект window в JvScript Все Webбраузеры выводят пользователям Webстраницы в окне дисплея. Объект window представляет текущее окно Webбраузера или отдельный фрейм если окно разделено на фреймы.
42250. Організація виконання вантажних операцій 540.5 KB
  Структура управління вантажними операціями на залізничному транспорті. Вибір раціонального варіанта механізації навантажувально-розвантажувальних робіт. Основні параметри вантажно-розвантажувальних машин. Показники надійності вантажно-розвантажувальних машин. Застосування і класифікація навантажувачів...
42251. ЭЛЕКТРОМАГНИТ ПОСТОЯННОГО ТОКА 66 KB
  При протекании тока по обмоткам электромагнита создается электромагнитная сила притягивающая магнитную систему к неподвижному якорю. Сила тяги электромагнита через рамку 6 воздействует на пружину 7 которая действует на индикатор перемещения поворачивая стрелку 8. Питание электромагнита осуществляется от источника 220 В через трансформатор Тр и двухполупериодный выпрямительный мост В. Изучить принципиальную схему электромагнита.
42252. КОНТРОЛЬ МАЛОЙ КЛИНОВИДНОСТИ ПЛАСТИН НА ИНТЕРФЕРОМЕТРЕ ЧАПСКОГО 302 KB
  Рассмотрим возникновение полос равного наклона и определим величину разности хода лучей отраженных под некоторым углом от плоскопараллельной пластины рис. Если поверхности пластины образуют между собой малый угол  то изображения источника 1 в фокальной плоскости 6 разойдутся на расстояние l =n где  фокусное расстояние линзы 5. Первый случай соответствует перемещению пластины в сторону увеличения её толщины второй в сторону уменьшения. Появление или исчезновение кольца соответствует изменению толщины пластины на величину .
42253. Выполнение базовых преобразований на плоскости 98.5 KB
  Трансляция точки выполняется путем добавления смещения [m n] к ее координатам [x y], в результате чего получается точка с новыми координатами. Для объекта, описываемого множеством точек, все точки объекта перемещаются на одинаковые расстояния вдоль параллельных прямых. В матричной форме трансляция выполняется путем умножения однородных координат точки на матрицу трансляции
42254. Базовые алгоритмы 2D-геометрии 638.5 KB
  Геометрически каждая точка на плоскости задается значениями координат радиусвектора относительно выбранной системы координат. В этом случае объект поворачивается относительно оси вращения перпендикулярной плоскости xoy. Наиболее распространен сдвиг в направлении оси x и сдвиг в направлении оси y. Сдвиг выполняется путем умножения однородных координат точки на матрицу сдвига: сдвиг в направлении оси y сдвиг в направлении оси x.