Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Problema disegno

  1. #1

    Problema disegno

    Salve a tutti, ho un problema con il disegno in php. Io ho realizzato un programma che aggiorna un codice per creare un disegno dinamico ed intirattivo. Il problema è che ad ogni refresh c'è un lampeggio bianco che dura poco ma è fastidioso.
    Credo che sia colpa del tempo di costruzione dell'immagine.
    AnDwHt

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    bisogna vedere com'è fatto il "refresh"... ci sono dei reload? usi ajax? o cos'altro?

  3. #3
    Originariamente inviato da eiyen
    bisogna vedere com'è fatto il "refresh"... ci sono dei reload? usi ajax? o cos'altro?
    Utilizzo una funzione js che richiama un codice php che scrive <img src = "game.php"></img> utilizzando in game.php delle variabili per dirgli la posizione degli oggetti e altre cose. La funzione js fa un refresh di un div in cui viene scritto il risultato del codice php e questo refresh è sempre attuato da js con un tempo di 100 ms
    Poi utilizzo degli eventi che se premuto un tasto attiva la funzione di refresh inviandogli il tasto premuto, è un po complicato da scrivere
    Ecco il codice dell'index:

    Codice PHP:
    <?php $connessione mysql_connect("localhost""AndreWhite""shadow69"); mysql_select_db("test",$connessione); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it"> <head> <Style type="text/css"> #schermo {     position: absolute;     left: 100px;     top: 50px;     width: 1000px;     height: 600px;     border: 1px solid; } </Style> <script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js'></script> <script type="text/javascript"> document.onkeydown = function(evt) {     evt = evt || window.event;     var code = evt.keyCode;     schermo("key=" + code); }; function schermo(dati) {     $.ajax({         method: 'get',                                             // tipo di richiesta HTTP         url : 'insert.php',                                     // percorso allo script lato server         data: dati,                                            // parametro opzionale, per impostare la query string da inviare         dataType : 'html',                                        // parametro opzionale, formato dei dati (xml, json, script, o html)         success: function (data) {                              // istruzioni richiamate al termine della richiesta             document.getElementById("schermo").innerHTML=data; // inserisco i dati restituiti nel DIV         }     }); } $(function() {     setInterval("schermo()", 100); }); </script> </head> <body> <div id = "schermo"></div> </body> </html>  <?php mysql_close($connessione); ?>
    Poi ho scritto la funzione php che calcola e imposta l'immagine:

    Codice PHP:
    <?php $connessione mysql_connect("localhost""AndreWhite""shadow69"); mysql_select_db("test",$connessione); if(isset($_GET['key']))  {     $key $_GET['key'];     if(isset($_COOKIE['time'])) $time $_COOKIE['time'];     else $time 0; } else {     $key "";     if(isset($_COOKIE['time'])) $time $_COOKIE['time'] + 1;     else $time 0; } if(isset($_COOKIE['x'])) $x $_COOKIE['x']; else $x 0; if(isset($_COOKIE['y'])) $y $_COOKIE['y']; else $y 0; if(($key=="83")&&($y<600)) $y $y 5; elseif(($key=="87")&&($y>=0)) $y $y 5; elseif(($key=="68")&&($x<1000)) $x $x 5; elseif(($key=="65")&&($x>=0)) $x $x 5setcookie("time"$timetime() + 7200"/""localhost"0); setcookie("x"$xtime() + 7200"/""localhost"0); setcookie("y"$ytime() + 7200"/""localhost"0); echo "<img src = \"game.php?key=$key&time=$time&x=$x&y=$y\"></img>"mysql_close($connessione); ?>
    E infine l'immagine in php:

    Codice PHP:
    <?php $key $_GET['key']; $time $_GET['time']; $x $_GET['x']; $y $_GET['y']; $resto $time%2header("Content-Type: image/jpeg"); $ima imagecreate(1000600); $nero imagecolorallocate ($ima000); $blu imagecolorallocate ($ima00255); $verde imagecolorallocate ($ima02550); $rosso imagecolorallocate ($ima25500); $bianco imagecolorallocate ($ima255255255); imagefill($ima00$bianco); if($resto==0$color $rosso; else $color $bluimagefilledarc ($ima$x$y40400360$colorIMG_ARC_PIE); imagejpeg($ima,NULL,100); imagedestroy($ima); ?>
    Il risultato è semplice, se premo i tasti wasd lui disegna un cerchio che si sposta, poi c'è una funzione di refresh che è una prova per vedere il tempo di frame che posso mettere e in quel tempo il cerchio lampeggia da rosso a blu. Il problema sta solo nel tempo di costruzione del disegno
    AnDwHt

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.