Amélioration de l'édition des mondes

This commit is contained in:
Le_dahut 2014-06-09 17:23:50 +02:00
parent b9a993bb99
commit 7b0656de07
3 changed files with 54 additions and 26 deletions

View File

@ -404,7 +404,7 @@ class menu(pyglet.window.Window):
self.selected=-1 self.selected=-1
self.images=[pyglet.image.load('picture/leveler0.png'),pyglet.image.load('picture/leveler1.png'),pyglet.image.load('picture/leveler2.png'),pyglet.image.load('picture/leveler3.png'),pyglet.image.load('picture/leveler4.png')] self.images=[pyglet.image.load('picture/leveler0.png'),pyglet.image.load('picture/leveler1.png'),pyglet.image.load('picture/leveler2.png'),pyglet.image.load('picture/leveler3.png'),pyglet.image.load('picture/leveler4.png')]
self.colors=[[0,192,244],[235,118,118],[5,157,60],[215,33,255],[201,209,98]] self.colors=[[0,192,244],[235,118,118],[5,157,60],[215,33,255],[201,209,98]]
self.sizes=[(50,70),(45,45),(80,80),(80,80),(80,80)] self.sizes=[(50,70),(50,50),(30,70),(50,60),(28,68)]
#self.fond=pyglet.image.TileableTexture.create_for_image(image.load("picture/fond.png")) #self.fond=pyglet.image.TileableTexture.create_for_image(image.load("picture/fond.png"))
self.labels=[pyglet.text.Label("",font_name='vademecum',font_size=380,x=0,y=0,bold=False,italic=False,batch=self.batch,group=self.p0,color=(255, 80, 80,230))] self.labels=[pyglet.text.Label("",font_name='vademecum',font_size=380,x=0,y=0,bold=False,italic=False,batch=self.batch,group=self.p0,color=(255, 80, 80,230))]
self.fond=image.load("picture/fond.png") self.fond=image.load("picture/fond.png")
@ -456,13 +456,17 @@ class menu(pyglet.window.Window):
self.labels[0].color=(self.colors[world][0],self.colors[world][1],self.colors[world][2],100) self.labels[0].color=(self.colors[world][0],self.colors[world][1],self.colors[world][2],100)
self.labels[0].x=(1024-self.labels[0].content_width)/2-50 self.labels[0].x=(1024-self.labels[0].content_width)/2-50
self.labels[0].y=75*self.height/768 self.labels[0].y=75*self.height/768
if 'obj' in locals(): self.labels[0].text=obj['element'] if 'obj' in locals():
self.labels[0].text=obj['element']
else:
self.labels[0].text='xx'
for l in range(10): for l in range(10):
if l>=len(worlds[world]): if l>=len(worlds[world]):
self.levels[l].x=-150 self.levels[l].x=-300
self.untitled[l].x=-150 self.untitled[l].x=-300
self.untitled2[l].x=-150 self.untitled2[l].x=-300
self.lock[l].x=-150 self.lock[l].x=-300
self.levels[l].update(0)
continue continue
ele=worlds[world][l] ele=worlds[world][l]
self.levels[l].active=(world,l) in finished or debug==2 self.levels[l].active=(world,l) in finished or debug==2
@ -488,6 +492,8 @@ class menu(pyglet.window.Window):
if 'obj' in locals() and ele['description']==obj['description']: if 'obj' in locals() and ele['description']==obj['description']:
self.special.x=ele['_xx'] self.special.x=ele['_xx']
self.special.y=ele['_yy'] self.special.y=ele['_yy']
if 'obj' not in locals():
self.special.x=-300
def drawLaser(self,x1,y1,x2,y2,width,power,color,randomize): def drawLaser(self,x1,y1,x2,y2,width,power,color,randomize):
while(width > 0): while(width > 0):
@ -530,14 +536,31 @@ class menu(pyglet.window.Window):
src=(src[0]+int(self.sizes[world][0]*math.cos(angle)),src[1]+int(self.sizes[world][1]*math.sin(angle))) src=(src[0]+int(self.sizes[world][0]*math.cos(angle)),src[1]+int(self.sizes[world][1]*math.sin(angle)))
if world==n[0]: if world==n[0]:
dest=(dest[0]-int(self.sizes[world][0]*math.cos(angle)),dest[1]-int(self.sizes[world][1]*math.sin(angle))) dest=(dest[0]-int(self.sizes[world][0]*math.cos(angle)),dest[1]-int(self.sizes[world][1]*math.sin(angle)))
if n in finished: if n in finished or debug==2:
params=(random.randint(0,8),20,self.colors[world],12) params=(random.randint(0,8),20,self.colors[world],12)
else: else:
params=(2,20,[40,40,40],0) params=(2,20,[40,40,40],0)
self.drawLaser(src[0],src[1],dest[0],dest[1],params[0],params[1],params[2],params[3]) self.drawLaser(src[0],src[1],dest[0],dest[1],params[0],params[1],params[2],params[3])
if debug==2: if debug==2 and world==n[0]:
if dest[0]-src[0]!=0:
angle=math.atan(float(dest[1]-src[1])/float(dest[0]-src[0]))
else:
angle=270*3.14/180.0
if dest[0]-src[0]<0:
angle=angle+180*3.14/180.0
self.drawLaser(dest[0],dest[1],dest[0]-int(20*math.cos(angle+30*3.14/180)),dest[1]-int(20*math.sin(angle+30*3.14/180)),params[0],params[1],params[2],params[3]) self.drawLaser(dest[0],dest[1],dest[0]-int(20*math.cos(angle+30*3.14/180)),dest[1]-int(20*math.sin(angle+30*3.14/180)),params[0],params[1],params[2],params[3])
self.drawLaser(dest[0],dest[1],dest[0]-int(20*math.cos(angle-30*3.14/180)),dest[1]-int(20*math.sin(angle-30*3.14/180)),params[0],params[1],params[2],params[3]) self.drawLaser(dest[0],dest[1],dest[0]-int(20*math.cos(angle-30*3.14/180)),dest[1]-int(20*math.sin(angle-30*3.14/180)),params[0],params[1],params[2],params[3])
if world>0:
for ele in worlds[world-1]:
for n in ele['link']:
if n[0]==world:
src=(int(0),int(worlds[n[0]][n[1]]['_yy']/768.0*self.height+self.images[0].height/2))
dest=(int(worlds[n[0]][n[1]]['_xx']+self.images[0].width/2),int(worlds[n[0]][n[1]]['_yy']/768.0*self.height+self.images[0].height/2))
if n in finished or debug==2:
params=(random.randint(0,8),20,self.colors[world],12)
else:
params=(2,20,[40,40,40],0)
self.drawLaser(src[0],src[1],dest[0],dest[1],params[0],params[1],params[2],params[3])
if type(self.selected) is tuple: if type(self.selected) is tuple:
if self.selected[0]==world: if self.selected[0]==world:
@ -562,6 +585,7 @@ class menu(pyglet.window.Window):
def on_mouse_press_menu_1(self, state): def on_mouse_press_menu_1(self, state):
global world global world
if world>0: world-=1 if world>0: world-=1
print len(worlds)
self.update() self.update()
def on_mouse_press_menu_0(self, state): def on_mouse_press_menu_0(self, state):
@ -638,29 +662,28 @@ class menu(pyglet.window.Window):
del worlds[world][n] del worlds[world][n]
self.update() self.update()
for ele in worlds[world]: for ele in worlds[world]:
n=0 l=0
while n<len(ele['link']): while l<len(ele['link']):
l0=ele['link'][n][0] element=ele['link'][l][1]
l1=ele['link'][n][1] if ele['link'][l][0]==world:
if l0>n: if element>n: element-=1
l0-=1 if element!=n:
if l1>n: ele['link'][l]=(ele['link'][l][0],element)
l1-=1 l+=1
if l0!=n and l1!=n: else:
ele['link'][n]=(l0,l1) del ele['link'][l]
n+=1
else: else:
del ele['link'][n] l+=1
return return
def on_mouse_drag(self,x , y, dx, dy, buttons, modifiers): def on_mouse_drag(self,x , y, dx, dy, buttons, modifiers):
global thex,they,world global thex,they,world,worlds
if debug<2: if debug<2:
return return
if type(self.selected) is tuple: if type(self.selected) is tuple:
thex=x thex=x
they=y they=y
if x>self.width-20: if x>self.width-20 and world+1<len(worlds):
world=+1 world=+1
self.update() self.update()
@ -705,6 +728,11 @@ pyglet.font.add_file('font/OpenDyslexicAlta.otf')
pyglet.font.add_file('font/Mecanihan.ttf') pyglet.font.add_file('font/Mecanihan.ttf')
pyglet.font.add_file('font/Vademecum.ttf') pyglet.font.add_file('font/Vademecum.ttf')
pyglet.font.add_file('font/LiberationMono-Regular.ttf') pyglet.font.add_file('font/LiberationMono-Regular.ttf')
ambiance = pyglet.media.Player()
ambiance.queue(pyglet.resource.media("music/ambiance1.mp3"))
ambiance.volume=0.4
ambiance.eos_action='loop'
ambiance.play()
menu_principal = menu() menu_principal = menu()
menu_principal.set_minimum_size(1024, 768) menu_principal.set_minimum_size(1024, 768)
glEnable(GL_BLEND); glEnable(GL_BLEND);

BIN
dbdata

Binary file not shown.

2
dbsrc
View File

@ -1158,7 +1158,7 @@ del
[0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0]]}]] [0, 0, 0, 0, 0, 0, 0, 0, 0]]}],[],[],[]]
art={ art={
196608: {'nrj': 0, 'cout': 0, 'temp': 0, 'nom': 'null', 'color': [0, 0, 0], 'text': '', 'value': 196608, 'cat': 0, 'tech': 0, 'activable': False}, 196608: {'nrj': 0, 'cout': 0, 'temp': 0, 'nom': 'null', 'color': [0, 0, 0], 'text': '', 'value': 196608, 'cat': 0, 'tech': 0, 'activable': False},
196609: {'nrj': 0, 'cout': 60, 'temp': 0.05, 'nom': 'positiver', 'color': [255, 0, 0], 'text': '+', 'value': 196609, 'cat': 1, 'tech': 2, 'activable': True}, 196609: {'nrj': 0, 'cout': 60, 'temp': 0.05, 'nom': 'positiver', 'color': [255, 0, 0], 'text': '+', 'value': 196609, 'cat': 1, 'tech': 2, 'activable': True},