Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

31

10.05.2017, 18:29

Soll ich daten über die url weiter geben?

Ja wenn es über GET geht. Schau dir mal das HTTP Protokoll an.

32

10.05.2017, 19:23

@Nimelrian ach die sind ja bescheuert, wieso zeigen die IE10 nicht in der Liste direkt an? Wieso muss man erst "Usage Relative" klicken..

@@zimmer

requestAnimationFrame ist eine JavaScript funktion die so schnell es geht, aufgerufen wird im Browser. Hast du zb einen Schlechten PC/Alten smartphone und/oder viele zeichen operationen innerhalb des callbacks, dann wird requestAnimationFrame nicht mehr so oft aufgerufen.

Es wird verwendet um Animationen im Browser darzustellen.

Mit "Screenwechsel" hat es nichts zu tun. Das was du brauchst ist ajax. Ajax macht im Grunde das gleiche als ob du auf ein Link drauf klickst, nur passiert das im Hintergrund so dass es nicht zu einem "Screenwechsel" kommt.

Vielleicht wirds verständlich wenn du mein Code anschaust.

Ich habe hier https://github.com/BlackScorp/webrpg/blo…/routes.php#L10 folgendes definiert: beim aufruf von http:/localhost/ajax/character/move/(north|south|east|west) soll die funktion ajaxMoveCharacter() aufgerufen werden.

In der Funktion hier https://github.com/BlackScorp/webrpg/blo…ctions.php#L128 ruf ich dann meine Logik auf. Interessant ist der Part

https://github.com/BlackScorp/webrpg/blo…s.php#L211-L215

dabei erstelle ich ein Array mit Daten die ich im Browser aktualisieren will, außerdem verändere ich den Content-Type zu json

Jetzt kommt der Client. Ich nutze jQuery framework.

https://github.com/BlackScorp/webrpg/blo…ap.js#L198-L216

da steht sowas wie "Beim klicken auf die divs mit Pfeilen, hole dir dir Richtung aus dem div und mach eine Ajax Anfrage auf "/ajax/character/move/" + direction. Wenn alles ok ist triggere das event 'newRow' auf dem div mit der karte".

Im Grunde musst du das auch machen. Beim klicken, führst du ein Ajax Request, basierend auf dem Request, speicherst du daten in DB und schickst als antwort zurück, was sich alles verändern müsste. Anschließend veränderst du das alles im Browser.

@zimmer

Alter Hase

  • »@zimmer« ist der Autor dieses Themas

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

33

10.05.2017, 21:28

Ich habe erst versucht ein reqest an ein anders php script zu schicken, ich habe es mit queri gemacht

Quellcode

1
2
3
4
5
$.get('/PHPs/php_script.php', function(data){
    console.log(data); // Ausgabe der empfangenen Daten
 var praseddata=JSON.parse(data);
 console.log(praseddata);
});


die ausgabe in die konsole klappt aber beim prasen gibt es fehler.http://dragonway.square7.ch/PHPs/main-menue.php

habe ich die richtige php file abgeschrieben? liegt der fehler wo anders?

Quellcode

1
2
3
4
5
6
<!doctype html> <head> <meta charset="utf-8"> <title>Dragon Way~</title> </head>
<body >


<?php echo json_encode( array( "name"=>"UserXY","kreaturArt"=>"Ork" ) ); ?>
</body> </html>

Zitat

Ja wenn es über GET geht. Schau dir mal das HTTP Protokoll an.

ich hoffe das html protokol ist das die ausgabe console unter network bei den dev tools in chrome?
p.s. Ich weiß nicht wo ich per url daten übergeben soll, eigentlich soll red player nichts durch die url ändern können.


@BlackScorp ich schaue mir dein morgen an, irgendwie zeigt mein pc 19:30 uhr an und hier im forum ist es nach 21Uhr, ich muß mal die Zeit checken
edit: bestimmt werde ich in deinem code fündig :)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »@zimmer« (10.05.2017, 21:39)


Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

34

10.05.2017, 21:41

requestAnimationFrame ist eine JavaScript funktion die so schnell es geht, aufgerufen wird im Browser

Falsch. requestAnimationFrame bittet den Browser lediglich vor dem nächsten Repaint den übergebenen Callback aufzurufen. So schnell es geht bekommst du mit setTimeout und einer delay von 0 hin.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Nimelrian« (10.05.2017, 22:23)


DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

35

10.05.2017, 22:11

Bei GET gibt man Parameter üblicherweise in der URL mit an: php_script.php?param1=wert&param2=wert&... Ebenso bei DELETE. Bei POST und PUT meistens im Body. Google mal nach "HTTP methods". Die Funktionen in jQuery heißen übrigens auch so $.delete, $.post, usw.

Die PHP Datei darf nichts außer PHP Code enthalten. Aktuell versucht dein JS Code <html>...{"json":"objekt",...} zu parsen. Du willst aber nur das JSON Objekt (von { bis }) an den Browser senden:

Quellcode

1
2
3
4
5
6
7
// hiervor kommt nichts!

<?php // zwingend erforderlich
echo json_encode( array( "name"=>"UserXY","kreaturArt"=>"Ork" ) );
?> // das End Tag ist optional, wenn die ganze Datei nur PHP enthält

// hier darf nichts mehr stehen!


console.log schreib bei Chrome in die Konsole (F12). Du kannst den Traffic in einem separaten Tab ansehen (Network).

36

11.05.2017, 07:18

requestAnimationFrame ist eine JavaScript funktion die so schnell es geht, aufgerufen wird im Browser

Falsch. requestAnimationFrame bittet den Browser lediglich vor dem nächsten Repaint den übergebenen Callback aufzurufen. So schnell es geht bekommst du mit setTimeout und einer delay von 0 hin.


Und jetzt erzähl dem TE was ein Callback ist. Ich wollte es nur so einfach wie möglich beschreiben und nicht zu weit ausholen. Mit "so schnell es geht" meinte ich, dass es Hardware abhängig ist.

@zimmer

Alter Hase

  • »@zimmer« ist der Autor dieses Themas

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

37

11.05.2017, 09:11

kann ich mit jQuery daten an die nächste Seite weiterleiten, ohne dass, es in der url steht?

z.b. brauche ich für jede seite den usernamen der aktuell angemeldet ist damit ich die dazugehörenden Daten aus der Tabelle laden kann.

....

Zitat

callback: ein Funktionsobjekt, das vor dem nächsten Rendern ausgeführt wird
(callback muss ein Funktionsobjekt sein, also ohne Anführungszeichen und Klammern. Es können keine Parameter an die Funktion übergeben werden. )
:thumbsup:


Ist ein funktions object, allse mit einer Id <div> <p=>?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »@zimmer« (11.05.2017, 09:27)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

38

11.05.2017, 09:19

Du willst nicht einfach den Usernamen an das Backend übergeben. Da ändere ich sonst einfach den Namen und bekomme die Daten von jemand anderem zurück. Das klingt sehr sehr unsicher. Was du eventuell willst sind Sessions - PHP kann das ganz prima.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

@zimmer

Alter Hase

  • »@zimmer« ist der Autor dieses Themas

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

39

11.05.2017, 09:30

und das habe ich natürlich schon getestet :D

Quellcode

1
2
3
4
5
6
session_start();

$_SESSION['playername'] = $_POST[Username];

echo $_SESSION['playername'];
$playername =$_SESSION['playername'];

das $_POST[Username]; bekomme ich in der index.html

Quellcode

1
2
3
4
5
6
7
<form action="/PHPs/main-menue.php" method="post"><!-- /menue-->
 <p align="center"><font color="#FFFFFF">
 Username<br><input type="text" name="Username" /><br>
  Password<br><input type="text" name="Password" /><br>
 <b> Start Game</b> </font><br><input type="submit" /></p>
 
</form>

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

40

11.05.2017, 09:34

Die Session ist auch in jeder AJAX Anfrage verfügbar. Wenn du also ein $.get() machst hast du im PHP Script auch die Session wieder.

Werbeanzeige