Autor Beitrag
Miliantrus
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 17.10.02 15:28 
Hi!
Ich bin gerade dabei, eine kleine 2D Engine zu machen. Zuerst hab ich mit der Komponente TImage angefangen. Das Erstellen der Map sah dann so aus:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm1.SetWorldMap;
const Max=40; Breite=100; Hoehe=50;
var i,j: Integer; Ebene: TBitMap;
begin
  Spielfeld.SetBounds (0, 0, Breite*Max, Hoehe*Max);
  Tile := TBitMap.Create;
  Tile.Width  := Breite;
  Tile.Height := Hoehe;
  Tile.Transparent := true;
  Tile.LoadFromResourceName(HInstance, 'Tile01');
  for i := 0 to Max do
  for j := 0 to Max do
  begin
    Spielfeld.Canvas.Draw (i*Breite, j*Hoehe, Ebene);
    Spielfeld.Canvas.Draw
      (i*Breite-Breite div 2, j*Hoehe-Hoehe div 2, Tile);
  end;
end;


Um die Map zu scrollen, bewegt man das Image (Spielfeld) mit den Cursor Tasten, d.h. man verändert die Werte left und top. Jetzt hab ich allerdings mit DelphiX angefangen. Die Map wird auch komplett dargestellt, nur weiß ich jetz nicht, wie ich sie scrollen kann. Die Komponente TDXDraw lässt sich (denk ich mal :roll: ) nicht nach links, rechts, rauf und runter bewegen. Jetzt würde ich gerne wissen, wie ich das scrollen mit DelphiX realisieren kann.

Ich bin für jede Hilfe dankbar!

_________________
have fun with your bytes
MathiasH
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 699

WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
BeitragVerfasst: Do 17.10.02 17:53 
um zu scrolen speicherst du einfach cameraX, cameraY und addierst diese Werte zu jeder Positionsangabe hinzu, wenn du die werte dann veränderst wandert die Karte, wenn dir das als Hilfe nicht genügt kann ich die auch ein kleines progi geben

MathiasH

_________________
"Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
Miliantrus Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 17.10.02 18:20 
:D Am besten wäre natürlich ein prog, da ich sehr wenig Erfahrung mit DelphiX hab. Wenn sich das machen lässt, würde ich dich verehren :D

_________________
have fun with your bytes
Miliantrus Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 18.10.02 12:57 
Wenn das mit dem Programm nicht geht, könntest du mir dann erklären, wo ich cameraX und cameraY speichern muss und wo ich das dann addieren muss? :oops: Komme mir schon vor wie ein Delphi-Newbie aber mit DelphiX hab ich noch nichts gemacht. Falls mir noch jemand helfen kann, immer her mit eurem Wissen! :D

_________________
have fun with your bytes
MathiasH
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 699

WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
BeitragVerfasst: Fr 18.10.02 17:16 
also du musst einfach zwei neue Variablen deklarieren, cameraX, Y (als integer) undbei jedem aufruf einer Draw Funktion in DelphiX diese zwei Variablen dazuaddieren also so:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
procedure DrawMyObject(x, y: integer); // eigene procedure
begin
DXDraw1.Surface.Fill(0);
DXImageList1.Items[0].Draw(DXDraw1.Surface, x + cameraX, y + CameraY, 0);
DXDraw1.Flip
end;


MathiasH

_________________
"Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
No
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Fr 18.10.02 19:56 
na ja kamera.x und y abzuziehen wäre doch etwas logischer.
Aber im Prinzip ists wurscht.
MathiasH
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 699

WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
BeitragVerfasst: Fr 18.10.02 20:53 
@No: das ist ja wohl klar :P , nenn doch die Variablen, wie du willst, dann pasts und bei möglicherwiese musst du auch -x und + y rechenen, jenachdem, wie die Karte organisiert ist

MathiasH

_________________
"Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
Miliantrus Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 18.10.02 21:41 
:nixweiss: Ich hab das jetz mal probiert, aber irgendwie funzt das nicht gescheit. Wenn ich die Map scrollen lasse, sieht man nur ein Tile statt der ganzen Karte. Schließlich will ich ja die ganze Map und das was (später mal) drauf ist bewegen. Falls es keine Umstände macht, würde ich mich sehr freuen, wenn mir jemand ein kleines Beispiel prog per email schickt. Lässt sich das einrichten? :angel:

_________________
have fun with your bytes
Miliantrus Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: So 20.10.02 15:17 
Zuerst mal danke, dass du mir den Sourcecode geschickt hast.
Ich hab mir das angeschaut und ein bisschen rumprobiert. Wenn ich rechteckige Tiles nehme, funzt alles wie es soll. Allerdings ist dann die Isometrie weg. Das erstellen der Map hab ich aus dem Buch "3D Programmierung mit Delphi für Kids" genommen. Jetz hab ich 2 Probleme:
entweder hab ich die Map wie sie sein soll und kann sie nicht scrollen oder ich kann sie scrollen, aber dafür is da dann jedes 2te Feld schwarz. :nut:
Ich werd noch dumm von dem zeug :autsch:

_________________
have fun with your bytes
MathiasH
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 699

WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
BeitragVerfasst: So 20.10.02 15:57 
da geht's ganz genauso mit dem scrollen, einfache cameraX/y dazuaddieren, bei jedem "Draw"

MathiasH

_________________
"Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
Miliantrus Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: So 20.10.02 16:42 
:dance: FREUDE FREUDE !!!! :dance2:
Es geht! Ich danke dir für deine Hilfe. :beer: Bekommst n bisschen virtuelles Bier geschenkt. Jetz werde ich das beste Spiel aller Zeiten machen :!: :D :D :D

_________________
have fun with your bytes
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Sa 09.11.02 19:09 
kannst du mir die engine mal senden ?
wäre nett,weil ich habe das gleich problem ich will auch scrollen,und bin auf ner suche nach einer engine
ich habe bereis erfarhung mit delphiX sihe Snake 2 und Fische versnekn unter htttp://mimi.l4k.de

währe nett wenn du mir denn qullcode von deiner engine bitte an mimi_17@web.de senden würdes ;)
MFG
mimi
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 29.11.02 16:54 
mm,schade dann nicht !
weil ich würde auch genre mal so was machen ;)

MFG
mimi