Autor |
Beitrag |
Borlox
      
Beiträge: 191
Win XP
Delphi 6 Enterprise
|
Verfasst: Mo 02.12.02 00:09
Hi Leute,
ich möchte eine Person von einer Seite zur anderen laufen lassen! Bisher habe ich es mit DelphiX und der Draw-Funktion gemacht, aber es flakert immer wenn ich ein neues Bild (BMP) lade! Kann ich das irgendwie verbessern, oder gibt es eine bessere Möglichkeit das zu realisieren??
DANKE
|
|
Sephiroth
      
Beiträge: 102
|
Verfasst: Mo 02.12.02 09:38
Schau dir mal dieses Tutorial an:
www.delphi-treff.de/...torials/delphixkurs/
ab Kapitel 5, also Sprites, wirds interessant für dich, weil man das was du realisieren möchtest mit Sprites lösen kann.
|
|
Borlox 
      
Beiträge: 191
Win XP
Delphi 6 Enterprise
|
Verfasst: Mo 02.12.02 17:29
Titel: Kenne ich
Das habe ich mir schon einmal angesehen und durchgelesen, aber genau nach diesem Muster ist mein Programm aufgebaut und es flakert immer noch!
|
|
Sephiroth
      
Beiträge: 102
|
Verfasst: Di 03.12.02 09:20
Arbeitest du wirklich mit sprites? Weil du da oben gemeint hast das du mit der draw-funktion arbeitest...
|
|
Borlox 
      
Beiträge: 191
Win XP
Delphi 6 Enterprise
|
Verfasst: Di 03.12.02 20:32
Titel: Draw
Ich habe gedacht man kann Animationen sehr viel leichter mit Sprites machen, oder ist das falsch????
Wie würdest du das denn machen?????
|
|
Sephiroth
      
Beiträge: 102
|
Verfasst: Mi 04.12.02 09:05
Also ich arbeite bisher nur mit Sprites... Auch die Animationen. Die Draw-Funktion benutz ich nur um irgendwo Text auszugeben oder ein Spielelogo im z.B. Hauptmenü zu malen.
Arbeitest du nun mit der Draw-Funktion oder mit Sprites?
|
|
Borlox 
      
Beiträge: 191
Win XP
Delphi 6 Enterprise
|
Verfasst: Mi 04.12.02 15:46
Titel: Draw
Ich habe gedacht, man muss etwas auf die DXDraw-Komponente zeichnen, wie z.B. eine BMP oder mit der Sprite Komponente eine Animation! Ich wollte nur wissen, was für die Leistung besser ist, wenn ich die BMP`s einfach alle hintereinander zeichne, oder das mit der Sprite funktion mache???
|
|
fcg
      
Beiträge: 360
WinXP
D3 Prof, D6 Pers
|
Verfasst: Mi 04.12.02 19:04
machs mit sprites. dat läuft besser.
und dann machste das halt mit nem timer
DXSpriteEngine1.draw; usw.
_________________ .: Wer für alles offen ist, kann nicht ganz dicht sein! :.
|
|
Borlox 
      
Beiträge: 191
Win XP
Delphi 6 Enterprise
|
Verfasst: Mi 04.12.02 19:10
Titel: Draw
Gut, dann werde ich das damit mal versuchen:DXSpriteEngine1.draw;
Kann man eigentlich zu der Komonente nachträglich vom Programm sachen ändern lassen? Also ich meine andere Sprites einfügen und löschen???? Wie geht das?
Danke
|
|
Sephiroth
      
Beiträge: 102
|
Verfasst: Do 05.12.02 09:20
Also mit Sprites ist das so:
Zuerst musst du ein Object vom Typ: TImageSprite deklarieren (also zumindest benutz ich das immer)
Dann kannst du diesem Objekt verschiedene Ereignisse zuordnen, u.a. Das Create-ereigniss
In diesem Ereigniss sagst du dann wo das Objekt erscheinen soll und welches Bild es haben soll. Und jetzt kommen wir zu deiner Frage:
Lassen sich Sprites einfügen und löschen?
Ja! Man kann das eine Objekt jeder Zeit tausendfach erstellen und mit
Objekt.Dead;
Wird es wieder gelöscht....
Wenn du jetzt nix verstanden hast dann sag das ruhig... Ich werd mich dann bemühen es mit Beispielen zu erklären, hab nur im Moment nicht genug Zeit dafür.
|
|
Borlox 
      
Beiträge: 191
Win XP
Delphi 6 Enterprise
|
Verfasst: Fr 06.12.02 14:24
Titel: Sprite
Habe ich schon alles verstanden, aber kann ich auch noch nachträglich Bilder in den Spritemanager einfügen und entfernen?
|
|
Sephiroth
      
Beiträge: 102
|
Verfasst: Fr 06.12.02 15:14
Spritemanager? Meinst du diese Sprite-Komponente?
Die ist nicht dafür da um da Sprites einzufügen oder sowas, falls du das meinst.... Die ist nur dafür da um auf die ganzen Objektklassen zurückgreifen zu können
Die Bilder erhalten die Sprites von der DelphiX-ImageList... Diese werden z.b. in dem Createerigniss des jeweiligen Objektes zugeordnet...
Jedes Sprite von der Klasse TImageSprite hat z.B. die eigentschaft
Objekt.Image
Ist das verständlich was ich da schreib? Noch fragen?
Wenn Beispiele haben möchtest dann versuch ich welche am Sonntag zu posten...
|
|
Borlox 
      
Beiträge: 191
Win XP
Delphi 6 Enterprise
|
Verfasst: Fr 06.12.02 16:53
Titel: Sprite
Ja, ich meinte die Sprite-Komponente!
Was sind denn eigentlich Objektklassen und was kann ich mit denen machen?
|
|
Sephiroth
      
Beiträge: 102
|
Verfasst: Fr 06.12.02 17:09
Also wenn du ein Sprite erstellen möchtest dann musst du es von einer anderen Klasse (bzw. Objektklasse) abstammen lassen.
Sobald du die TSprite-Komponente von DelphiX auf deinem Formular plazierst hat dein Projekt einige neue Klasse.
Ein Objekt erstellst du dann etwa so:
Quelltext 1:
| TPlayer = class(TImageSprite); |
So nun kannst du mit TPlayer einiges machen....
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var Form1: TForm1; Player: TPlayer;
Player:= TPlayer.Create(DXSpriteEngine1.Engine); Player.Image := Form1.DXImageList1.Items.Find('Spieler'); Player.X := 0; Player.Y := 0; Player.Width := Player.Image.Width; Player.Height := Player.Image.Height; |
Mit diesem Code würdest du ein Sprite erstellen das an der Position 0,0 auf deinem DxDraw erscheinen würde. Voraussetztung ist das in der ImageList ein Image mit dem Namen "Spieler" vorhanden ist.
In deinem Timer müsste dann folgendes stehen:
Quelltext 1: 2: 3: 4: 5: 6:
| DXSpriteEngine1.Move(1); //Schwarzen Hintergrund setzten DXDraw1.Surface.Fill(0); DXSpriteEngine1.Draw; DXDraw1.Flip; |
Aber das steht alles auch im DelphiX-Kurs auf www.delphi-treff.de (genauer Link steht weiter oben)
Weitere fragen?
|
|
fcg
      
Beiträge: 360
WinXP
D3 Prof, D6 Pers
|
Verfasst: Sa 07.12.02 12:37
ich denke du hast dir dat schon mla angeschaut 
_________________ .: Wer für alles offen ist, kann nicht ganz dicht sein! :.
|
|
Borlox 
      
Beiträge: 191
Win XP
Delphi 6 Enterprise
|
Verfasst: So 08.12.02 15:55
Titel: Stimmt
Stimmt, das habe ich schon mal ausprobiert, aber ich bin leider nur bis zu den Sprites gekommen, da dieser Teil bei mir einfach nicht funktionieren will! Ich habees schon 20 mal ausprobiert, immer genau nach Tutorial, aber es hat nie funktioniert!
Hat vielleicht jemand einen laufenden Sourcecode?
Danke
|
|
Sephiroth
      
Beiträge: 102
|
Verfasst: Mo 09.12.02 09:08
Ja hab ich, aber nur daheim... Ich werd versuchen ihn heute abend mal raus zu kruschteln und ihn dir dann schicken...
|
|
Borlox 
      
Beiträge: 191
Win XP
Delphi 6 Enterprise
|
Verfasst: Di 10.12.02 21:19
Titel: Danke
Danke, das würde mir echt helfen!
|
|