-
Notifications
You must be signed in to change notification settings - Fork 0
/
Map.py
61 lines (56 loc) · 2.48 KB
/
Map.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import os
import constants
from pytmx import tmxloader
from player import *
class Map(object):
def __init__(self, filename):
print 'loading', filename
self.tiled = tmxloader.load_pygame('maps/' + filename + '.tmx')
#print dir(self.tiled)
self.events = [[0 for i in range(self.tiled.width)] for j in range(self.tiled.height)]
self.monsters = []
for obj in self.tiled.getObjects():
obj.x /= constants.TILESIZE
obj.y /= constants.TILESIZE
self.events[obj.y][obj.x] = obj
if obj.type == 'monster':
self.monsters.append(Monster(obj.monType, obj.x, obj.y))
if os.path.exists(os.path.abspath(os.curdir + '/maps/' + filename + '.py')):
exec('from maps.{0} import {0} as mapObject'.format(filename))
self.mapScript = mapObject()
try:
self.name = self.tiled.name
except:
self.name = ''
def loadScript(self, filename):
fileHandler = open('mapScripts/' + filename + '.txt', 'r')
self.events = {}
while True:
temp = fileHandler.readline().strip()
if temp == '[npc]':
tt = fileHandler.readline().strip()
tt = fileHandler.readline().strip()
tt = fileHandler.readline().strip()
tt = fileHandler.readline().strip()
tt = fileHandler.readline().strip()
tt = fileHandler.readline().strip()
tt = fileHandler.readline().strip()
tt = fileHandler.readline().strip()
tt = fileHandler.readline().strip()
tt = fileHandler.readline().strip()
tt = fileHandler.readline().strip()
tt = fileHandler.readline().strip()
fileHandler.readline().strip()
elif temp == '[warp]':
x = int(fileHandler.readline().strip())
y = int(fileHandler.readline().strip())
x2 = int(fileHandler.readline().strip())
y2 = int(fileHandler.readline().strip())
mapX = fileHandler.readline().strip()
mapY = fileHandler.readline().strip()
tt = fileHandler.readline().strip()
fileHandler.readline().strip()
self.events[(x,y)] = (0, (x2,y2), "{0}.{1}".format(mapX, mapY))
elif temp == '':
break
fileHandler.close()