Entwickler-Ecke

Freeware Projekte - Stoppt die Invasion![Spiel]


Florens - Do 24.02.11 21:54
Titel: Stoppt die Invasion![Spiel]
Ich hab die letzten 2 Stunden mal ein Spiel geschrieben und finde es ist recht gut geworden und wollte es deswegen mit euch teilen. Ich würd mich natürlich über Kommentare egal ob negativ(solange es konstruktiv bleibt) oder positiv freuen.
Ich hoffe das Spiel ist nicht zu anstößig schließlich geht es darum eine Penisinvasion zu stoppen, aber es sind nur Cartoon-Penise die eher für nen Schenkelklopfer da sind.

P.S. eure High-Scores würden mich natürlich auch interessieren;)

MfG
Flo


FinnO - Do 24.02.11 22:07

Moin,

78 Sekunden. Vermute aber, dass deine Freundin, wenn du dieses Humorniveau fortführst, eine höhere Punktzahl erreichen wirst ;-) :mrgreen:

LG,

Finn Ole


Xion - Fr 25.02.11 10:12

Wenn du Form.DoubleBuffered:=True; setzt, dann ist das flackern weg ;)


Webo - Fr 25.02.11 10:44

nach 65 Sekunden war Schluss, war aber auch auf'm Laptopt mit Touchpad 8) irgendwann hab ich versehentlich neben das Fenster geklickt, da war es dann geschehen.

Das Fenster passt bei der Auflösung leider nicht ganz auf den Bildschirm, fehlt unten ein kleines Stück, was aber nicht ganz so dramatisch ist ...

Von der Idee natürlich mal was anderes, gefällt mir :D


Sinspin - Fr 25.02.11 11:44

Witzige Idee. 80 Sekunden.
Man könnte auch Mücken nehmen. Ala "Verhindere das dich die Mücken stechen".
Aber als Titel zum aktuellen Thema würde ich nicht auf eine Weltherrschaft der Pimmel setzen sondern eher auf eine wehrhafte Kloschüssel die sich vor "im stehen Pinklern" schützen muss.
Zum abwehren fände ich eine Fliegenklatsche oder nen Teppichklopfer lustig.


Webo - Fr 25.02.11 12:12

user profile iconSinspin hat folgendes geschrieben Zum zitierten Posting springen:
Zum abwehren fände ich eine Fliegenklatsche oder nen Teppichklopfer lustig.

Auuuuuutsch, das tut dann aber verdammt weh :p

Aber stimmt, würde es mehr "Hintergrund" haben.


Florens - Fr 25.02.11 18:55

user profile iconXion hat folgendes geschrieben Zum zitierten Posting springen:
Wenn du Form.DoubleBuffered:=True; setzt, dann ist das flackern weg ;)


Ich hab das mal probiert, aber kann es sein, dass dadurch das gesamte Spiel langsamer wird? ich benutze 20 Timer und wenn alle 16 Penise in bewegung sind kam ich gerade auf einen Rekord von 285 Sekunden (Zum Vergleich gestern waren es 135 Sekunden). Das Flackern ist mir aber auch schon aufgefallen und ist mir wirklich ein Dorn im Auge. Bei einem anderen Penisspiel (ist im Stil von Snake nur anders wenns welche interessiert lad ichs gerne hoch^^) ist das Flackern nähmlich auch.

Edit:
user profile iconWebo hat folgendes geschrieben Zum zitierten Posting springen:
Das Fenster passt bei der Auflösung leider nicht ganz auf den Bildschirm, fehlt unten ein kleines Stück(...)

Das dürfte eigentlich gar nicht sein, weil sich das Fenster deiner Bildschirmauflösung anpasst. Leider tuhen dies die Penise nicht. Im Klartext heißt das, dass Leute mit höherer Auflösung (so wie ich 1920x1080 es im Spiel einfacher haben. Vll. patch ich das in der nächsten Version und passe die Penise der Fenstergröße an.

P.S: Quelltext zum Anpassen des Fensters:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
form1.ClientHeight:=screen.Height-38;
form1.Top:=0;
form1.ClientWidth:=screen.Width div 5;
form1.Left:=screen.width div 2;
form1.Constraints.MaxHeight:=form1.Height;
form1.Constraints.MaxWidth:=form1.Width;
form1.Constraints.MinHeight:=form1.Constraints.MaxHeight;
form1.Constraints.Minwidth:=form1.Constraints.MaxWidth;


Marc. - Fr 25.02.11 20:22

user profile iconFlorens hat folgendes geschrieben Zum zitierten Posting springen:
ich benutze 20 Timer und wenn alle 16 Penise in bewegung sind kam ich gerade auf einen Rekord von 285 Sekunden

Es täte ein Timer reichen, in dem du durch alle Objekte iterierst und diese je, um ihren entsprechenden Faktor versetzt. Gegebenfalls einen Weiteren, um die Zeit zu stoppen.
Evlt. eignet sich hier auch Time Based Movement [http://wiki.delphigl.com/index.php/Timebased_Movement].
Übrigens solltest Du die gezeichneten Objekte, wie die Form, an die Auflösung anpassen.

Ich hab's übrigens gut 81 Sekunden überlebt. :)

Beste Grüße


Florens - Fr 25.02.11 22:53

user profile iconMarc. hat folgendes geschrieben Zum zitierten Posting springen:
Es täte ein Timer reichen, in dem du durch alle Objekte iterierst und diese je, um ihren entsprechenden Faktor versetzt.


Die 16 Timer hab ich um die Penise nacheinander zu aktivieren. Mit deiner möglichkeit müsste ich in den einen Timer noch für 15 Penise eine If-Schleife dazuschreiben wo ich liebe bei meiner if count=5 then timer5.enabled:=true bleibe.

Die Penise bewegen tu ich mit image4.Top:=Image4.top+Intervall[4];

wobei Intervall[1..16] in einem Timer, der alle 10 sekunden einmal durchläuft, ein zufälliges Intervall um 1 erhöht wird.

Wegen der Zeit: Die wird ja sowieso mitgezählt also stopp ich da einfach den Timer und nehm diese Zeit ich könnt natürlich das noch in Minuten umrechnen, aber wie gesagt, ich hab das Spiel in 2 Stunden geschrieben. Ausserdem find ich die Angabe in Sekunden besser vergleichbar, weil darum geht es ja immer in solch einen Spiel: Wer hat den größten.

Was mich mal noch interessieren würde, kann man die Zahlen eines Objekts (Image1,Image2,Image3) irgendwie durch eine variable ersätzen und diese hochzählen(for i:=1 to 3 do image(i).top ...)?


elundril - Fr 25.02.11 23:02

Entweder du arbeitest mit FindComponent (nicht so schön finde ich) oder du arbeitest mit einem Array in dem du jeweils eine Referenz aufs Image speicherst. Das non-plus-ultra wäre natürlich wenn jeder deiner Penise ein Objekt wäre und du dann die Objekte auf eine PaintBox zeichnest. Und das ganze dann ev. noch mit Time-Based-Movement veredelst.

lg elundril


Florens - Fr 25.02.11 23:31

user profile iconMarc. hat folgendes geschrieben Zum zitierten Posting springen:
Es täte ein Timer reichen, in dem du durch alle Objekte iterierst und diese je, um ihren entsprechenden Faktor versetzt.


Ich hab das gerade doch mal probiert und siehe da, es läuft mit doublebuffer:=true genauso wie vorher mit jetzt nur noch 5 timern und ohne flackern. Ausserdem werden am Ende jetzt noch eiin bisschen mehr Stats angezeigt.

Was ist denn so mehr vorteilhaft an Time-Based-Movement zu meiner anderen Variante mit position:=position+Intervall[x]?

P.S. Die geupdatete Version hab ich hier angeheftet. Könnt ihr in einer langweiligen Info-Stunde ja mal den andern zeigen^^


Teekeks - Sa 26.02.11 00:26

217sekunden...


Delete - Sa 21.01.12 19:10

86 Sekunden..