BreakEm

Top  Previous  Next

Diesen Monat habe ich mich entschieden, Code für einen 3D Breakout Klon zu schreiben: er enthält 5 Level, Code für die Punktzahl, Leben, verschiedene abschießbare Steine und vieles mehr!

 

aum52_breakem1

 

Lassen Sie mich erklären, was die Steine bedeuten:

 

aum52_breakem2

 

Das ist ein gewöhnlicher Stein. Wenn Sie ihn treffen verschwindet er und gibt Punkte.

 

aum52_breakem3

 

Dieser Stein vergrößert Ihre Spielfigur.

 

aum52_breakem4

 

Dieser Stein verkleinert Ihre Spielfigur.

 

aum52_breakem5

 

Dieser Stein beschleunigt den Ball.

 

aum52_breakem6

 

Dieser Stein verlangsamt den Ball.

 

aum52_breakem7

 

Dieser Stein gibt Ihnen ein Extra Leben.

 

 

 

 

 

 

Und dies ist ein unsichtbarer Stein ;). Sie können Ihn nicht sehen, aber er erscheint, wenn Sie ihn das erste Mal treffen und kann nur durch einen zweiten Treffer entfernt werden.

 

Wie Sie sehen habe ich schon einige Steine; Sie können (und sollten!) weitere erfinden.

 

Hier sind einige Code Highlights:

 

1) Jeder Stein wird durch einen Zähler erfasst, dessen Wert angezeigt wird; auf diese Weise kann man erkennen, ob ein Level noch unsichtbare Steine enthält.

 

2) Ich habe zwei Mechanismen eingebaut, die verhindern, dass der Ball in der Wand, einer Ecke oder im Spieler hängenbleibt, indem ich die zurückgelegte Distanz im letzten Frame betrachte.

 

3) Der Spieler verliert ein Leben, wenn die Koordinaten des Balles in x-Richtung unter 550 Quants fallen. Ändern Sie diesen Wert, wenn Sie ein anderes Level benutzen.

 

4) Der Ball verhält sich manchmal etwas zufällig, was das Spiel interessanter macht und Situationen vermeidet, in denen der Ball einfach immer zwischen zwei Wänden hin und her prallt, ohne dass der Spieler eingreifen kann.

 

5) Ich erlaube dem Ball nicht in Winkeln abzuprallen, die nahe bei 90 oder 90 Grad liegen (langweilig anzuschauen); wenn der Winkel im Intervall von 100 bis -80 oder im Intervall von 80 bis 100 liegt, wird er auf den jeweiligen Randwert gesetzt.

 

 

aum52_breakem8

 

6) Das nächste Level wird dadurch erreicht, dass main() erneut aufgerufen wird. Die Variable level_number muss vorher auf die gewünschte Levelzahl gesetzt werden.