Autor Beitrag
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 19.12.03 20:23 
Hallo,
jedes Objekt ist 16X16 Pixel groß.
ich habe eine karte die ist (in meinen fall) 64X21 Pixel groß
Das sichtfenster ist 39X21 Pixel groß

die mini karte soll in ein fehld von:
145X128 Pixel rein

nun meine frage:
wie kann ich den Obitmalen größe für die mini karte herrausfinden, also:
wie groß muss jedes objekt auf der mini karte sein ?

ich verwende für die karte ein 2D Array

und ich benutze die GLXTreem komponenten, was aber egal sein dürfte !
wer hat eine idee für das problem ???

_________________
MFG
Michael Springwald, "kann kein englisch...."
Da_Knuddelbaer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 485



BeitragVerfasst: Fr 19.12.03 22:19 
Also eigentlich sollte das recht einfach sein: Die Minikarte ist ja immer gleich groß.

Du könntest also beispielsweise (und auch wirklich nur beispielsweise) aus der Kartengröße dann die Teilausschnitte berechnen, wobei sie mindestens einen Pixel breit sein müssen. Und danach trägst du in jedes dieser Felder das entsprechende in deinem Array eingetragene Objekt ein.

Ein recht praktisches Beispiel für eine Minikarte auf 2D-Level-Basis könnte UnTitledRTS sein. Ist zwar für DelphiX, aber der Source der dahinter steckt sollte ja ähnlich sein :wink:

UntitledRTS

Greetz
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Sa 20.12.03 16:26 
danke, die seite ist gut, nur ist sie mir zu langsamm, er läd ja nur in by t größe runter. hast du die sachen dir gedownloadet ?
wenn ja, könntes du sie mir bitte an: mimi_171@gmx.de senden ?

_________________
MFG
Michael Springwald, "kann kein englisch...."
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 21.12.03 15:45 
der qullcode kann ich leider nicht complieren, weil: dort wird versucht const var zu verändern, weiß zwar nicht warum, aber es wird versucht.
hat noch jemmand ideen zu meinem problem ?

_________________
MFG
Michael Springwald, "kann kein englisch...."
Da_Knuddelbaer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 485



BeitragVerfasst: So 21.12.03 16:21 
Ja, check dein Delphi, ich kann es ohne Probleme kompilieren :lol:
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 21.12.03 16:51 
ich nicht, weil die da versuchen irgendwleche konstanten zu verändern, wie den auch sei: hat jemmand eine idee für dieses "einfache problem" ???
wenn ja: nur rauß damit !

_________________
MFG
Michael Springwald, "kann kein englisch...."
Gandalfus
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 129



BeitragVerfasst: So 21.12.03 17:46 
mal ein Beispiel:

grösse der richtigen karte ist 1000*1000 und die kleine Karte ist 100*100 gross.
Jetzt ist eine einheit an der position (100,100) auf der grossen Karte also Position auf der kleinen Karte ist (10,10). Das ist einfacher Dreisatz.

_________________
Wennn man feststellt, dass es drei Moeglichkeiten gibt, die einen Vorgang schiefgehen lassen koennen und man diese ausschaltet, entstehen automatisch drei neue Moeglichkeiten.
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Di 23.12.03 18:15 
ich habe jetzt mal dein beispiel umgesetzt und angepasst:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
  for x:=0 to MapX do begin
    for y:=0 to MapY do begin
      glximagelist.items[4].draw( (MapX div x) * MapS ,(352+(MapY div y) ) * MapS, 0);
    end;
  end;

jetzt meint er: es wird durch 0 geteilt !!!!

_________________
MFG
Michael Springwald, "kann kein englisch...."
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Di 23.12.03 20:53 
problem gelöst, habe einfach nur die falschen zahlen genommen, jetzt geht es :)

_________________
MFG
Michael Springwald, "kann kein englisch...."