Entwickler-Ecke
Sonstiges (Delphi) - Spiel,Bewegen von Figuren
pigfacejoe - Fr 20.10.06 17:02
Titel: Spiel,Bewegen von Figuren
hallo,
ich habe in der Schule Grundlagen von Delphi gelernt, alles andere hab ich mir selbst beigebracht.
Ich will jetzt ein Spiel machen , ähnlich wie Moorhuhn. Ich habe bisher die Hühner immer durch einen Timer (bsp. alle 50 Millisekunden image1.left+1 oda so)bewegt. Allerdings denke ich das dies eine sehr unschöne Lösung ist, mir ist aber sonst nichts eingefallen.
Es gibt doch ganz bestimmt eine schönere Lösung, oder?
PS: Das mit dem Image finde ich sowieso sau dummm, weil da immer der Rand noch zu sehen ist und weil das Bild "flattert".
Mfg
PigfaceJoe
Leuchtturm - Fr 20.10.06 17:54
Also wenn du ein kleines Spiel programmieren willst würde ich dir entweder OpenGL oder DirectX empfehlen.
Für DirectX könntest du auch
DELPHIX(für die älteren Delphis) oder
UNDELPHIX(für die neuern) benutzen.
Leuchtturm
Martok - Fr 20.10.06 18:15
Wo ich glatt dagegenhalte und Sage: nimm lieber OpenGL.
Dazu gibts
FEAR2D
Wobei die Frage, DirectDraw oder OpenGL ein Glaubenskrieg ist. Allerdings sind die Delphix-Komponenten nicht die Bugfreiesten, von daher...
Martok
Blackheart666 - Fr 20.10.06 21:45
Delphi ist einfach nicht die Sprache für anspruchsvolle Spiele, da ist wohl eher C++ der Favorit.
("Was nicht heißen soll das es nicht geht")
Eine noch sehr mächtige und sehr einfach zu erlernende Sprache
wenn es um Spiele geht ist BlitzBasic 2D - 3D da sie direkt für die Spiele Entwicklung konzipiert ist.
http://www.blitzbasic.de/
pigfacejoe - Mo 23.10.06 09:53
Wie meinst du das mit border:=0??
Blackheart666 - Mo 23.10.06 10:01
Gegen das Flackern hilft meistens
Delphi-Quelltext
1:
| Form1.DoubleBuffered:=True; |
Border gibts bei Html.
Blackheart666
Gausi - Mo 23.10.06 11:25
je nachdem wie anspruchsvoll das Spiel von der Grafik her sein soll, reichen auch die VCL-Komponenten. Generell ist dann der Weg über einen Timer nicht verkehrt.
Den "Rand" bei den Images bekommst du weg, in dem du die Transparenz der Bilder auf True stellst. Kann sein, dass du einen anderen Effekt meinst - den würde man wegbekommen, wenn man PNG-Komponenten nimmt, die Halbtransparenz etc. unterstützen.
In
diesem Thread [
http://www.delphi-forum.de/topic_Spielidee+zu+einem+Logo_64971.html] habe ich auch mal ein kleines Spiel vorgestellt, und auch etwas Quellcode gepostet. Idee bei mir ist, dass ich die Shapes (ginge mit Images aber genauso) um ein paar Eigenschaften erweitert habe, nämlich um DeltaX und DeltaY, wo die Geschwindigkeit in X bzw. in Y-Richtung angegeben wird, sowie um ExactLeft, ExactTop, was Real-Varianten von Top und Left sind, sodass man auch nicht ganzzahlige Schritte gehen kann. Damit hat man mehr Spielraum, was die Geschwindigkeit der Bewegung angeht.
Wenn es aber anspruchsvoller werden soll, und du generell in die Spieleprogrammierung einsteigen willst, dann sind die anderen Vorschläge aus diesem Thread sicherlich nicht verkehrt ;-)
pigfacejoe - Mo 23.10.06 12:59
Danke für die Tips!
Mit "Rand " meine ich:
Wenn ich eine .gif Datei (die sich bewegt) in ein image Laden (uses halt noch GifImage einfügen)will,obwohl der Hintergrund des Bildes schwarz ist (Wie der Hintergrund des Forms) wird er weiss. Keine Ahnung wieso. Wenn ich auf Transparent stelle das Gleiche:
Am Anfang schwarz, dannach wird der Rand weiss.
Nur zum Verständnis:
Ich habe animierte Fahrzeuge, die von einem zum anderen Rand des Forms fahren sollen.
Wenn sie eine bestimmte Breite überschreiten dann sollen sie wieder an den anfang gesetzt werden, Sodass es so aussieht als ob sie von links nach rechrs fahren würden und immer wieder kommen. Das klappt ja auch so weit, nur das halt nach einer Bahn der Rand weiss wird, obwohl er vorher schwarz war.
So ich hoffe das ist verständlich^^
Vielen Dank für eure Antworten!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!