Proszę tylko bez zbędnych komentarzy.Pytanie te jest normalne i chcę się dowiedzieć tylko jednej rzeczy kombinowałem i mi nie wychodziło więc postanowiłem zapytać się tutaj:)
Proszę bez ,,HEJTÓW"
c++ Builder
------------------------------------------------------------------------------
Witam, jako iż zaczynam i chcę stworzyć prostą grę to mam pytanie do bardziej doświadczonych, oraz posiadających wiedzę odemnie.
Może wyjaśnie najpierw o co chodzi w tej grze aby wszystko było jasne.
A więc w tej prostej grze mamy dwie paletki na dole i na górze (cała akcja rozgrywa się na boisku:D)oraz mamy piłkę którą odbijamy (paletki to p1 oraz p2).
Dobra może przejdę do konkretów , główny problem polega na tym że paletka p1 odbija i jest wszystko ok lecz nie wiem jak zrobić aby paletka p2 także odbijała ;c. Bardzo proszę o pomoc,chciałbym zrobić wkońcu jakąś gre :).
Linijka z odbijaniem piłki paletki (p1):
-----------------------------------------------------------------------------
if(b->Left > p1->Left-b->Width/2 && b->Left < p1->Left+p1->Width &&
b->Top+b->Height > p1->Top)
{
if (y>0) y=-y;
}
------------------------------------------------------------------------------
KODZIK:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int x=8;
int y=8;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::timerpilkaTimer(TObject *Sender)
{
b->Left+=x;
b->Top +=y;
//lewa sciana
if(b->Left-5<=tlo->Left) x=-x;
//prawa sciana
if(b->Left+b->Width+5>=tlo->Width)x=-x;
//gol1
if(b->Top>=p1->Top+p1->Height+15)
if(b->Top>=p2->Top+p2->Height+15)
{
timerpilka->Enabled=false;
b->Visible=false;
}
if(b->Left > p1->Left-b->Width/2 && b->Left < p1->Left+p1->Width &&
b->Top+b->Height > p1->Top)
{
if (y>0) y=-y;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::gora1Timer(TObject *Sender)
{
if(p1->Left>10)p1->Left-=10;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::dol1Timer(TObject *Sender)
{
if(p1->Left+p1->Width<tlo->Width-10)p1->Left+=10;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::gora2Timer(TObject *Sender)
{
if(p2->Left>10)p2->Left-=10;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::dol2Timer(TObject *Sender)
{
if(p2->Left+p2->Width<tlo->Width-10)p2->Left+=10;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==0x4A)gora1->Enabled=true;
if(Key==0x4C)dol1->Enabled=true;
if(Key==0x41)gora2->Enabled=true;
if(Key==0x44)dol2->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==0x4A)gora1->Enabled=false;
if(Key==0x4C)dol1->Enabled=false;
if(Key==0x41)gora2->Enabled=false;
if(Key==0x44)dol2->Enabled=false;
}
//---------------------------------------------------------------------------