you will need a map editor .. I'm helping a girl ( yes, a girl, a girl who use db
) to make a 2d zelda like game, and I made this programm for her :
rem on prépare l'affichage, et on définit le taux de synchronisation
set display mode 800,600,16
sync on
sync rate 50
disable escapekey
hide mouse
goto jeu:
rem on charge les images qui serviront de texture
load image "decors\herbe.jpg",1
load image "decors\herbe2.jpg",2
load image "decors\buisson.jpg",3
load image "decors\rocher.jpg",4
load image "decors\boisg.jpg",5
load image "decors\boism.jpg",6
load image "decors\boisd.jpg",7
editeur:
dim cases(19,14,3)
do
rem c'est juste pour recolorier la case qu'on quitte en noir
if leftkey()=1 or rightkey()=1 or upkey()=1 or downkey()=1
if cases(x,y,1)=0
ink rgb(0,0,0),0
box 40*x,40*y,40*(x+1),40*(y+1)
ink rgb(255,255,255),0
endif
endif
rem on change la case sélectionnées quand on presse sur les flèches
if leftkey()=1 then dec x
if rightkey()=1 then inc x
if upkey()=1 then dec y
if downkey()=1 then inc y
if y < 0 then y = 0
if y > 14 then y = 14
if x < 0 then x = 0
if x > 19 then x = 19
rem si on change de case, il faut attendre un instant, sinon le curseur traverserait l'écran en moins d'une seconde
if leftkey()=1 or rightkey()=1 or upkey()=1 or downkey()=1 then wait 100
rem on colorie la case en cours, à la condition qu'elle ne contienne pas déjà une image
if cases(x,y,1)=0 then box 40*x,40*y,40*(x+1),40*(y+1)
rem ajout de texture
rem avec tous ces scancodes, on définit 3 choses :
rem 1. la texture de la case en cours
rem 2. si les parties noires de l'image doivent être dessinées ( pour le moment, ce n'est pas sur que cette option sera dans la version finale ; mets 1 partout ) )
rem 3. si le joueur pourra aller sur ces cases ( 0 il peut aller, 1 il ne peut pas )
rem ça sera à toi de définir ces informations d'après les images que tu utilises ;)
img = cases(x,y,1)
trans = cases(x,y,2)
obstacle = cases(x,y),3
if scancode()=2
img = 1
trans = 1
obstacle = 0
endif
if scancode()=3
img = 2
trans = 1
obstacle = 0
endif
if scancode()=4
img = 3
trans = 1
obstacle = 1
endif
if scancode()=5
img = 4
trans = 1
obstacle = 1
endif
if scancode()=6
img = 5
trans = 1
obstacle = 1
endif
if scancode()=7
img = 6
trans = 1
obstacle = 1
endif
if scancode()=8
img = 7
trans = 1
obstacle = 1
endif
if img = 0
rem si on ne sélectionne pas d'image
ink rgb(255,0,0),0
box 40*x,40*y,40*(x+1),40*(y+1)
ink rgb(255,255,255),0
else
rem sinon on colle l'image choisie
paste image img,40*x,40*y,trans
endif
sync
rem until returnkey()=1
rem on met les informations dans le tableau
cases(x,y,1) = img
cases(x,y,2) = trans
cases(x,y,3) = obstacle
rem pavage aléatoire pour l'herbe
if inkey$()="h"
for x=0 to 19
for y = 0 to 19
if cases(x,y,1)=0
img = rnd(1)+1
paste image img,40*x,40*y,1
cases(x,y,1) = img
cases(x,y,2) = 1
cases(x,y,3) = 0
endif
next y
next x
endif
rem deuxième fois qu'on regarde s'il faut sauvegarder
if escapekey()=1
input "Quel nom voulez-vous donner à la carte ? N'en mettez pas pour ne pas la sauver.",nom$
if nom$ = "" then a=1 else save array nom$,cases(0)
end
endif
sync
loop
jeu:
dim cases(19,14,3)
load array "map",cases(0)
for x=0 to 19
for y=0 to 14
paste image cases(x,y,1),40*x,40*y,cases(x,y,2)
next y
next x
sync
wait key
end
okay, the informations are in french, but it's easy to understand, isnt it ? be glad that it isn't in swiss-german
I don't have made a code to read the maps, but it will come soon
how does the editor work ? easy :
you move the selectionned case with the arrow keys, and choose the textures with a key (1 to 7 in my code, but you have to change the pictures ). the pictures must be 40*40 pixels. the images 1 and 2 must be grass, where the player can move. when you placed all the others images you want, press H and the programm will help you to finish the map
when you escape, it ask you if you want to save the map ; if you write a name, it save, else it doesnt save.
hmm if you have any questions, mail me at galakthus@hotmail.com
I'm following John, but I'm not john.
Lol, it is funnier in french