Klassen für Pong
-
Hallo!
DA ich es satt hab, mich immer an etwas schwerem zu übernehmen, will ich mal was leichtes anfangen...
Also: Pong.
Ich glaub, das ist das, wo der ball zwichen zwei paddeln hin und herfleigt, oder? das mein ich jedenfalls.
Also: Welche Klassen sollte ich dafür erstellen?
Ich dachte mir:Klasse cBall:
Verwaltet, den Ball; Funkctionen: Update() Berchnet neue Position
Render() Zeichnet den BallKlasse cPaddle, Verwaltet die beiden Dinger am Rand...
Also, Update() Berechnet neue Position; entweder Computer-KI oder durch Tasteneingabe. Und Render() Zeichnet das DIng.DAs sind noch nicht alle... z.B. noch cPadlle::GetXPos() usw. zur Kollisionsabfrage.
Waws meint ihr, ist das so erstmal ganz OK?
-
Hi !
Ob das richtig oder falsch ist, kann dir wohl keiner beantworten, das hängt von deinem persönlichem Geschmack ab (imo). Machs so wie du am Besten zurechtkommst, und wenn du merkst dass das nix war : Versuchs nochmal neu
Ich finde deinen Ansatz aber ganz in Ordnung, versuchs einfach mal
-
OK, Ich hab auch schon angefanegn, damit, wil ich mir dachte dasss sowas kommt. wollte es erst nich posten, aber eh ich scheiße baue...
Mittlerweile fliegt der Ball schon einmal vomo lienken unteren Rand zum rechten oberen. Hab mit der Klasse cBAll angefangen. Nur da ist ein Problem:
Ich benutze den GameCore aus dem Buch "Programming Role Playing GAmes with DirectX", vielleicht kennts ja einer. Der "Ball" ist bei mir noch ein Viereck. Ich Update ihn, indem ich ihm immer ein neues Datenfeld mit den einzelnen Vertizen zuornde und rendere ihn mit der Klasse cVertex..., weil ich mit der Klasse den Ball nicht verschieben kann sondern eben nur die Koordinaten ändern kann. DAs Problem ist, dass der Ball nicht schön gleichmäßig läuft, ´sondern er teilt sich quasi in zwei Teile, d.h. Er wackelt irgnedwie hin und her. Siht son bisschen wien Flimmern aus, oder so.
Vielleicht habt ihr ne Idee, vielleicht geht das ja auch mit cTexture aus dem Core.Gruß Maxi
-
Ich hab genau die gleichen Klassen die du genannt hast nur mit anderen Namen. Nur da mein Pong schlecht aufgebaut habe sind diese unnötig weil ich nur werte da drin habe und nen Konstrukter zum initialisieren. Aber das war sowiso nur nen Test weil ich das komplett umschreiben will.
Zu deinem Problem kann ich ent viel sagen hab meins Mit Allegro gemacht da Blittet man nen Bild auf das Surface und da kommt die position oben links aus den ball koordinaten und die andere ecke aus startkoordinaten + ballgröße (ist in wirklichkeit also auch nen viereck mit transparenz)
[ Dieser Beitrag wurde am 11.02.2003 um 17:59 Uhr von Tobiking editiert. ]
-
Du hast aber schon einen BackBuffer, oder?
-
Wenn du mich meinst, ich <b>denke <B> ja. Jedenfalls heißt es beim Rednern:
BOOL cApp::Frame() { if(timeGetTime() >= m_LastFrame + 1) { m_Kugel.Update(); m_LastFrame = timeGetTime(); } // Begin the scene if(m_Graphics.BeginScene() == TRUE) { m_Graphics.ClearDisplay(0x00000000); m_Kugel.Render(); m_Graphics.EndScene(); m_Graphics.Display(); } return TRUE; }
m_Kugel ist die Klasse cBall. Aber ich hjab das Problem jetzt sowieso gelöst: mit cTexture, da flimmert das nich mehr, ich habe das Rechteck in einer bmp-Datei gespeichert, anstatt es direkt im Programm zu generieren.