Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    47

    Problemi con collisioni

    Ciao
    sto provando a realizzare un gioco in stile pong/arkanoid con la particolarità che la barretta/racchetta può muoversi sia sull'asse x che y. La barretta è comandata dal mouse.

    Ho però un problema che non riesco a risolvere:
    quando sposto il mouse velocemente non viene riconosciuta la collisione con la pallina.
    Ho provato sia con l'hit test che con le cordinate usando questo codice:

    if (palla._y>=barra._y-10 && palla._y<=barra._y+10 && palla._x<=barra._x+40 && palla._x>=barra._x-40) {
    palla._y = barra._y-10;
    speedy = -speedy;
    }
    inserito in un evento onenterframe, credo il problema sia dato dal basso numeri di "campionamenti" della posizione della pallina, infatti se alzo il frame rate a 100 il problema si riscontra meno spesso.

    Ho provato anche a richiamere la funzione con un setinterval basso (penso sia sbagliato aumentare eccessivamente il framerate)

    function prova () {
    if (palla._y>=barra._y-10 && palla._y<=barra._y+10 && palla._x<=barra._x+40 && palla._x>=barra._x-40) {
    palla._y = barra._y-10;
    speedy = -speedy;
    }
    };

    setInterval(prova,50);
    va meglio ma non è soddisfacente per un gioco.

    Qualche idea?

    Grazie

    Giuseppe

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    fai la verifica con un mouse listener

    var m_obj = new Object();
    m_obj.onMouseMove = function(){
    if (palla._y>=barra._y-10 && palla._y<=barra._y+10 && palla._x<=barra._x+40 && palla._x>=barra._x-40) {
    palla._y = barra._y-10;
    speedy = -speedy;
    }
    }
    Mouse.addListener(m_obj);

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    47
    Purtroppo la situazione non migliora,
    comunque grazie.

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da gc60
    Purtroppo la situazione non migliora,
    comunque grazie.
    forse ci vuole una combinazione delle due tecniche...

    prima di proseguire però ti devo chiedere... a quanto hai il framerate del filmato?

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    47
    attualmente a 25.
    fino a quanto posso spingermi?

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da gc60
    attualmente a 25.
    fino a quanto posso spingermi?
    secondo gli elementi di cui hai parlato, potresti spingerti tranquillamente fino al massimo ovviamente un po' di test poi son d'obbligo, ma il framerate a 120 puoi tenerlo imho...

    ti dico solo che io per i miei progetti web utilizzo un framerate "standard" di 60fps, una pallina e una racchetta che si muovono saranno così onerosi per la CPU?! oltretutto puoi provare a far scendere il richiamo del setInterval fino ad un minimo di 20 millisecondi

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.