Kolize v konzoli – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Kolize v konzoli – C / C++ – Fórum – Programujte.comKolize v konzoli – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
:D
~ Anonymní uživatel
1 příspěvek
9. 3. 2011   #1
-
0
-

ahoj,dělám hru zde je kod:

#include <cstdlib>

#include <windows.h>
#include <iostream>
#include <ctime>
void gotoxy(int x,int y)
{

HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
COORD position = {x, y};
SetConsoleCursorPosition(handle, position);
}
using namespace std;

int main(int argc, char *argv[])
{
HANDLE hOut;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx = new CONSOLE_FONT_INFOEX() ;
lpConsoleCurrentFontEx-> cbSize = sizeof (CONSOLE_FONT_INFOEX);
GetCurrentConsoleFontEx(hConsole,0,lpConsoleCurrentFontEx);
lpConsoleCurrentFontEx->dwFontSize.X = 8;
lpConsoleCurrentFontEx->dwFontSize.Y = 16;
SetCurrentConsoleFontEx(hConsole,0,lpConsoleCurrentFontEx);
int cislo=0;
int maxcislo=3;

system("mode 200");
int a=50;
int b=50;
int q=50;
int w=0;
while(1)
{
w=w+1;
srand( (unsigned)time( NULL ) );
cislo = rand() % maxcislo;
if (cislo==1)
{
q=q+1;
}
if (cislo==2)
{
q=q-1;
}
if (a==w)
{
w=0;
Beep(75,300);
}

if (a>92)
{
a=90;
}
if (a<1)
{
a=3;
}
gotoxy(q,w);
SetConsoleTextAttribute(hOut,BACKGROUND_RED |BACKGROUND_INTENSITY);
cout<<"|*|";
SetConsoleTextAttribute(hOut,FOREGROUND_RED);
gotoxy(a,b);
SetConsoleTextAttribute(hOut,BACKGROUND_BLUE |BACKGROUND_INTENSITY);
cout<<"|";
SetConsoleTextAttribute(hOut,FOREGROUND_RED);
SetConsoleTextAttribute(hOut,BACKGROUND_GREEN |BACKGROUND_INTENSITY);
cout<<"||||||";
SetConsoleTextAttribute(hOut,FOREGROUND_RED);
SetConsoleTextAttribute(hOut,BACKGROUND_BLUE |BACKGROUND_INTENSITY);
cout<<"|";
SetConsoleTextAttribute(hOut,FOREGROUND_RED);
cout<<"\n\n\n\n\n\n\n\n "<<"A: "<<a<<" B: "<<b<<" "<<" Q: "<<q<<" W: "<<w;
if (GetAsyncKeyState(VK_RIGHT))
{
a=a+1;
}
if (GetAsyncKeyState(VK_LEFT))
{
a=a-1;
}

if (w>60)
{
w=0;
Beep(2000,400);
}

system("cls");
}

system("PAUSE>null");
return EXIT_SUCCESS;
}

jak bych mohl udělat kolizi mezi míčem a hráčem? zkoušel jsem to if (a==b) .... ale to funguje špatně,Dík za odpovědi.

Nahlásit jako SPAM
IP: 213.19.38.–
Reklama
Reklama
nervak0
Věrný člen
10. 3. 2011   #2
-
0
-

int q1 = q, q2 = q + 3 - 1;

int a1 = a, a2 = a + 8 - 1;

if ((w == b) && ((q1 >= a1 && q1 <= a2) || (q2 >= a1 && q2 <= a2))) {
kolize;
}

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 118 hostů

Podobná vlákna

Kolize — založil milanmichal

Kolize — založil Dusan

Kolize — založil "Andrje"

Tetris - kolize — založil Geralt

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý