Utilizzo della memoria su Creazione di una mappa simile a Travian e 441 pulsanti su una pagina

1

Sto creando una mappa come Travian su form Xamarin

La mia mappa è qualcosa come 5000 * 5000

Il modo in cui voglio farlo è caricare parte della mappa (21 * 21) della grande mappa in cui il villaggio corrente è il centro della mappa 21 * 21 ma mostrare una mappa 7 * 7 all'utente (di nuovo attuale centro del villaggio di esso)

Quindi, quando l'utente scorre la mappa, può vedere le altre parti della mappa caricata (21 * 21) e quando l'utente ha raggiunto la fine dello scorrimento, la mappa viene ricaricata ...

Ma la mia domanda è quando voglio farlo ho bisogno di avere qualcosa come 440 pulsanti (ogni pulsante per ogni tessera della mappa) ... è che usa troppa memoria?

Modifica: l'esempio della mappa

    
posta M4HdYaR 22.08.2016 - 01:06
fonte

1 risposta

1

Questa è una mappa isometrica. Ci sono molti modi per gestirlo. Ma se hai voglia di usare la matematica per risolvere il problema, ecco alcune formule di proiezione.

Dato il clic del mouse sullo schermo puoi trovare i cavi delle mappe con:

map.x = (screen.x / TILE_WIDTH_HALF + screen.y / TILE_HEIGHT_HALF) /2;
map.y = (screen.y / TILE_HEIGHT_HALF -(screen.x / TILE_WIDTH_HALF)) /2;

Dati i cavi della mappa che puoi proiettare sullo schermo con:

screen.x = (map.x - map.y) * TILE_WIDTH_HALF;
screen.y = (map.x + map.y) * TILE_HEIGHT_HALF;

Il modo in cui questa matematica è derivata può essere vista qui .

Poiché è possibile scorrere la mappa, è necessario aggiungere lo scroll xey a questi calcoli.

Qui è una buona introduzione alla grafica isometrica.

    
risposta data 22.08.2016 - 09:07
fonte

Leggi altre domande sui tag