php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 10-06-2014, 20:31
Minecrafter001
 Registrierter Benutzer
Links : Onlinestatus : Minecrafter001 ist offline
Registriert seit: Jun 2014
Beiträge: 8
Minecrafter001 befindet sich auf einem aufstrebenden Ast
Standard PHP Kartensystem Frage

Hi,
ich wollte mal fragen, also hier der Code:

Die Klasse:

PHP-Code:
class MyMap {     private $map_width;     private $map_height;     private $field_width_px;     private $field_height_px;       private $window_width;     private $window_height;     private $window_topleft_x;     private $window_topleft_y;       private $fields;       private $x;     private $y;       public function setFields($fields)     {         $this->fields $fields;     }     public function setField($x$y$field)     {         if (($x 0) || ($y 0) || ($x >= $this->map_width) || ($y >= $this->map_height)) return false;         $this->fields[$x][$y] = $field;     }     public function getField($x$y)     {         if (@isset($this->fields[$x][$y])) return $this->fields[$x][$y]; else return false;     }       public function setSize($width$height)     {         $this->map_width intval($width);         $this->map_height intval($height);     }     public function setFieldSize($width_px$height_px)     {         $this->field_width_px intval($width_px);         $this->field_height_px intval($height_px);     }     public function setPosition($x$y)     {         if ($x 0$x 0;         if ($y 0$y 0;         if ($x >= $this->map_width$x $this->map_width 1;         if ($y >= $this->map_height$y $this->map_height 1;         $this->$x;         $this->$y;         $this->setWindowPosition($x - ($this->window_width >> 1), $y - ($this->window_height >> 1));     }     public function setWindowSize($width$height)     {         $this->window_width intval($width);         $this->window_height intval($height);     }     public function setWindowPosition($x$y)     {         if ($x 0$x 0;         if ($y 0$y 0;         if ($x+$this->window_width $this->map_width$x $this->map_width $this->window_width;         if ($y+$this->window_height $this->map_height$y $this->map_height $this->window_height;         $this->window_topleft_x intval($x);         $this->window_topleft_y intval($y);     }     public function getWindowHtml()     {         $code '<div id="mymapwindow">';         $window_bottomright_x = ($this->window_topleft_x + ($this->window_width-1) );         $window_bottomright_y = ($this->window_topleft_y + ($this->window_height-1) );         for($y=$this->window_topleft_y$y <= $window_bottomright_y$y++)         {             for($x=$this->window_topleft_x$x <= $window_bottomright_x$x++)             {                 $field $this->getField($x$y);                 if ($field)                 {                     $color $field['color'];                     $caption $field['caption'];                 }                 else                 {                     $color '#009933';                     $caption '';                 };                 $code .= '<div style="float: left; width: '.($this->field_width_px-1).'px; height: '.($this->field_height_px-1).'px; margin-right: 1px; margin-bottom: 1px; background-color: '.$color.'; text-align: center;" title=" '.$caption.' ">('.$x.'|'.$y.')</div>';             };             $code .= '<div style="clear:both;"></div>';         };         $code .= '</div>';         return $code;     }     public function showWindow()     {         echo $this->getWindowHtml();     }     public function getHtml()     {         $code '<div id="mymap">';         for($y=0$y $this->map_height$y++)         {             for($x=0$x $this->map_width$x++)             {                 $field $this->getField($x$y);                 if ($field)                 {                     $color $field['color'];                     $caption $field['caption'];                 }                 else                 {                     $color '#009933';                     $caption '';                 };                 $code .= '<div style="float: left; width: '.($this->field_width_px-1).'px; height: '.($this->field_height_px-1).'px; margin-right: 1px; margin-bottom: 1px; background-color: '.$color.'; text-align: center;" title=" '.$caption.' ">('.$x.'|'.$y.')</div>';             };             $code .= '<div style="clear:both;"></div>';         };         $code .= '</div>';         return $code;     }     public function show()     {         echo $this->getHtml();     } }; 
Hier das Skript zum aufrufen der Klasse:

PHP-Code:
$map = new MyMap(); $map->setSize(2525); $map->setFieldSize(5030); $map->setField(1812, array("color"=>'#006699'"caption"=>'Wasser') ); $map->setField(1010, array("color"=>'#CCCCCC'"caption"=>'Berge') ); $map->setWindowSize(99); $map->setPosition(167); $map->showWindow(); 
Nun meine Frage, wie kann ich diese Karte draggable machen, also so einstellen das man die Karte mit der Maus umherziehen kann?

Mfg Minecrafter001
Mit Zitat antworten
  #2 (permalink)  
Alt 10-06-2014, 20:34
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Du erwartest ernsthaft auf den hingerotzten Code eine Antwort? Mal davon abgesehen, dass PHP am Server läuft. Wenn du etwas im Browser bewegen möchtest, brauchst du JavaScript.
Mit Zitat antworten
  #3 (permalink)  
Alt 10-06-2014, 20:37
Minecrafter001
 Registrierter Benutzer
Links : Onlinestatus : Minecrafter001 ist offline
Registriert seit: Jun 2014
Beiträge: 8
Minecrafter001 befindet sich auf einem aufstrebenden Ast
Standard

Ja meinte ich ja mit JavaScript. Mit PHP ists ja logisch das das nicht geht ...
Mit Zitat antworten
  #4 (permalink)  
Alt 10-06-2014, 20:39
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Warum postest du dann PHP-Code?
Mit Zitat antworten
  #5 (permalink)  
Alt 10-06-2014, 20:40
Minecrafter001
 Registrierter Benutzer
Links : Onlinestatus : Minecrafter001 ist offline
Registriert seit: Jun 2014
Beiträge: 8
Minecrafter001 befindet sich auf einem aufstrebenden Ast
Standard

Weil ich mich frage, wie ich mittels JavaScript, diesen Auschnitt der Karte bewegen kann.
Mit Zitat antworten
  #6 (permalink)  
Alt 10-06-2014, 20:42
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

JavaScript interessiert sich nicht für PHP-Code.
Mit Zitat antworten
  #7 (permalink)  
Alt 10-06-2014, 20:45
Minecrafter001
 Registrierter Benutzer
Links : Onlinestatus : Minecrafter001 ist offline
Registriert seit: Jun 2014
Beiträge: 8
Minecrafter001 befindet sich auf einem aufstrebenden Ast
Standard

Ja kenne mich mit JavaScript nicht so gut aus, deswegen die Frage.
Mit Zitat antworten
  #8 (permalink)  
Alt 12-06-2014, 02:17
Minecrafter001
 Registrierter Benutzer
Links : Onlinestatus : Minecrafter001 ist offline
Registriert seit: Jun 2014
Beiträge: 8
Minecrafter001 befindet sich auf einem aufstrebenden Ast
Standard

Keiner mehr da der mir helfen kann?
Mit Zitat antworten
  #9 (permalink)  
Alt 12-06-2014, 10:56
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Du hast irgendeine PHP-Klasse die scheinbar etwas HTML erzeugt welches dann wohl dafür sorgt, dass da eine Karte angezeigt wird.
Wir wissen nicht was das für eine Klasse ist und bei der Code-Formatierung wird auch kaum jemand Lust haben, dass Teil auch nur ansatzweise zu überfliegen.

Wie schon gesagt wurde passiert das was du willst clientseitig und dazu ist Javascript notwendig - genauer gesagt die Map-Api, die verwendet wird. Allerdings gibt es bei allem was du bisher gepostet hast keinen Hinweis darauf, welche Map-Api hier verwendet wird.
__________________
Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
Schön - etwas Geschichte kann ja nicht schaden.
Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!
Mit Zitat antworten
  #10 (permalink)  
Alt 12-06-2014, 17:02
Minecrafter001
 Registrierter Benutzer
Links : Onlinestatus : Minecrafter001 ist offline
Registriert seit: Jun 2014
Beiträge: 8
Minecrafter001 befindet sich auf einem aufstrebenden Ast
Standard

Das ist der Link von dem ich den Code hab: Gameseal - Play your Browsergame - Der Weg zum eigenen Browsergame - Die Karte

Dort auch mit sortiertem Code ^^
Mit Zitat antworten
  #11 (permalink)  
Alt 12-06-2014, 17:25
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Ok - kurz überflogen das Teil. Ich war da etwas auf dem Holzweg und dachte dahinter würde sich irgendwas auf Basis von Google-Maps oder einer ähnlichen Map eines anderen Anbieters verbergen. Es scheint sich dabei jedoch um ein rein statischen Output zu handeln ohne irgendwelche Javascriptfunktionalitäten.

Für das was du willst, müsstest du dich schon eingehender mit Javascript sowie AJAX-Technologien befassen - das kriegst du da jetzt nicht mal eben mit ein paar zusätzlichen Zeilen mit rein.
__________________
Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
Schön - etwas Geschichte kann ja nicht schaden.
Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!
Mit Zitat antworten
  #12 (permalink)  
Alt 13-06-2014, 23:55
Minecrafter001
 Registrierter Benutzer
Links : Onlinestatus : Minecrafter001 ist offline
Registriert seit: Jun 2014
Beiträge: 8
Minecrafter001 befindet sich auf einem aufstrebenden Ast
Standard

So hab das Skript mal bearbeitet, hier der momentane Stand.

http://www.age-of-villages.de/test/index.php

Muss jetzt nurnoch die anderen tiles laden lassen, also wenn man die Karte bewegt, das dann die tiles aussenrum alle nachgeladen werden, wobei das bei mir jetzt hackt, weil ich nicht genau weiss wie ich die tiles nachladen lassen soll.
Mit Zitat antworten
  #13 (permalink)  
Alt 16-06-2014, 14:33
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Stichwort AJAX. jQuery bietet entsprechende Funktionen, die du in Verbindung mit den Draggable-Events nutzen kannst. Serverseitig brauchst du natürlich ein Script, dass dir daraufhin auch entsprechend die weiteren Tiles liefert.
__________________
Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
Schön - etwas Geschichte kann ja nicht schaden.
Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!
Mit Zitat antworten
  #14 (permalink)  
Alt 23-06-2014, 20:23
Minecrafter001
 Registrierter Benutzer
Links : Onlinestatus : Minecrafter001 ist offline
Registriert seit: Jun 2014
Beiträge: 8
Minecrafter001 befindet sich auf einem aufstrebenden Ast
Standard

So, erstmal sorry das ich so spät antworte, hatte viel zu tun in letzter Zeit ^^

Jo, stehe gerade auf dem Schlauch, kannst es mir vielleicht ein bisschen genauer erläutern?
Mit Zitat antworten
  #15 (permalink)  
Alt 24-06-2014, 11:18
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Code:
 
$( "#deineMap" ).draggable({
      stop: function() {

      //Hier dein Code der ermittelt an welche Position die Karte verschoben wurde.

     $.getJSON( "/deinPHPscript.php", {
         posX: "200",
         poxY: "180"
     })
    .done(function( data ) {
      //dein Code der die zurückgelieferten Tiles in das vorhandene Dom einhängt
    });
});
Nur ein grober Ansatz wie ich ihn mir vorstellen könnte ohne zu wissen ob das ein tatsächlich gangbarer Weg wär oder ob das in die Hose gehen würd. Im Detail musst du es jedenfalls selber ausarbeiten, wofür du dich eben mit jQuery und AJAX weiter auseinandersetzen musst.
__________________
Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
Schön - etwas Geschichte kann ja nicht schaden.
Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

Geändert von Quetschi (24-06-2014 um 11:23 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PHP5] + Regex frage und php frage.. Witzigerkiller PHP Developer Forum 2 09-08-2006 17:47
session frage + php mail frage Sana PHP Developer Forum 5 23-11-2005 12:14
Frage zu PHP Sonic84 Projekthilfe 9 30-08-2005 22:37
Php Frage Xara PHP Developer Forum 1 10-06-2004 00:53
Frage zu PHP dneureuter PHP Developer Forum 3 23-06-2002 14:03

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:37 Uhr.