mmofacts.com

Koordinatensystem per PHP^^?

gepostet vor 19 Jahre, 6 Monate von DarkSnake
servitsch,

ich bin auf der suche nach nem Koordinatensystem per Javascript. Das ganze soll für mein Spiel als Koordination auf der Weltkarte dienen.

die Weltkarte ist kästchen gegliedert (16x16 pixel), 100x100. von coordination 00, 00 bis 99, 99.

jetzt wollt ich den user per javascript erkennen lassen (mit einer kleinen img), wo genau er sich befindet ohne lang die kästchen zu zählen. aber das ganze googlen hat nichts geholfen, hoffe es kann mir hier einer helfen.

mit javascript kenne ich mich einwenig aus, aber anscheinend reicht es nicht für ein koordinatensystem.

grüße
DarkSnake
gepostet vor 19 Jahre, 6 Monate von Gambler
Wie isn das ganze Aufgebaut? Wenn jedes Kästchen ein Bild ist kannst du einfach das alt Tag fürs Image benutzen und da als Text die Koords reinmachen.
gepostet vor 19 Jahre, 6 Monate von Kallisti
Original von Gambler
Wie isn das ganze Aufgebaut? Wenn jedes Kästchen ein Bild ist kannst du einfach das alt Tag fürs Image benutzen und da als Text die Koords reinmachen.


Das alt Attribut (kein tag) gibt einen _Alternativtext an_, der beschreiben soll WAS das Bild DARSTELLT.

Der Alt Text ist _kein_ "popup mit Text", zu dem es der IE fälschlicherweise macht. Dafür gibt es das Attribut title, was der IE allerdings nicht versteht.
gepostet vor 19 Jahre, 6 Monate von DarkSnake
das ganze ist ein ganzes bild, naja, geteilt in 6 teilen, weil es sonst zu groß wäre.

ich kann eben nen link geben, dort seht ihr die karte. und da soll es eben nen koordinatensystem dazu geben, wo ich echt kein blick hab, wie ich das anstellen soll.

http://darksnake.da.funpic.de/orpg/game/karteueberblick.htm

die karte hat sogar nen kleinen bug, aber das sollte nich weiter stören. ohne das koordinatensystem kann ich mir glatt was anderes überlegen :/

mal schaun ob jemand weiterhelfen kann...
gepostet vor 19 Jahre, 6 Monate von Jutaro
Hmm ein Koordinatensystem suchst Du ... Also ich kann mir nur schwer vorstellen, was DU da nun genau suchst ... Dein Browser stellt schon ein Koordinatensystem bereit, was DU nur auslesen musst.

Ich mutmasse einfach mal, dass Du festellen willst, wo genau auf der Karte geklickt wurde. Wenn Das der Fall ist, gibt es eine sehr einfache PHP-Loesung. Du nimmst ein Formular und definierst Deine Karte als grafischen-send-button. Danach: (Zitat aus einem anderen Thread)

Die Werte kannst du dann mittels $_REQUEST['sub_x'] und $_REQUEST['sub_y']
abfragen
(bzw. vor PHP 4.1.0
$HTTP_GET_VARS['sub_x']
$HTTP_GET_VARS['sub_y']

$HTTP_POST_VARS['sub_x']
$HTTP_POST_VARS['sub_y']
)


Wenn Du unbedingt JavaScript willst, geht das natuerlich auch:

http://www.bb.ups-site.de/thread.php?threadid=20151

Wenn es um was anderes geht: Sortry fuer die Stoerung
gepostet vor 19 Jahre, 6 Monate von TheUndeadable
Nutz einfach eine serverseitige Imagemap und rechne in deinem Code die Pixel wieder zu Koordinaten um. Mit der Imagemap bekommst du die Koordinaten des Mauszeigers relativ zum Bild, als der User geklickt hat.
gepostet vor 19 Jahre, 6 Monate von DarkSnake
yeah, dass das mit php geht wusste ich nicht. obwohl, ich dachte bereits daran, während der nacht.

naja, also denn auch gern mit php, doch irgendwie is $_REQUEST ein neues gebiet für mich, kann mal jemand ein beispiel zeigen?
gepostet vor 19 Jahre, 6 Monate von alco
Original von Kallisti
Dafür gibt es das Attribut title, was der IE allerdings nicht versteht.


Also mein IE kommt mit "title" gut zu recht :roll:
gepostet vor 19 Jahre, 6 Monate von TheUndeadable
@alco: Akzeptier einfach, dass Kallisti den IE nicht mag und auch nicht wirklich kennt, ich geh da auch nicht mehr drauf ein. Dafür sind seine Tipps bzgl Standard-Konformität recht hilfreich. ;-)

Eine weitere Möglichkeit:



Wenn der User nun draufklickt, erhältst du die Koordinaten über

$_REQUEST [ 'map_x' ], map_x bzw x und y (je nach Browser). Diese Lösung favorisier ich.
gepostet vor 19 Jahre, 6 Monate von DarkSnake
ah ich verstehe, und das geht so ohne weiteres?

jetzt hab ich nur ein problem, ich habe die map in 6 teile teilen müssen :/
lohnt es sich also es zusammen zu basteln? sodass es 1 is?
gepostet vor 19 Jahre, 6 Monate von DarkSnake
also jut, hab das eben mal getestet und ja so hab ich mir das vorgestellt ^^

ich hab ein problem :/ , 2 um genau zu sein.

1. ich habe die karte als iframe in der seite eingebunden, weil sie sonst zu groß wäre. wenn ich aber einen link betätige im iframe (oder eben auf die map klicke), ganz klar, ändert sich das document im iframe, anstatt die eigentliche seite. kann man das umgehen?

2. ich will den user durch ein rotes X auf der karte erkenntlich machen wo er sich gerade befindet. gibt es eine möglichkeit das auf der karte anzeigen zu lassen?
gepostet vor 19 Jahre, 6 Monate von TheUndeadable
Du kannst nen nutzen.

Zum letzteren:



50px und 100px ist natürlich die Position deines X.
gepostet vor 19 Jahre, 6 Monate von DarkSnake
@TheUndeadable:

also das erste funzt soweit, das zweite naja...

sieh selbst xD

http://darksnake.da.funpic.de/orpg/game/karteueberblick.htm

und so hab ichs eingebaut...

 

die karte muss ich erst noch zu einer machen, aber daran dürfte es nicht liegen, hab auch schon andere varianten probiert, klappt aber trotzdem net :/ zumindest im firefox browser
gepostet vor 19 Jahre, 6 Monate von TheUndeadable


Habe das 'böse' Slash mal markiert.
Das Slash beendet den Html-Tag. Dies muss raus.
gepostet vor 19 Jahre, 6 Monate von DarkSnake
jepp is drausen,

aber irgendwie... naja, schau mal auf den link, der funktioniert auch jetzt. vorher wars die originale php datei ^^ . jetzt is ne vorschau als html

EDIT:

wie ich gemerkt hab scheint dieses beim Firefox nicht zu funktionieren. gibt es da ne andere lösung? :/
gepostet vor 19 Jahre, 6 Monate von Kallisti
Original von DarkSnake



Kleiner Tipp: Nimm ' Anführungsstriche für dein echo, dann brauchst du die doppelten " nicht escapen, zudem ist es schneller, weil der Interpreter nicht auf Variablen parsen muss.

Der Firefox kennt div tags auf jeden Fall, dann ist was anders falsch. ;-) bei deinem Link scheint es aber doch zu funktionieren?
gepostet vor 19 Jahre, 6 Monate von DarkSnake
nein leider nicht,

es ist auf left 500px und top 500px eingestellt, jedoch sieht man das teil nur oben links. und wegen den ' , man kann mit den ' keine variablen ausgeben, brauch ich aber dann noch, falls das mit dem div funktionieren sollte.

also irgendwas ist da faul... ich hab nur noch keinen blick was. :roll:
gepostet vor 19 Jahre, 6 Monate von Crafty-Catcher
Original von DarkSnake
und wegen den ' , man kann mit den ' keine variablen ausgeben,


doch doch
$a = 'schöne';
echo 'Hallo '.$a.' Welt. beispiel';
gepostet vor 19 Jahre, 6 Monate von DarkSnake
ja gut... ok hast recht, aber das is ja jetzt nich das problem, erstma

fakt is, dass es jedenfalls noch nich geht, :/ könnt es ne andere möglichkeit geben? ich zweifel dran, dass es bei firefox funzt :/
gepostet vor 19 Jahre, 6 Monate von Crafty-Catcher
Nunja du hast das angegeben:
=26px; top=26px">

Es muss aber so aussehen:
:50px; left:10px;">

Das funktioniert auch im Firefox.

Rot = Falsch
Grün = Richtig (Auch wenn man es kaum sieht das soll Grün sein )
gepostet vor 19 Jahre, 6 Monate von DarkSnake
ich muss wirklich n noob sein....

es funktioniert! danke sehr

aber noch was zum koordinatensystem...

ich will dass der user auf einen punkt der map klickt sodass er sich dorthin auf dem weg befindet. gut das is kein ding soweit, sind einpaar mysql befehle. tjo, ich will aber dass er dafür ne dauer hat. sozusagen 2 std für 15 kästchen. jo die rechnung hab ich schon dafür gemacht, nur testen konnt ich die nich, weil ich keine ahnung hab, wie ich time() aus der datenbank auslese und sie in nen zeitformat anzeigen lassen kann. sprich 00 tage 02 std 23 min 15 sek . und das ganze soll auch noch runterzählen! xD also nen counter...

wie mach ich das?
gepostet vor 19 Jahre, 6 Monate von Kallisti
www.php.net ist dein Freund...

Dazu:
date()
mktime()
time()

Lesen bildet. ;-)

Die Formel ist einfach Pythagoras... Summe der Kathetenquadrate = Hypothenusenquadrat.
gepostet vor 19 Jahre, 6 Monate von DarkSnake
hmm...

ich hab mir das durchgelesen, doch wirklich schlau draus werd ich wohl nicht. mit der zeit hatt ich schon immer so meine probleme. kann mir das einer genau erklären wie ich die zeit in der datenbank einlese, sie auslese und überprüfe mit der jetztigen zeit?... und die differenz dann schön formatiert ausgebe?

ne kleine erklärung könnte echt helfen
gepostet vor 19 Jahre, 6 Monate von Kallisti
"UPDATE `table` SET zeitfeld = UNIX_TIMESTAMP()" oder
"UPDATE `table` SET zeitfeld =".time()

Je nachdem von welchem Server du die Zeit haben moechtest...

Der Timestamp ist die Unix Systemzeit, also alle Sekunden seit dem 1.1.1970 bis jetzt.

Die Werte kannst du mit normalen arithmetischen Operationen manipulieren. Moechtest du zum Beispiel, dass eine Aktion erst nach 15 Minuten wieder ausgefuert wird, dann speicher direkt den timestamp + 900, da du wahrscheinlich oefter ausliest als speicherst und beim Auslesen nur noch direkt vergleichen musst.

Dann einfach "SELECT zeitfeld FROM `table`"

und das kannst du dann mit date() in eine normale Zeit umrechnen..

// Gibt etwas ähnliches aus wie: Wednesday 15th of January 2003 05:51:38 AM
echo date('l dS of F Y h:i:s A', $dievariablemitdemZeitstempel);


Alles weitere dazu -> www.php.net
gepostet vor 19 Jahre, 6 Monate von Amun Ra
Mal so ne Idee...
Du hast da ja ne Tabelle, ne sehr eigenartige ^^ ( Quelltextansicht ) .

 



for ($x = 0; $x < 100; $x++) {
echo '';
for ($y = 0; $y < 100; $y++) {
echo '';
}
echo '';
}

?>



So fertig ist die 100 x 100 Felder Tabelle...
Das kann man ja jetzt beliebig ausbauen.
Zum Beispiel n onmouseover und n schönes Javascript Popup...
Veilleicht wärs auch von Vorteil die Karte in 4 25 x 25 Quads zu teilen.
Na ja war nur son Vorschlag.
gepostet vor 19 Jahre, 4 Monate von Joschau
Original von rahq
Veilleicht wärs auch von Vorteil die Karte in 4 25 x 25 Quads zu teilen.
Na ja war nur son Vorschlag.


Wären das nicht 16 25x25 Quads?!? :wink:
gepostet vor 19 Jahre, 4 Monate von Amun Ra


Ja, erwischt...
!
Ich hoffe man wird mir diese Unzulänglichkeit verzeihen !

Auf diese Diskussion antworten