Sto lavorando a un gioco in cui più giocatori dovrebbero essere in grado di giocare alla volta. È un gioco 2D
e tutti i personaggi dovrebbero essere in grado di vedersi muoversi sullo schermo. Come il gioco ora tutti i dispositivi si limitano a postare e si prelevano a vicenda coordinates
su un server. Questo viene fatto in esecuzione per le discussioni:Programmazione gioco multigiocatore
public void StartCoordinatorFetcherThread(final Sprite Object)
{
Thread CoordinateStarter = new Thread()
{
public void run()
{
while(true)
{
Object.testing = Object.InternetObject.GetMessages();
try {
Thread.sleep(20);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
CoordinateStarter.start();
}
public void StartCoordinatorPosterThread(final Sprite Object)
{
Thread CoordinatePoster = new Thread()
{
public void run()
{
while(true)
{
Object.InternetObject.PostCoordinates(Object.x,Object.y);
try {
Thread.sleep(20);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
CoordinatePoster.start();
}
In ogni caso, vorrei i personaggi di muoversi più agevolmente in quanto può essere un po '"laggy"
farlo come this.Does Qualcuno ha un'idea su come posso raggiungere questo obiettivo ?
Forse dovrei avere un tipo di stack di coordinate che riceve sempre le coordinate push su di esso e poi apre i valori durante il gioco?
Qualsiasi aiuto sarà molto apprezzato.
Saluti!
Grazie, si presenta come l'interpolazione lineare può dare una mano. Trovato un esempio su questo http://www.racer.nl/tech/multiplayer.html – Araw
Fa meraviglie, rimarrai stupito :) –
Come suona questa idea: Sto usando l'interpolazione lineare e determino quanti fotogrammi che dovrebbe spostarsi ogni volta che lo schermo si aggiorna. Quindi, se (mi concentrerò solo sulla coordinata X per questo esempio) la coordinata precedente era 40 (la posizione che il personaggio ha ora sullo schermo), la corrente è 60 (dove il personaggio dovrebbe spostarsi) e intervallo frameupdate è 5 coordinate per ogni aggiornamento. Ciò significa che riceverò 4 (4 * 5) aggiornamenti prima che il personaggio abbia raggiunto i 60. Quindi aggiungerò queste mosse a una lista eventi per il personaggio dato e la parte "laggy" sarà praticamente scomparsa :) – Araw