Autor Beitrag
Borlox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 102



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 102



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 102



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 360

WinXP
D3 Prof, D6 Pers
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 102



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 102



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 102



BeitragVerfasst: 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:

ausblenden Quelltext
1:
TPlayer = class(TImageSprite);					


So nun kannst du mit TPlayer einiges machen....

ausblenden 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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 360

WinXP
D3 Prof, D6 Pers
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 102



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 191

Win XP
Delphi 6 Enterprise
BeitragVerfasst: Di 10.12.02 21:19 
Titel: Danke
Danke, das würde mir echt helfen!