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.

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


 

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

66652. Олигополия. Отличительные черты олигополии 129.5 KB
  Такой тип олигополии в условиях которой действуют фирмы производящие однородный продукт называется чистой олигополией. Олигополия в условиях которой фирмы выпускают дифференцированную продукцию называется дифференцированной олигополией.
66654. Гай Смит и Soil Taxonomy 232.86 KB
  Гай Смит – одна из наиболее значимых фигур в истории не только американского, но и мирового почвоведения. Его ключевая работой является классификация Soil Taxonomy. Разработка почвенной таксономии часто вызывала очень сильную критику.
66655. Управление качеством в сфере здравоохранения 82.5 KB
  В настоящее время в РФ сложилась система обеспечения качества медицинской помощи основанная на процедурах вневедомственного и внутриведомственного контроля качества медицинской помощи. Внутриведомственный контроль предусматривает применение мер административного воздействия...
66656. Процедура и методы оценки качества услуг 71.5 KB
  По физико-статистическим признакам и процедурам методы контроля и оценки качества подразделяют на пять групп: инструментальный, органолептический, модельно-расчетный, экспертный и социологический. В силу неосязаемости и несохраняемости услуг наибольшее распространение получили методы, относящиеся к последним трем группам.
66657. Методы управления качеством в процессе обслуживания 44 KB
  Метод диаграммного проектирования или структурирования сервисного процесса был предложен американским консультантом Линн Шостак. В сфере услуг потребительские выгоды и само удовлетворение требований потребителей в основном происходят в момент двухстороннего взаимодействия покупателя и продавца в процессе оказания услуги.
66658. Управление качеством туристско-экскурсионных услуг 59 KB
  Предоставлением туристских услуг занимаются организации двух видов тур-операторы и тур-агентства. Они приобретают туристские продукты места в самолетах номера в гостиницах и другие услуги формируют пакеты услуг туризма и продают их прямо или косвенно...
66659. Потребительские свойства услуг 62 KB
  Показатели назначения услуг характеризуют набор свойств услуги определяющий качество выполнения функций для которых она предназначена. Эта группа показателей делится на четыре подгруппы: показатели применения; показатели совместимости; показатели предприятия...