Añadidos los enemigos
This commit is contained in:
@@ -6,5 +6,5 @@ tile_height=16
|
|||||||
name=walk
|
name=walk
|
||||||
speed=8
|
speed=8
|
||||||
loop=yes
|
loop=yes
|
||||||
frames=0,1,2,3,4,5,6
|
frames=0,1,2,3,4,5
|
||||||
[/animation]
|
[/animation]
|
||||||
@@ -6,5 +6,5 @@ tile_height=16
|
|||||||
name=walk
|
name=walk
|
||||||
speed=8
|
speed=8
|
||||||
loop=yes
|
loop=yes
|
||||||
frames=0,1,2,3,4,5,6
|
frames=0,1,2,3,4,5
|
||||||
[/animation]
|
[/animation]
|
||||||
@@ -4,7 +4,7 @@ tile_height=16
|
|||||||
|
|
||||||
[animation]
|
[animation]
|
||||||
name=walk
|
name=walk
|
||||||
speed=8
|
speed=6
|
||||||
loop=yes
|
loop=yes
|
||||||
frames=0,1,2,3,4,5,6
|
frames=0,1,2,3,4,5
|
||||||
[/animation]
|
[/animation]
|
||||||
@@ -6,5 +6,5 @@ tile_height=16
|
|||||||
name=walk
|
name=walk
|
||||||
speed=8
|
speed=8
|
||||||
loop=yes
|
loop=yes
|
||||||
frames=0,1,2,3,4,5,6
|
frames=0,1,2,3,4,5
|
||||||
[/animation]
|
[/animation]
|
||||||
@@ -7,4 +7,4 @@ room_right=02.map
|
|||||||
|
|
||||||
[tilemap]
|
[tilemap]
|
||||||
01.tmx
|
01.tmx
|
||||||
[tilemap-end]
|
[/tilemap]
|
||||||
@@ -5,30 +5,30 @@
|
|||||||
<data encoding="csv">
|
<data encoding="csv">
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,19,20,0,0,0,0,0,87,88,89,90,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,51,52,0,0,0,0,0,119,120,121,122,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,19,20,0,0,0,0,0,0,0,0,0,0,0,151,152,153,154,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,51,52,0,0,0,0,0,0,0,0,0,0,0,183,184,185,186,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,18,19,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,50,51,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,19,20,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,51,52,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,159,160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,259,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,159,160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,259,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,191,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,259,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,191,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,259,0,0,0,
|
||||||
0,0,0,0,0,0,0,263,264,0,0,0,0,0,0,0,0,257,258,0,0,0,0,0,0,0,0,0,263,264,0,0,0,0,0,0,259,0,0,0,
|
0,0,0,0,0,0,0,263,264,0,0,0,0,0,0,0,0,257,258,0,0,0,0,0,0,0,0,0,263,264,0,0,0,0,0,0,259,0,0,0,
|
||||||
0,0,0,0,0,0,0,295,296,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,265,266,0,0,0,0,0,0,259,0,0,0,
|
0,0,0,0,0,0,0,295,296,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,265,266,0,0,0,0,0,0,259,0,0,0,
|
||||||
0,263,264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,259,0,0,0,
|
0,263,264,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,259,0,0,0,
|
||||||
0,295,296,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,577,578,579,580,581,582,0,0,0,0,0,0,259,0,0,259,0,0,0,
|
0,295,296,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,577,578,579,580,581,582,0,0,0,0,0,0,259,0,0,259,0,0,0,
|
||||||
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,189,190,0,0,0,0,0,0,0,0,259,0,0,259,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,577,578,579,580,581,582,0,0,0,0,0,0,259,0,0,259,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,577,578,579,580,581,582,0,0,0,0,0,0,259,0,0,259,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,577,578,579,580,581,582,0,0,0,0,0,0,259,0,0,259,0,0,0,
|
0,0,0,0,239,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,189,190,0,0,0,265,266,0,0,0,259,0,0,259,0,0,0,
|
||||||
0,0,0,0,239,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,577,578,579,580,581,582,0,265,266,0,0,0,259,0,0,259,0,0,0,
|
|
||||||
0,0,0,257,258,257,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,577,578,579,580,581,582,0,0,0,0,0,0,259,0,0,259,0,0,0,
|
0,0,0,257,258,257,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,577,578,579,580,581,582,0,0,0,0,0,0,259,0,0,259,0,0,0,
|
||||||
0,0,0,289,290,289,290,0,0,0,0,577,578,579,580,581,582,0,0,0,0,577,578,579,580,581,582,0,0,0,0,0,0,259,0,0,259,0,0,0,
|
0,0,0,289,290,289,290,0,0,0,0,577,578,579,580,581,582,0,0,0,0,0,0,189,190,0,0,0,0,0,0,0,0,259,0,0,259,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,577,578,579,580,581,582,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,189,190,0,0,0,0,0,0,577,578,579,580,581,582,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,577,578,579,580,581,582,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,189,190,0,0,0,0,0,0,0,0,189,190,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
263,264,0,0,0,0,0,193,194,0,0,0,0,0,0,0,0,0,0,0,0,0,281,282,277,278,279,280,0,0,0,0,0,0,0,0,0,0,0,0,
|
263,264,0,0,0,0,0,193,194,0,0,0,0,189,190,0,0,0,0,0,0,0,281,282,277,278,279,280,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
295,296,0,0,0,0,0,225,226,0,0,0,0,0,0,0,0,281,275,275,275,275,313,314,309,310,311,312,0,0,0,0,0,0,0,0,0,0,0,0,
|
295,296,0,0,0,0,0,225,226,0,0,0,0,189,190,0,0,281,275,275,275,275,313,314,309,310,311,312,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
265,264,263,264,263,264,263,264,263,0,263,264,263,264,263,264,263,264,263,266,266,266,283,284,266,265,266,264,263,264,263,264,263,264,263,264,263,264,263,264,
|
265,264,263,264,263,264,263,264,263,264,263,264,263,264,263,264,263,264,263,266,266,266,283,284,266,265,266,264,263,264,263,264,263,264,263,264,263,264,263,264,
|
||||||
295,296,295,296,295,296,295,296,295,0,295,296,295,296,295,296,295,296,295,296,295,296,315,316,298,297,298,296,295,296,295,296,295,296,295,296,295,296,295,296
|
295,296,295,296,295,296,295,296,295,265,295,296,295,296,295,296,295,296,295,296,295,296,315,316,298,297,298,296,295,296,295,296,295,296,295,296,295,296,295,296
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
</map>
|
</map>
|
||||||
|
|||||||
@@ -7,4 +7,49 @@ room_right=0
|
|||||||
|
|
||||||
[tilemap]
|
[tilemap]
|
||||||
02.tmx
|
02.tmx
|
||||||
[tilemap-end]
|
[/tilemap]
|
||||||
|
|
||||||
|
[enemy]
|
||||||
|
tileset=walking_eye.png
|
||||||
|
animation=walking_eye.ani
|
||||||
|
width=16
|
||||||
|
height=16
|
||||||
|
x=3
|
||||||
|
y=17
|
||||||
|
vx=0.4
|
||||||
|
vy=0
|
||||||
|
x1=3
|
||||||
|
y1=17
|
||||||
|
x2=13
|
||||||
|
y2=17
|
||||||
|
[/enemy]
|
||||||
|
|
||||||
|
[enemy]
|
||||||
|
tileset=flying_eye.png
|
||||||
|
animation=flying_eye.ani
|
||||||
|
width=16
|
||||||
|
height=16
|
||||||
|
x=18
|
||||||
|
y=11
|
||||||
|
vx=0
|
||||||
|
vy=0.5
|
||||||
|
x1=18
|
||||||
|
y1=11
|
||||||
|
x2=18
|
||||||
|
y2=17
|
||||||
|
[/enemy]
|
||||||
|
|
||||||
|
[enemy]
|
||||||
|
tileset=flying_eye_horn.png
|
||||||
|
animation=flying_eye_horn.ani
|
||||||
|
width=16
|
||||||
|
height=16
|
||||||
|
x=21
|
||||||
|
y=11
|
||||||
|
vx=0
|
||||||
|
vy=0.7
|
||||||
|
x1=21
|
||||||
|
y1=11
|
||||||
|
x2=21
|
||||||
|
y2=17
|
||||||
|
[/enemy]
|
||||||
@@ -6,12 +6,12 @@
|
|||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,266,266,266,266,266,266,266,266,266,266,266,266,266,266,0,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,0,
|
0,0,266,266,266,266,266,266,266,266,266,266,266,266,266,266,0,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,0,
|
||||||
0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,19,20,0,
|
||||||
0,0,265,265,265,265,265,265,265,265,265,265,265,265,265,265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,265,265,265,265,265,265,265,265,265,265,265,265,265,265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,51,52,0,
|
||||||
0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,87,88,89,90,0,0,0,0,
|
||||||
0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,119,120,121,122,0,0,0,0,
|
||||||
0,0,265,265,265,265,265,265,265,265,265,265,265,265,265,265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,265,265,265,265,265,265,265,265,265,265,265,265,265,265,0,18,19,20,0,0,0,0,0,0,0,0,0,0,0,0,151,152,153,154,0,0,0,0,
|
||||||
0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,266,0,50,51,52,0,0,0,0,0,0,0,0,0,0,0,0,183,184,185,186,0,0,0,0,
|
||||||
0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,265,265,265,265,265,265,265,265,265,265,265,265,265,265,0,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,0,
|
0,0,265,265,265,265,265,265,265,265,265,265,265,265,265,265,0,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,0,
|
||||||
0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
@@ -20,15 +20,15 @@
|
|||||||
0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,265,265,265,265,265,265,265,265,265,265,265,265,265,265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,265,265,265,265,265,265,265,265,265,265,265,265,265,265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,266,0,0,0,0,0,0,0,0,0,0,0,0,266,0,0,0,0,0,0,0,0,0,0,0,195,196,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,265,0,0,0,0,0,0,0,0,0,0,0,0,265,0,0,0,0,0,0,0,0,0,0,0,227,228,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,265,265,265,265,265,265,265,265,265,265,265,265,265,265,0,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,0,
|
0,0,265,265,265,265,265,265,265,265,265,265,265,265,265,265,0,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,297,297,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
23,24,25,26,27,28,29,30,31,32,23,24,25,26,27,28,29,30,31,32,23,24,25,26,27,28,29,30,31,32,23,24,25,26,27,28,29,30,31,32,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
55,56,57,58,59,60,61,62,63,64,55,56,57,58,59,60,61,62,63,64,55,56,57,58,59,60,61,62,63,64,55,56,57,58,59,60,61,62,63,64,
|
||||||
263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,264,264,264,264,264,0,0,0,0,264,264,264,264,264,264,264,264,264,264,
|
263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,263,264,264,264,264,264,135,136,135,136,264,264,264,264,264,264,264,264,264,264,
|
||||||
295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,296,296,296,296,296,0,0,0,0,296,296,296,296,296,296,296,296,296,296
|
295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,296,296,296,296,296,167,168,167,168,296,296,296,296,296,296,296,296,296,296
|
||||||
</data>
|
</data>
|
||||||
</layer>
|
</layer>
|
||||||
</map>
|
</map>
|
||||||
|
|||||||
@@ -7,4 +7,4 @@ room_right=0
|
|||||||
|
|
||||||
[tilemap]
|
[tilemap]
|
||||||
03.tmx
|
03.tmx
|
||||||
[tilemap-end]
|
[/tilemap]
|
||||||
89
source/enemy.cpp
Normal file
89
source/enemy.cpp
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
#include "enemy.h"
|
||||||
|
#include <fstream>
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
|
// Constructor
|
||||||
|
Enemy::Enemy(enemy_t enemy)
|
||||||
|
{
|
||||||
|
// Obten punteros a objetos
|
||||||
|
asset = enemy.asset;
|
||||||
|
renderer = enemy.renderer;
|
||||||
|
|
||||||
|
// Crea objetos
|
||||||
|
texture = new LTexture();
|
||||||
|
loadTextureFromFile(texture, asset->get(enemy.tileset), renderer);
|
||||||
|
sprite = new AnimatedSprite(texture, renderer, asset->get(enemy.animation));
|
||||||
|
|
||||||
|
// Obten el resto de valores
|
||||||
|
x1 = enemy.x1;
|
||||||
|
x2 = enemy.x2;
|
||||||
|
y1 = enemy.y1;
|
||||||
|
y2 = enemy.y2;
|
||||||
|
color = enemy.color;
|
||||||
|
sprite->setPosX(enemy.x);
|
||||||
|
sprite->setPosY(enemy.y);
|
||||||
|
sprite->setVelX(enemy.vx);
|
||||||
|
sprite->setVelY(enemy.vy);
|
||||||
|
|
||||||
|
// Inicializa el sprite con el resto de parametros comunes
|
||||||
|
sprite->setWidth(enemy.w);
|
||||||
|
sprite->setHeight(enemy.h);
|
||||||
|
sprite->setCurrentAnimation("walk");
|
||||||
|
sprite->setFlip(enemy.vx>0?SDL_FLIP_NONE:SDL_FLIP_HORIZONTAL);
|
||||||
|
|
||||||
|
collider = getRect();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Destructor
|
||||||
|
Enemy::~Enemy()
|
||||||
|
{
|
||||||
|
texture->unload();
|
||||||
|
delete texture;
|
||||||
|
texture = nullptr;
|
||||||
|
|
||||||
|
delete sprite;
|
||||||
|
sprite = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pinta el enemigo en pantalla
|
||||||
|
void Enemy::render()
|
||||||
|
{
|
||||||
|
sprite->render();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Actualiza las variables del objeto
|
||||||
|
void Enemy::update()
|
||||||
|
{
|
||||||
|
sprite->update();
|
||||||
|
sprite->animate();
|
||||||
|
checkPath();
|
||||||
|
collider = getRect();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Comprueba si ha llegado al limite del recorrido para darse media vuelta
|
||||||
|
void Enemy::checkPath()
|
||||||
|
{
|
||||||
|
if (sprite->getPosX() > x2 || sprite->getPosX() < x1)
|
||||||
|
{
|
||||||
|
sprite->setVelX(sprite->getVelX() * (-1));
|
||||||
|
sprite->flip();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sprite->getPosY() > y2 || sprite->getPosY() < y1)
|
||||||
|
{
|
||||||
|
sprite->setVelY(sprite->getVelY() * (-1));
|
||||||
|
sprite->flip();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Devuelve el rectangulo que contiene al enemigo
|
||||||
|
SDL_Rect Enemy::getRect()
|
||||||
|
{
|
||||||
|
return sprite->getRect();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Obtiene el rectangulo de colision del enemigo
|
||||||
|
SDL_Rect &Enemy::getCollider()
|
||||||
|
{
|
||||||
|
return collider;
|
||||||
|
}
|
||||||
70
source/enemy.h
Normal file
70
source/enemy.h
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <SDL2/SDL.h>
|
||||||
|
#include "utils.h"
|
||||||
|
#include "asset.h"
|
||||||
|
#include "animatedsprite.h"
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#ifndef ENEMY_H
|
||||||
|
#define ENEMY_H
|
||||||
|
|
||||||
|
// Estructura para pasar los datos de un enemigo
|
||||||
|
struct enemy_t
|
||||||
|
{
|
||||||
|
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||||
|
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
||||||
|
std::string tileset; // Fichero con los graficos del enemigo
|
||||||
|
std::string animation; // Fichero con las animaciones del enemigo
|
||||||
|
int w; // Anchura del enemigo
|
||||||
|
int h; // Altura del enemigo
|
||||||
|
float x; // Posición inicial en el eje X
|
||||||
|
float y; // Posición inicial en el eje Y
|
||||||
|
float vx; // Velocidad en el eje X
|
||||||
|
float vy; // Velocidad en el eje Y
|
||||||
|
int x1; // Limite izquierdo de la ruta en el eje X
|
||||||
|
int x2; // Limite derecho de la ruta en el eje X
|
||||||
|
int y1; // Limite superior de la ruta en el eje Y
|
||||||
|
int y2; // Limite inferior de la ruta en el eje Y
|
||||||
|
color_t color; // Color del enemigo
|
||||||
|
};
|
||||||
|
|
||||||
|
// Clase Enemy
|
||||||
|
class Enemy
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||||
|
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
||||||
|
LTexture *texture; // Textura con los graficos del enemigo
|
||||||
|
AnimatedSprite *sprite; // Sprite del enemigo
|
||||||
|
color_t color; // Color del enemigo
|
||||||
|
int x1; // Limite izquierdo de la ruta en el eje X
|
||||||
|
int x2; // Limite derecho de la ruta en el eje X
|
||||||
|
int y1; // Limite superior de la ruta en el eje Y
|
||||||
|
int y2; // Limite inferior de la ruta en el eje Y
|
||||||
|
SDL_Rect collider; // Caja de colisión
|
||||||
|
|
||||||
|
// Comprueba si ha llegado al limite del recorrido para darse media vuelta
|
||||||
|
void checkPath();
|
||||||
|
|
||||||
|
public:
|
||||||
|
// Constructor
|
||||||
|
Enemy(enemy_t enemy);
|
||||||
|
|
||||||
|
// Destructor
|
||||||
|
~Enemy();
|
||||||
|
|
||||||
|
// Pinta el enemigo en pantalla
|
||||||
|
void render();
|
||||||
|
|
||||||
|
// Actualiza las variables del objeto
|
||||||
|
void update();
|
||||||
|
|
||||||
|
// Devuelve el rectangulo que contiene al enemigo
|
||||||
|
SDL_Rect getRect();
|
||||||
|
|
||||||
|
// Obtiene el rectangulo de colision del enemigo
|
||||||
|
SDL_Rect &getCollider();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -10,7 +10,7 @@ Game::Game(SDL_Renderer *renderer, Asset *asset, Screen *screen, Input *input)
|
|||||||
this->input = input;
|
this->input = input;
|
||||||
|
|
||||||
eventHandler = new SDL_Event();
|
eventHandler = new SDL_Event();
|
||||||
map = new Map(asset->get("02.map"), renderer, asset);
|
map = new Map(asset->get("01.map"), renderer, asset);
|
||||||
player = new Player(renderer, asset, input, map);
|
player = new Player(renderer, asset, input, map);
|
||||||
debugText = new Text(asset->get("debug.png"), asset->get("debug.txt"), renderer);
|
debugText = new Text(asset->get("debug.png"), asset->get("debug.txt"), renderer);
|
||||||
}
|
}
|
||||||
@@ -76,6 +76,7 @@ void Game::update()
|
|||||||
|
|
||||||
player->update();
|
player->update();
|
||||||
checkScreenBorders();
|
checkScreenBorders();
|
||||||
|
map->update();
|
||||||
checkInput();
|
checkInput();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
135
source/map.cpp
135
source/map.cpp
@@ -35,6 +35,12 @@ Map::~Map()
|
|||||||
delete texture_tile;
|
delete texture_tile;
|
||||||
|
|
||||||
SDL_DestroyTexture(map_texture);
|
SDL_DestroyTexture(map_texture);
|
||||||
|
|
||||||
|
for (auto enemy : enemy_list)
|
||||||
|
{
|
||||||
|
delete enemy;
|
||||||
|
}
|
||||||
|
enemy_list.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Carga las variables desde un fichero
|
// Carga las variables desde un fichero
|
||||||
@@ -95,7 +101,32 @@ bool Map::load(std::string file_path)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} while (line != "[tilemap-end]");
|
} while (line != "[/tilemap]");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Si la linea contiene el texto [enemy] se realiza el proceso de carga de un enemigo
|
||||||
|
else if (line == "[enemy]")
|
||||||
|
{
|
||||||
|
enemy_t enemy;
|
||||||
|
enemy.asset = asset;
|
||||||
|
enemy.renderer = renderer;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
std::getline(file, line);
|
||||||
|
|
||||||
|
// Encuentra la posición del caracter '='
|
||||||
|
int pos = line.find("=");
|
||||||
|
// Procesa las dos subcadenas
|
||||||
|
if (!setEnemy(&enemy, line.substr(0, pos), line.substr(pos + 1, line.length())))
|
||||||
|
{
|
||||||
|
printf("Warning: file %s\n, unknown parameter \"%s\"\n", filename.c_str(), line.substr(0, pos).c_str());
|
||||||
|
success = false;
|
||||||
|
}
|
||||||
|
} while (line != "[/enemy]");
|
||||||
|
|
||||||
|
// Añade el enemigo al vector de enemigos
|
||||||
|
enemy_list.push_back(new Enemy(enemy));
|
||||||
}
|
}
|
||||||
|
|
||||||
// En caso contrario se parsea el fichero para buscar las variables y los valores
|
// En caso contrario se parsea el fichero para buscar las variables y los valores
|
||||||
@@ -163,6 +194,71 @@ bool Map::setVars(std::string var, std::string value)
|
|||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Asigna variables a una estructura enemy_t
|
||||||
|
bool Map::setEnemy(enemy_t *enemy, std::string var, std::string value)
|
||||||
|
{
|
||||||
|
// Indicador de éxito en la asignación
|
||||||
|
bool success = true;
|
||||||
|
|
||||||
|
if (var == "tileset")
|
||||||
|
{
|
||||||
|
enemy->tileset = value;
|
||||||
|
}
|
||||||
|
else if (var == "animation")
|
||||||
|
{
|
||||||
|
enemy->animation = value;
|
||||||
|
}
|
||||||
|
else if (var == "width")
|
||||||
|
{
|
||||||
|
enemy->w = std::stof(value);
|
||||||
|
}
|
||||||
|
else if (var == "height")
|
||||||
|
{
|
||||||
|
enemy->h = std::stof(value);
|
||||||
|
}
|
||||||
|
else if (var == "x")
|
||||||
|
{
|
||||||
|
enemy->x = std::stof(value) * tile_size;
|
||||||
|
}
|
||||||
|
else if (var == "y")
|
||||||
|
{
|
||||||
|
enemy->y = std::stof(value) * tile_size;
|
||||||
|
}
|
||||||
|
else if (var == "vx")
|
||||||
|
{
|
||||||
|
enemy->vx = std::stof(value);
|
||||||
|
}
|
||||||
|
else if (var == "vy")
|
||||||
|
{
|
||||||
|
enemy->vy = std::stof(value);
|
||||||
|
}
|
||||||
|
else if (var == "x1")
|
||||||
|
{
|
||||||
|
enemy->x1 = std::stoi(value) * tile_size;
|
||||||
|
}
|
||||||
|
else if (var == "x2")
|
||||||
|
{
|
||||||
|
enemy->x2 = std::stoi(value) * tile_size;
|
||||||
|
}
|
||||||
|
else if (var == "y1")
|
||||||
|
{
|
||||||
|
enemy->y1 = std::stoi(value) * tile_size;
|
||||||
|
}
|
||||||
|
else if (var == "y2")
|
||||||
|
{
|
||||||
|
enemy->y2 = std::stoi(value) * tile_size;
|
||||||
|
}
|
||||||
|
else if (var == "[/enemy]")
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
success = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
// Crea la textura con el mapeado de la habitación
|
// Crea la textura con el mapeado de la habitación
|
||||||
void Map::fillMapTexture()
|
void Map::fillMapTexture()
|
||||||
{
|
{
|
||||||
@@ -208,13 +304,14 @@ void Map::fillMapTexture()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Dibuja el marco del marcador
|
// Dibuja el marco del marcador
|
||||||
SDL_SetRenderDrawColor(renderer, 85, 50, 85, 0xFF);
|
// SDL_SetRenderDrawColor(renderer, 85, 50, 85, 0xFF);
|
||||||
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0xFF);
|
// SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0xFF);
|
||||||
SDL_Rect rect = {0, 208, 320, 32};
|
// SDL_Rect rect = {0, 208, 320, 32};
|
||||||
SDL_RenderDrawRect(renderer, &rect);
|
// SDL_RenderDrawRect(renderer, &rect);
|
||||||
rect = {1, 209, 318, 30};
|
// rect = {1, 209, 318, 30};
|
||||||
SDL_RenderDrawRect(renderer, &rect);
|
// SDL_RenderDrawRect(renderer, &rect);
|
||||||
|
|
||||||
|
// Vuelve a colocar el renderizador
|
||||||
SDL_SetRenderTarget(renderer, nullptr);
|
SDL_SetRenderTarget(renderer, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -224,24 +321,44 @@ void Map::render()
|
|||||||
// Dibuja la textura con el mapa en pantalla
|
// Dibuja la textura con el mapa en pantalla
|
||||||
SDL_Rect rect = {0, 0, GAMECANVAS_WIDTH, GAMECANVAS_HEIGHT};
|
SDL_Rect rect = {0, 0, GAMECANVAS_WIDTH, GAMECANVAS_HEIGHT};
|
||||||
SDL_RenderCopy(renderer, map_texture, &rect, NULL);
|
SDL_RenderCopy(renderer, map_texture, &rect, NULL);
|
||||||
|
|
||||||
|
for (auto enemy : enemy_list)
|
||||||
|
{
|
||||||
|
enemy->render();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Actualiza todas las variables
|
||||||
|
void Map::update()
|
||||||
|
{
|
||||||
|
for (auto enemy : enemy_list)
|
||||||
|
{
|
||||||
|
enemy->update();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Devuelve el tipo de tile que hay en un punto
|
// Devuelve el tipo de tile que hay en un punto
|
||||||
e_tile_map Map::getTile(SDL_Point p)
|
e_tile_map Map::getTile(SDL_Point p)
|
||||||
{
|
{
|
||||||
const int x = std::max(getPlayArea(b_left), (std::min(p.x, getPlayArea(b_right))));
|
// Normalizamos los puntos para que no busque fuera del mapa
|
||||||
const int y = std::max(getPlayArea(b_top), (std::min(p.y, getPlayArea(b_bottom))));
|
const int x = std::max(getPlayArea(b_left), (std::min(p.x, getPlayArea(b_right) - 1)));
|
||||||
|
const int y = std::max(getPlayArea(b_top), (std::min(p.y, getPlayArea(b_bottom) - 1)));
|
||||||
|
|
||||||
|
// Calcula el tile
|
||||||
const int tile = tilemap[((y / tile_size) * map_width) + (x / tile_size)];
|
const int tile = tilemap[((y / tile_size) * map_width) + (x / tile_size)];
|
||||||
const int png_width = 32;
|
const int png_width = 32;
|
||||||
|
|
||||||
|
// Las 8 primeras filas son tiles de fondo
|
||||||
if (tile >= 0 && tile < 8 * png_width)
|
if (tile >= 0 && tile < 8 * png_width)
|
||||||
{
|
{
|
||||||
return nothing;
|
return nothing;
|
||||||
}
|
}
|
||||||
|
// De la fila 8 a la 15 hay tiles de muro
|
||||||
else if (tile >= (8 * png_width) && tile < 16 * png_width)
|
else if (tile >= (8 * png_width) && tile < 16 * png_width)
|
||||||
{
|
{
|
||||||
return wall;
|
return wall;
|
||||||
}
|
}
|
||||||
|
// A partir de la fila 16 son tiles atravesables
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return passable;
|
return passable;
|
||||||
|
|||||||
25
source/map.h
25
source/map.h
@@ -4,6 +4,7 @@
|
|||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "asset.h"
|
#include "asset.h"
|
||||||
#include "const.h"
|
#include "const.h"
|
||||||
|
#include "enemy.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
@@ -32,16 +33,17 @@ enum e_border
|
|||||||
class Map
|
class Map
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
Asset *asset; // Objeto con la ruta a todos los ficheros de recursos
|
||||||
SDL_Renderer *renderer; // El renderizador de la ventana
|
SDL_Renderer *renderer; // El renderizador de la ventana
|
||||||
std::string room_up; // Identificador de la habitación que se encuentra arriba
|
std::string room_up; // Identificador de la habitación que se encuentra arriba
|
||||||
std::string room_down; // Identificador de la habitación que se encuentra abajp
|
std::string room_down; // Identificador de la habitación que se encuentra abajp
|
||||||
std::string room_left; // Identificador de la habitación que se encuentra a la izquierda
|
std::string room_left; // Identificador de la habitación que se encuentra a la izquierda
|
||||||
std::string room_right; // Identificador de la habitación que se encuentra a la derecha
|
std::string room_right; // Identificador de la habitación que se encuentra a la derecha
|
||||||
std::string tileset_img; // Imagen con los graficos para la habitación
|
std::string tileset_img; // Imagen con los graficos para la habitación
|
||||||
std::vector<int> tilemap; // Indice de los tiles a dibujar en la habitación
|
std::vector<int> tilemap; // Indice de los tiles a dibujar en la habitación
|
||||||
LTexture *texture_tile; // Textura con los graficos de los tiles habitación
|
LTexture *texture_tile; // Textura con los graficos de los tiles habitación
|
||||||
SDL_Texture *map_texture; // Textura para dibujar el mapa de la habitación
|
SDL_Texture *map_texture; // Textura para dibujar el mapa de la habitación
|
||||||
|
std::vector<Enemy *> enemy_list; // Listado con los enemigos de la habitación
|
||||||
|
|
||||||
int tile_size; // Ancho del tile en pixels
|
int tile_size; // Ancho del tile en pixels
|
||||||
int map_width; // Ancho del mapa en tiles
|
int map_width; // Ancho del mapa en tiles
|
||||||
@@ -54,6 +56,9 @@ private:
|
|||||||
// Asigna variables a partir de dos cadenas
|
// Asigna variables a partir de dos cadenas
|
||||||
bool setVars(std::string var, std::string value);
|
bool setVars(std::string var, std::string value);
|
||||||
|
|
||||||
|
// Asigna variables a una estructura enemy_t
|
||||||
|
bool setEnemy(enemy_t *enemy, std::string var, std::string value);
|
||||||
|
|
||||||
// Pinta el mapa de la habitación en la textura
|
// Pinta el mapa de la habitación en la textura
|
||||||
void fillMapTexture();
|
void fillMapTexture();
|
||||||
|
|
||||||
|
|||||||
@@ -303,6 +303,12 @@ void MovingSprite::setFlip(SDL_RendererFlip flip)
|
|||||||
mFlip = flip;
|
mFlip = flip;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Gira el sprite horizontalmente
|
||||||
|
void MovingSprite::flip()
|
||||||
|
{
|
||||||
|
mFlip = (mFlip==SDL_FLIP_HORIZONTAL)?SDL_FLIP_NONE:SDL_FLIP_HORIZONTAL;
|
||||||
|
}
|
||||||
|
|
||||||
// Obtiene el valor de la variable
|
// Obtiene el valor de la variable
|
||||||
SDL_RendererFlip MovingSprite::getFlip()
|
SDL_RendererFlip MovingSprite::getFlip()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -141,6 +141,9 @@ public:
|
|||||||
// Establece el valor de la variable
|
// Establece el valor de la variable
|
||||||
void setFlip(SDL_RendererFlip flip);
|
void setFlip(SDL_RendererFlip flip);
|
||||||
|
|
||||||
|
// Gira el sprite horizontalmente
|
||||||
|
void flip();
|
||||||
|
|
||||||
// Obtiene el valor de la variable
|
// Obtiene el valor de la variable
|
||||||
SDL_RendererFlip getFlip();
|
SDL_RendererFlip getFlip();
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ Player::Player(SDL_Renderer *renderer, Asset *asset, Input *input, Map *map)
|
|||||||
const SDL_Rect rect = {(int)x, (int)y, 16, 24};
|
const SDL_Rect rect = {(int)x, (int)y, 16, 24};
|
||||||
sprite->setPos(rect);
|
sprite->setPos(rect);
|
||||||
sprite->setCurrentAnimation("stand");
|
sprite->setCurrentAnimation("stand");
|
||||||
sprite->setFlip(SDL_FLIP_HORIZONTAL);
|
sprite->setFlip(SDL_FLIP_NONE);
|
||||||
|
|
||||||
jumpStrenght = 2.0f;
|
jumpStrenght = 2.0f;
|
||||||
gravity = 0.3f;
|
gravity = 0.3f;
|
||||||
|
|||||||
Reference in New Issue
Block a user