Guten Abend.
Da mir das grundsätzliche Verständniss zum Aufbau einer Karte fehlt mache ich mir grad theoretische Gedanken wie ich das ganze am besten angehen kann.
Folgendes:
Ich habe mir mir eine relativ grosse Map mit dem Programm L3DT erstellt und möchte nur einen Teil der Karte anzeigen lassen.
Jeder User bekommt bereits automatisch per Random eine x/y Position zugewiessen welche in der DB entsprechend eingetragen wird.
Dabei ist das "Spielfeld" 200*200 gross.
Jetzt zu meinem Überlegungen wie ich den Ausschnitt realisieren könnte.
Ich lese aus der DB die entsprechende POS des Users aus zb. 50/50. Die Grund oder Hintergrundkarte/png hat eine grösse von 2000x2000 Pixel. Das ergibt eine einzelne Feldgrösse von 10*10 Pixel. Also wäre der Mittelpunkt des Auschnittes bei 500x500 Pixel zu finden. Das DIV in dem der Auschnitt angezeigt wird soll (alles theoretisch) 400x400 Pixel gross sein. Davon liegt der Mittelpunkt bei 200x200.
Die Diffrenz davon ist also den User Mittelpunk dazu zu rechnen bzw abzuziehen um den relevanten Ausschnitt zu bekommen.
POS 50/50 x 10/10 = 500x 500y
Oben links = 500/500 -200/-200 = 300/300
Unten rechts= 500/500 +200/+200 = 700/700
Der Auschnitt wäre also bei 300/300 bis 700/700 Pixel
Soweit so gut leider weiss ich aber nicht wie ich diesen Bereich der Karte.png nun darstellen kann also welcher Befehl schneidet mir nun den Teil aus?
Ich dachte an Imagecopy allerdings komm ich mit der Syntax nicht ganz klar wie könnte der Befehl mit Syntax auf das BSP heissen?
Tut mir leid wenn ich mich so umständlich ausgedrückt habe gans so einfach ist das Thema für mich nicht.
Vielen dank fürs helfen.
________________
Habe nun erstmal folgenden Code zum anzeigen irgendeines Ausschnitts:
GD ist bereits installiert.
Aber das Bild neu.jpg wird garnicht erst erstellt, jedenfalls ist es nicht auf dem Server zu finden. Eine Fehlermeldung kommt auch nicht.
Ich habe vor das Bild nach dem Skript über CSS einzubinden oder mit dem img-Tag anzeigen zu lassen ich hoffe dafür benötigt es kein Header denn den nach zig Html aufrufen und Includes würde ich es nicht gebacken bekommen.
Aber wieso wird erst gar kein Bild neu erstellt und auf dem Server abgespeichert?
Da mir das grundsätzliche Verständniss zum Aufbau einer Karte fehlt mache ich mir grad theoretische Gedanken wie ich das ganze am besten angehen kann.
Folgendes:
Ich habe mir mir eine relativ grosse Map mit dem Programm L3DT erstellt und möchte nur einen Teil der Karte anzeigen lassen.
Jeder User bekommt bereits automatisch per Random eine x/y Position zugewiessen welche in der DB entsprechend eingetragen wird.
Dabei ist das "Spielfeld" 200*200 gross.
Jetzt zu meinem Überlegungen wie ich den Ausschnitt realisieren könnte.
Ich lese aus der DB die entsprechende POS des Users aus zb. 50/50. Die Grund oder Hintergrundkarte/png hat eine grösse von 2000x2000 Pixel. Das ergibt eine einzelne Feldgrösse von 10*10 Pixel. Also wäre der Mittelpunkt des Auschnittes bei 500x500 Pixel zu finden. Das DIV in dem der Auschnitt angezeigt wird soll (alles theoretisch) 400x400 Pixel gross sein. Davon liegt der Mittelpunkt bei 200x200.
Die Diffrenz davon ist also den User Mittelpunk dazu zu rechnen bzw abzuziehen um den relevanten Ausschnitt zu bekommen.
POS 50/50 x 10/10 = 500x 500y
Oben links = 500/500 -200/-200 = 300/300
Unten rechts= 500/500 +200/+200 = 700/700
Der Auschnitt wäre also bei 300/300 bis 700/700 Pixel
Soweit so gut leider weiss ich aber nicht wie ich diesen Bereich der Karte.png nun darstellen kann also welcher Befehl schneidet mir nun den Teil aus?
Ich dachte an Imagecopy allerdings komm ich mit der Syntax nicht ganz klar wie könnte der Befehl mit Syntax auf das BSP heissen?
Tut mir leid wenn ich mich so umständlich ausgedrückt habe gans so einfach ist das Thema für mich nicht.
Vielen dank fürs helfen.
________________
Habe nun erstmal folgenden Code zum anzeigen irgendeines Ausschnitts:
PHP:
<div id=content>
<?php
error_reporting(E_ALL);
$size = array(543,432); // Breite und Höhe des Auschnitts
$point = array(100,100); // Koordinaten, ab wo kopiert werden soll (erst X, dann Y).
$image = imagecreatefromjpeg("img/MAP1.jpg"); // Original einlesen
$new = imagecreatetruecolor($size[0],$size[1]); // Neues Bild leer erstellen
imagecopyresized($new, $image, 0,0, $point[0],$point[1],$size[0],$size[1], $size[0],$size[1]); // Ausschnitt rüberkopieren
imagejpeg($new,"img/neu.jpg",100); // Neues Bild speichern
echo "<img src=("img/neu.jpg")>";
?>
</div>
Aber das Bild neu.jpg wird garnicht erst erstellt, jedenfalls ist es nicht auf dem Server zu finden. Eine Fehlermeldung kommt auch nicht.
Ich habe vor das Bild nach dem Skript über CSS einzubinden oder mit dem img-Tag anzeigen zu lassen ich hoffe dafür benötigt es kein Header denn den nach zig Html aufrufen und Includes würde ich es nicht gebacken bekommen.
Aber wieso wird erst gar kein Bild neu erstellt und auf dem Server abgespeichert?
Zuletzt bearbeitet: