Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    68

    Verificare sovrapposizione elementi...

    Salve ragazzi
    Sto realizzando un gioco in cui c'è un omino, quando clicco su un punto dello schermo, l'omino si dirige in quel punto. Siccome in questo gioco si possono anche costruire edifici, è brutto vedere passare l'omino sull'edificio o dietro, quindi vorrei fare arrestare la sua camminata quando incontra un edificio e per questo mi servirebbe vedere se si trovano le due img sovrapposte. Ecco il codice con cui cammina : (USO JQUERY)
    codice:
    function animate(id){
    
     var t = 0;
     var e = "";
     var fin = "";
     
     y = parseInt(pers.css("top"));
     x = parseInt(pers.css("left"));
     
     var data = id.split(".");
     xd = parseInt(data[0]);
     yd = parseInt(data[1]);
    
      var doc = prendiElementoDaId(xd+"."+yd);
      
      coo_y = Math.round((parseInt(doc.style.top)-6)/2)*2;
      coo_x = Math.round((parseInt(doc.style.left)+25)/2)*2; 
      animazione = setInterval("animate_sub(\""+id+"\",\""+coo_x+"\",\""+coo_y+"\")",25);
      
      }
    
    }
    
    function animate_sub(id,coo_x,coo_y){
    
    var t = 0;
    var e = "";
    
      if(x == coo_x && y == coo_y){ clearInterval(animazione);pers.attr("src",dir+"i.gif"); animate(id); }else{
     
      if(x < coo_x){
      
          x += 2;
    	  fin = "i_e.gif";
    	  t=1;
    
      }
      
      if(y < coo_y){
      
          y += 2;
    	  if(t == 1){ e = "e"; }
    	  fin = "i_s"+e+".gif";
    	  t=2;
    	  
      }
      
      if(x > coo_x){
      
          x -= 2;
          if(t == 2){ e = "s"; }
    	  fin = "i_"+e+"o.gif";
    	  t=3;
    
      }
      
      if(y > coo_y){
      
          y -= 2;
    	  if(t == 1){ e = "e"; }
    	  if(t == 3){ e = "o"; }
    	  fin = "i_n"+e+".gif";
    
      }
      
      if( pers.attr("src") != (dir+fin) ) { pers.attr("src",dir+fin); }
      
      pers.css("top",y);
      pers.css("left",x);
      if(v == 2){v = 0; Ajax("ins.php?x="+x+"&y="+y+"&img="+fin,"null"); }
      v++;
      }
    }
    Pers è l'omino, e le funzioni Ajax le ho fatte io...
    Qualche suggerimento?

    Grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    68
    nessuno sa rispondermi?

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    In 43 minuti della domenica sera? armati di pazienza...
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  4. #4
    quello che vuoi fare si chiama collision detection e dovrebbe essere già implementata da qualche game library come:

    jsgamelib http://www.fragmentedcode.com/jsgamelib/
    gamequery http://gamequery.onaluf.org/

    guarda ad esempio questo esempio:
    http://projects.zoulcreations.com/jquery/JSGameLib/

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    68
    grazie, c'è qualche implementazione anche in PHP, perchè il controllo lo vorrei fare in lato server, in questo modo non possono modificare i codici javascript...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    68
    xD scrivevo su google overlap, sovrapposizione... ma non trovavo nulla.. Non avevo provato collision, grazie mille!

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.