probleme bei programmieren von "pong"
-
Hallo,
wir haben ein Projekt in der Schule bei dem wir Spiele mit C++ programmieren sollen. Unsere Gruppe soll das Spiel "Pong" programmieren und wir brauchen Hilfe weil wir nicht klar kommen und uns nicht so auskennen. Bitten um Hilfe.
Danke im vorraus.
Grüße
-
Wie wäre es mit einer konkreten Frage, wir wissen ja überhaupt nicht wo es bei euch hapert.
BR evilissimo
-
ist das jetzt eine frage um sicherzustellen, dass wir euch helfen falls ihr uns fragt o.O?
-
oder die hoffnung, das in 3h hier ein pong code drin steht?

-
ser1al schrieb:
oder die hoffnung, das in 3h hier ein pong code drin steht?

Mal ganz davon abgesehen müsste man für PONG auf "Nicht-Standard" Mittel wie Grafiklibs oder dergleichen zurück greifen. Von daher ist das eigentlich sowieso das falsche Forum und ich verschiebe das ganze mal...
BR
evilissimo
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum Spiele-/Grafikprogrammierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Pong in der Konsole wär doch auch mal lustig

-
xindon schrieb:
Pong in der Konsole wär doch auch mal lustig

hättest du das vor der mittagszeit erwähnt, hättest du's jetzt *harhar*
-
wir haben eine Pong version sowohl in Konsole also auch nobel mir Allegro umgesätzt so richitg mit Full Screen und so
Einfach mal auf www.cTeam2005.de vorbei gucken da im Forum findet ihr alle Versionen und tips zu KI und so!
-
Also wir haben schon im internet nach Hilfen gesucht aber nichts wirklich hilfreiches gefunden. Das Spiel soll mit grafischer Oberfläche sein ohne Direct-X oder OpenGL. Einen Schläger können wir schon mit Tasten bewegen und den Hintergrund haben wir auch. Wir müssen noch die Ballphysik programmieren aber wir wissen nicht wie wir das machen sollen.
Grüße
-
ballphysik is doch relativ leicht bei pong (wenn mans sich leichtmacht)
der ball hat ne richtung:
dir=(x, y)
also als vektor, jeden frame addiert ihr ienen bruchteil (abhängig von der vergangengen zeit) dieser richtung zur position des balls und schon bewegt sich das ball.Wenn der Ball jetzt wo gegen fliegt, muss eine Komponente mal -1 genommen werden, und schon prallt der ball auch ab
-
genau und einfallwinkel ist glech ausfallwinkel. Also muss man da auch nicht viel rumrechnen.
Aber das alles findet ihr in dem source bei uns auf der seite die ich weiter oben schon mal genannt hatte!
-
Jens Bond schrieb:
genau und einfallwinkel ist glech ausfallwinkel. Also muss man da auch nicht viel rumrechnen.
Aber das alles findet ihr in dem source bei uns auf der seite die ich weiter oben schon mal genannt hatte!
Nicht ganz, am schlaeger moecht man schon den winkel etwas beeinflussen koennen, sonst ists total stupide
-
Hallo
sorry wir verstehen noch nicht viel con C++ und wissen auch nicht wie wir das machen sollen mit der Ballrichtung und dem Ein- und Ausfallwinkel.
Wir können jetzt beide schläger mit der tastatur bewegen aber den ball haben wir noch nich zur bewegung gebracht
MFG Cpp Anfänger
-
Hi!
Toll das du sowas kannst. Aber es wäre hilfreich wenn wir deinen Quellcode kennen würden um zu sehen wie man den Rest integrieren kann.
class Ball { private: Vec2 direction; // Movement Direction, 2 Komponentenvektor Texture material; // Material public: // C'tor etc... };Dann musst du nurnoch ein Objekt von Typ "Ball" erzeugen. Die Richtung festlegen und immer schön Zeitabhängig Werte zur Bewegungsrichtung addieren, auf Kollision testen und ggf. die Richtung ändern.
grüße
-
Cpp Anfänger schrieb:
Hallo
sorry wir verstehen noch nicht viel con C++ und wissen auch nicht wie wir das machen sollen mit der Ballrichtung und dem Ein- und Ausfallwinkel.
Wir können jetzt beide schläger mit der tastatur bewegen aber den ball haben wir noch nich zur bewegung gebracht
MFG Cpp AnfängerMaxi hats doch erklärt. Lesen und Autocogito.
Bye, TGGC (Fakten)
-
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key) { if (Key == '2') { shp_rechts->Top += 12; } if (Key == '8') { shp_rechts->Top -= 12; } if (Key == 's') { shp_links->Top += 12; } if (Key == 'w') { shp_links->Top -= 12; } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if (Key == '2') { shp_rechts->Top += 12; } if (Key == '8') { shp_rechts->Top -= 12; } if (Key == 's') { shp_links->Top += 12; } if (Key == 'w') { shp_links->Top -= 12; } } //---------------------------------------------------------------------------Also das ist unser Quellcode den wir benutzen. Wir programmieren das Spiel mit dem Borland C++ Builder und versuchen grad die Ballphysik zu programmieren
-
Dann nimm doch einfach die eingebaute Timer- Komponente, die dann alle x ms ihre Methode aufruft und in dieser Methode veränderst du einfach die Koordinaten des Balles und stellst diesem auf einer Image-Kompo dar.(musst dich dann nur noch kümmern, das flackern wegzubekommen...zur Not geht natürlich auch ne Paintbox.
-
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { randomize(); vv = rand()%17 - 8; //Zufallswerte zwischen -8 .. 8 vh = rand()%17 - 8; //Zufallswerte zwischen -8 .. 8 } //--------------------------------------------------------------------------- void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key) { if (Key == 's') { shp_links->Top += 12; } if (Key == 'w') { shp_links->Top -= 12; } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if (Key == 's') { shp_links->Top += 12; } if (Key == 'w') { shp_links->Top -= 12; } } //--------------------------------------------------------------------------- void __fastcall TForm1::timballTimer(TObject *Sender) { if(ball->Top+ball->Height >= background->Height || ball->Top <= background->Top) vv = -vv; if(ball->Left+ball->Width >= background->Width) vh = -vh; if (ball->Left <= background->Left) ball->Visible = false; ball->Left += vh; ball->Top += vv; } //---------------------------------------------------------------------------Hallo
Wir haben mittlerweile rausgefunden wie man den Ball bewegt und wie der an den Rändern des Spielfeldes abprallt. Jetzt müssen wir den Ball so Programmieren, dass er an dem Schläger auch abprallt. Wir wissen nur nich wie das geht. Bitten um Hilfe.
-
einfach koordinaten vergleciehen.....
udn für doublebuffering gibbets bei vcl nen einfachen weg.TForm1::Create(...) { ... ... DoubleBuffering = true; ... ... }es könnt au sein das der bool "DoubleBuffered" heist.....schaut mal in da VCL docu.......