Non sei loggato

Crea la tua mappa personale

CreepTD enables developers to create their own mapss for the game. This page will cover all neccessary information you need to get started with development.

1. Introduzione

In realtà, la maggior parte delle mappe disponibili nel gioco sono state create dalla comunità. Quindi, se hai un'idea davvero interessante, sentiti libero di provare a creare la tua mappa.

2. Disegnare lo sfondo delle mappe

Le basi: Maps must be sized 16x16, 32x16 or 32x32 cells. Other values cannot be used. The background image's size in pixels is always width=MAPWIDTH*20+1 and height=MAPHEIGHT*20+1. This is because every map cell has an outer size of 20x20 pixels and includes the outer left and top grid line only (not the outer right or bottom grid line which is drawn by the next cell). +1 because the last Cells at the right or the bottom end of the map do not contain the right and bottom grid line. So this is added to the background image. With this in mind, the inner dimension of a cell, where towers will be drawn, is 19x19 when not counting the grid lines at the top/left.

Editor di immagini: Puoi usare qualsiasi software di immagini che preferisci (*). L'importante è salvare l'immagine in JPEG (al massimo 75% di qualità) usando il nome di file "(nomedellamappainminuscolo).jpg".

Mappe da 16x.. When creating 16x16 sized maps, the map image you draw will be shown for the top left player (player 1). For player 2 (top right) the image will be rotated by 90° in clockwise order, for player 3 (bottom right) by 180° and for player 4 (bottom left) by 270°. Because of this, best visual results will be achived by drawing a nice crossover at the right/bottom of your initial image. Likewise, the image of a 32x16 map is rotated by 180°.

You can use these plain 16x16, 32x16 or 32x32 empty grid images to get started with (download all).

(*) GIMP (gratuito), Photoshop (a pagamento) ecc. sono ottimi. Puoi usare anche MS Paint, ma potresti avere più difficoltà ad ottenere buoni risultati.

3. La sintassi semplice per le mappe

Creare la tua prima mappa 16x16 è davvero semplice. Tutto quello che ti serve è un'immagine con dimensioni 321x321 pixel e il relativo file di codice della mappa. Il file dell'immagine deve essere sempre (nome della mappa in minuscolo e senza spazi).jpg mentre il file di codice della mappa deve essere sempre (nome della mappa in minuscolo e senza spazi).map. Entrambi i files devo essere messi in un archivio ZIP dal nome (nome della mappa in minuscolo e senza spazi).zip.

Il percorso

Nel file di codice di mappa semplificato, il percoso è definito attraverso semplici coordinate "X,Y". La cella in alto a sinistra corrisponde a "0,0". Quella in basso a destra diviene "15,15". Scrivendo il percorso nel file .map gli alieni seguiranno le coordinate dall'inizio alla fine. Ad esempio:

0,0
0,1
0,2
0,3
0,4
Celle bloccate

In aggiunta hai la possibilità di definire alcune celle in cui sarà impossibile costruire le torri. Per definire queste celle bloccate devi usare il punto e virgola (;) al posto della virgola (,) per separare le coordinate X e Y. Ad esempio:

2;3
2;4
2;5
Commenti

Puoi aggiungere commenti o altre informazioni nel file di codice della mappa antecedendo il simbolo del cancelletto (#) al testo. Ad esempio:

# Questa è una linea di commento 
0,1 # Questo è un commento finale

E' possibile inserire linee di commento completamente vuote

Tutto questo è quanto ti sarà necessario per creare la tua prima mappa utilizzando il codice semplificato. Ricordati che il codice semplificato è utilizzabile esclusivamente su mappe di dimensioni 16x16 celle.

4. La sintassi avanzata per le mappe

CreepTD versione 1.0 ha introdotto un file di codice mappa avanzato interamente compatibile con il codice semplificato. Permette di creare percorsi alternativi (anche con più partenze e più arrivi) usando delle etichette. Permette di creare anche percorsi sotterranei (o nascosti).

Un'estensione del codice semplificato

Il percorso base e le celle bloccate sono definite nello stesso modo utilizzato nel codice semplificato.

@author codice

Permetti a tutti di sapere che sei tu l'autore della mappa. Inserisci il tuo nome con questo codice:

@author NomeDelGiocatore
@size codice

Starting from version 1.0, maps can be sized 16x16, 32x16 or 32x32. Other values than these will cause the parser to fail. If omitted and not using strict mode, 16x16 will be assumed. To define your map's size, use:

@size 16x16
@strict codice

Se vuoi che il gioco non commetta errori sulla lettura del codice (partenze, arrivi, sintassi sbagliata ecc ecc) ignorando il codice invalido o cercando di correggere il codice errato, devi aggiungere il codice:

@strict

In questo modo il gioco non tollererà nessun errore nel codice.

Partenza

Con il codice avanzato è possibile definire più punti di partenza che verranno scelti dal gioco per far partire gli alieni. Ad esempio:

1,2 start

Suggerimenti: Gli alieni appariranno nel mezzo della partenza (per evitare questo, vedi "percorsi sotterranei"). E' possibile creare partenze ponderate definendo una coordinata più volte e unendo il percorso mediante l'uso delle etichette. Se la modalità strict è disabilitata le prime coordinate scritte verranno automaticamente lette come partenza. Usando la modalità strict, al contrario, dovrai specificare ogni partenza in modo corretto.

Arrivi

Similmente alle partenze, è possibile definire più arrivi che verranno raggiunti dagli alieni tramite percorsi alternativi. Ad esempio:

1,2 end

Hints: Gli alieni spariranno nel mezzo dell'arrivo (per evitare questo, vedi "percorsi sotterranei"). Quando nessun arrivo viene specificato e non è stata abilitata la modalità strict, il gioco proverà ad usare come arrivo l'ultima coordinata inserita.

Etichette

Se pensi di usare percorsi alternativi, allora sarà necessario definire delle etichette e delle funzioni "goto". Ad esempio:

1,2 A

Suggerimenti: Le etichette non creano alcun effetto immediato. Sono solo etichette. Le etichette non possono contenere spazi bianchi.

Salti (goto)

Per creare dei percorsi alternativi, sarà necessario far saltare il gioco alle etichette definite. Quando il gioco trova una o più indicazioni "goto" farà in modo che gli alieni continueranno il loro percorso alle coordinate indicate dall'etichetta di riferimento. Ad esempio:

1,2 goto A

Suggerimenti: E' possibile creare salti (goto) con più etichette di riferimento. Ad esempio:

1,2 goto A,A,B

Spiegazione::Gli alieni sceglieranno di andare alle coordinate indicate da A o da B in maniera ponderata. In questo caso (indicando due A e una B) il 66% degli alieni andrà all'etichetta A, mentre il 33% andrà all'etichetta B.

Percorsi sotterranei

Se pensi di creare dei tunnel puoi usare i percorsi sotterranei. Definisci questi percorsi lasciando uno spazio bianco prima di inserire le coordinate. Mentre gli alieni percorrono un tratto sotterraneo sono invisibili e non possono essere colpiti dalle torri. Ad esempio:

   1,2
   1,2 start
   1,3 end
   ...

Suggerimenti: I percorsi sotterranei possono indicare anche una cella esterna alla mappa (solo di una unità). Ad esempio " -1,-1 start" o " 4,16 end" fanno in modo che gli alieni entrino e escano dalla mappa da e verso l'esterno (non spariscono nel mezzo della cella di inizio e fine). Ad esempio:

   0,-1 start
0,0
0,1
...
0,15
   0,16 end
Sintassi miste

E' possibile miscelare diverse indicazioni. Ad esempio:

   1,2 start A goto B,B,C

Spiegazione:: In questo caso la cella 1,2 è sotterranea (spazio bianco prima delle coordinate). E' una partenza. E' etichettato come A (può essere usato per indirizzare gli alieni da altre celle). Inoltre, gli alieni entranti in questo percorso verranno indirizzati all'etichetta B (al 66%) e all'etichetta C (al 33%).

Il prossimo esempio indica delle partenze multiple ponderate:

1,1 start goto B
1,1 start
1,2 B
1,3
...

2,1 start
2,2
2,3
...

Gli alieni partiranno da 1,1 o da 2,1. La partenza 1,1 verrà usata dal 66% degli alieni (in quanto indicata due volte. La partenza 2,1 verrà usata dal 33% degli alieni (in quanto indicata una volta). Gli alieni che partono da 1,1 useranno lo stesso percorso perchè la prima indicazione di 1,1 porta all'etichetta B (che è la successiva rispetto alla seconda indicazione di 1,1).

Suggerimenti: Gli arrivi non possono essere miscelati con indicazioni "goto" in quanto sono degli arrivi (e quindi in queste celle gli alieni escono dalla mappa). Allo stesso modo non è possibile miscelare indicazioni di "start" e "end". Stai attento all'ordine in cui misceli i codici: segui quello indicato nel primo esempio.

Rimandi infiniti

Non è possibile inserire rimandi infiniti. In caso contrario la mappa viene ritenuta invalida dal gioco.

Ultimo ma non ultimo: un file di esempio

Il codice di mappa per il percorso sopra sarà similare a questo:

# Map TEST
# compiled by CreepTD PHP library 1.0.3
# at Wed, 12 Oct 2011 14:56:22 +0000

@author dcode
@size 16x16
@strict

1,1 start
2,1
3,1 goto A,B

# Percorso A
4,1 A
5,1 C
6,1
7,1 end

# Percorso B
3,2 B
3,3
4,3
5,3
5,2 goto C

Per altri approfondimenti puoi far riferimento al sorgente della libreria PHP (Path :: validate).

5. Utilizzare l'edito di mappa (map editor)

Al posto di scrivere il file di codice manualmente, puoi usare il CreepTD Map Editor! Questo editor supporta il codice avanzato.

6. Usare le librerie PHP di CreepTD

Ti mettiamo a disposizione il CreepTD PHP Library che è in grado di analizzare, validare e compilare i files codice (sia semplificato che avanzato). Usa queste librerie se vuoi analizzare/validare un file codice o come punto di partenza per creare un analizzatore/validatore/compilatore in un altro linguaggio di programmazione.


Leggi i files "README" e "test.php" per iniziare:

README
test.php