Приймаємо замовлення на контрольні, курсові, дипломні.
Виконання та супровід до захисту.
Всі міста України.
8 (044) 537-22-28
8 (093) 290-55-01


Назва: Розробка гри “Відбивання кульки”
Тип: Реферати
Мова: Українська
Розмiр: 94,12 KB
Скачувань: 27


Скачати реферат українською    

1 2 3 4 5 6

putimage(x-rad,y-rad,pspot,XOR_PUT);

vis=1;

}

// Описання функцii прибирання плями з екрану

void hide()

{

// Вихiд, якщо немае чого прибирати

if (!vis) return;

// Iнакше,стерти зображення з екрану:

putimage(x-rad,y-rad,pspot,XOR_PUT);

// вводимо ознаку очистки екрану

vis=0;

}

// Перемiстити зображення:

void move(int xn, int yn)

{

hide(); // Прибрати старе зображення з екрану

// Змiнити координати центру плями:

x=xn; y=yn;

show(); // Вивести зображення в новому мiсцi

}

void hider()//Процедура стирання прямокутника

{

// Вихiд, якщо немае що прибирати

if (!vis) return;

// Инакше стерти зображення з екрану:

putimage(x,y,pspot,XOR_PUT);

// взвожу ознаку очистки екрану

vis=0;

}

void mover(int xn,int yn)//Процедура переносу прямокутника

{

hider();

x=xn;y=yn;

showr();

}

void showr ()//Процедура малювання прямокутника

{ // Якщо бiтового образу НЕМАЕ в пам'ятi:

if (!tag)

{ // Намалювати поточним кольором на екранi

// прямокутник в заданому мicцi:

rectangle(x,y,x+5,y+rad);

// Замалювати уже обмежену зону кольорiв

// границi, де X,Y - внутрiшнi точки зони

floodfill(x,y,getcolor()) ;

// Запам'ятати бiтовий образ в пам'ятi:

getimage(x,y,x+5,y+rad,pspot);

// взвод ознаки збереження в пам'ятi

tag=1;

}

// Якщо Е, то

else

// Перенести зображення з пам'ятi на екран

// починаючи з ЛIВОГО ВЕРХНЬОГО, СКIЛЬКИ,

putimage(x,y,pspot,XOR_PUT);

vis=1;

}

};

void new_game()

{

int sc,p1=0,ch,p2=0,kol,i,j,dv=5,i1,j1,i2,j2;

char s1[10],s2[10];

kol=num();

sc=speed();

setfillstyle(1,15);

{

i1=10;//Позиiя прямокутника 1го гравця по осi X

j1=205;//Початкова позиiя 1го гравця по осi Y

i2=630;//Позиiя прямокутника 2го гравця по осi X

j2=205;//Початкова позиiя 2го гравця по осi Y

i=320;//Початкове положення

j=240;// плями А

spot A(i,j,3); // Створюеться невидима пляма А

spot P1(i1,j1,50);// Створюеться невидимий прямокутник 1го гравця

spot P2(i2,j2,50);// Прямокутник 2го гравця

randomize();

A.show(); // Виведення плями А на екранi

P1.showr();//Виведення прямокутника 1го гравця на екран

P2.showr();//Виведення прямокутника 2го гравця на екран

setcolor(BLUE);

outtextxy(10,450,"Гравець 1");

outtextxy(10,460,"Score:");//Виведення рахунку для 1го гравця

itoa(p1,s1,10);//Переведення рахунку в строковий параметр

outtextxy(60,460,s1);//Виведення рахунку на екран

setcolor(RED);

outtextxy(550,450,"Гравець 2");

outtextxy(550,460,"Score:");//Виведення рахунку для 2го гравця

itoa(p2,s2,10);

outtextxy(600,460,s2);

setcolor(GREEN);

line(320,0,320,480);

do

//Визначення поведiнки плями А и ii взаемозалеж. з границями екрану

{

if((dv==2)&&(j-1<=5))dv=1;//Вiдбиття вiд

if((dv==4)&&(j-1<=5))dv=3;//верхньоi границi екрану

if((dv==1)&&(j+1>=475))dv=2;//Вiдбиття вiд

if((dv==3)&&(j+1>=475))dv=4;//нижньоi границi екрану

if((i-1<=i1+5)&&(j>=j1-3)&&(j<=j1+55))//Якщо пляма потрапляе в область

//прямокутника 1го гравця

{

if(dv==3)dv=1; //Вiдбиття вiд

if(dv==4)dv=2; //прямокутника 1го гравця

}

if(i-1<=5)//Якщо пляма не влучила в прямокутник 1го гравця

{

dv=5; //зупинити рух плями А

setcolor(BLACK);

outtextxy(600,460,s2);//Замалювати текст попереднього рахунку

setcolor(RED);

p2++;

itoa(p2,s2,10);

outtextxy(600,460,s2);//Виведення нового рахунку на екран

kol--;//Зменшити змiнну кiлькостi iгор

i=320; //Помiстити

j=240; //пляму А в

A.move(i,j); //середину екрану

if(kol==0)ch=27;//Якщо число iгор рiвне 0, вийти

}

if((i+1>=i2-5)&&(j>=j2-3)&&(j<=j2+55))//Спiвставлення прямокутника

//2го гравця та плями А

{

if(dv==1)dv=3; //Вiдбиття руху

if(dv==2)dv=4; //вiд прямокутника 2го граця

}

if(i+1>=640)

{

dv=5;

setcolor(BLACK);

outtextxy(60,460,s1);

setcolor(BLUE);

p1++;

itoa(p1,s1,10);

outtextxy(60,460,s1);//Вивiд на екран змiненого рахунку

kol--;//Зменшення кiлькостi iгор

i=320; //Повернення

j=240; //плями А

A.move(i,j); //в центр екрану

if(kol==0)ch=27;//Якщо уci iгри зiгранi - вихiд

}

switch(dv)//Змiнa руху плями А

{//вiдносно заданого напряму

case 1: i+=1;j+=1;break;

case 2: i+=1;j-=1;break;

case 3: i-=1;j+=1;break;

case 4: i-=1;j-=1;break;

Default: break;

}

A.move(i,j);// Перемiстити пляму A

if(kbhit())//Якщо натиснута клавiша

{

ch=getch();//Запам'ятати код натиснутоi клавiшi

//Гравець 1 може рухати лише якщо пляма А

if((dv==3)||(dv==4)){// рухаеться в його сторону

if((ch==119)&&(j1-5>=5))j1-=5;//при натисненнi клавiшi W, змiнити

//координаты

if((ch==115)&&(j1+5<=425))j1+=5;//при натисненнi клавiшi S

//змiнити координати

}

//Гравець 2 може рухати лише якщо пляма А

if((dv==1)||(dv==2)){//рухаеться в його сторону

if((ch==72)&&(j2-5>=5))j2-=5;//вверх

if((ch==80)&&(j2+5<=425))j2+=5;//вниз

}


Скачати україномовний реферат    


1 2 3 4 5 6



Украинская Баннерная Сеть