1 Vika tässä on se että uuden mapin generointi ei toimi enään deletemap()in jälkeen.
Mitenkä tämän voisi kiertää?
2 Uuden mapin generointi toimii mutta se generoituu vanhan päälle ja kun deletemap()
niin se poistaa molemmat mapit ja sen jälkeen ei pysty generoimaan uutta mappia.
Lisäksi uuden mapin generoimisen jälkeen edellisen mapin collisionit on toiminnassa.
3 Millä tavalla olisi järkevää toteuttaa uuden mapin generointI?
Jonkinlainen sanallinen kuvaus koodista tai esimerkkikoodi kommenteilla auttaisi.
Koodi:
Code: Select all
Global map
Global newmap
Global newmap
map=MakeMap(32,32,32,32)
generatemap(mn)
u=LoadObject("Media\guy.bmp",72)
SetupCollision u,map,2,4,2
tileset=LoadImage("Media\tileset.bmp")
PaintObject map,tileset
Repeat
If UpKey() Then MoveObject u,2
If DownKey() Then MoveObject u, -2
If LeftKey() Then TurnObject u,5
If RightKey() Then TurnObject u, -5
If newmap=1 And KeyDown(57) Then generatemap(mn)
If KeyHit(57) Then
generatemap(mn)
oldmap-1
EndIf
If KeyHit(34) Then
deletemap()
EndIf
CloneCameraPosition u
DrawScreen
Forever
Function generatemap(mn)
For y=1 To MapHeight()
For x=1 To MapWidth()
If Rand(1,5)=5 Then
EditMap map,0,x,y,2 'drawing
EditMap map,2,x,y,1 'collision
Else
EditMap map,0,x,y,145
EndIf
Next x
Next y
newmap=0
oldmap=0
End Function
Function deletemap()
DeleteObject map
newmap +1
End Function