forked from jorenver/LP_Proyecto_Python
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEscenarioTres.py
154 lines (138 loc) · 3.88 KB
/
EscenarioTres.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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
from Escenario import *
from Jugador import*
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from threading import *
from time import sleep
from PyQt4 import QtCore
import sys
import math
from Duelo import *
class EscenarioTres(Escenario):
def __init__(self,*args):
Escenario.__init__(self,*args)
self.mover=True #sirve para saber si el jugador se puede mover
self.todoTerreno=False
self._iniPendiente=500
self._finPendiente=755
self.hiloCaida=None
self.hiloSalto=None
self.piso1=430
self.piso2=290
self.Duelo=None
self.jugador=Jugador(20,430,Qt.white,5)
self.setWindowTitle("Escenario Tres")
def dibujarCofres(self,paint):
paint.setBrush(Qt.red)
paint.drawRect(40,413,35,35)
paint.drawRect(370,413,35,35)
def paintEvent(self, event):
paint = QPainter()
paint.begin(self)
paint.setRenderHint(QPainter.Antialiasing)
paint.setBrush(Qt.white) # cambiar el color
paint.drawRect(event.rect())
imagen=QImage("fondo3","jpg")
center=QPoint(0,0)
paint.drawImage(center,imagen)
self.dibujarCofres(paint)
paint.setBrush(self.jugador.getColor())
center = QPoint(self.jugador.getPosX(), self.jugador.getPosY())
paint.drawEllipse(center,self.jugador.getRadio(),self.jugador.getRadio())
paint.end()
#se define el movimiento de el jugador
def keyPressEvent(self,e):
if self.mover and e.key()==QtCore.Qt.Key_Right:
x=self.jugador.getPosX()
if (x>= 850) :
self.mover = False
self.Duelo=Duelo(self.jugador)
elif(self.todoTerreno and x>self._iniPendiente and x<self._finPendiente):
self.jugador.avanzar()
self.jugador.acender(2.65)
elif x<=self._iniPendiente or x>=self._finPendiente:
self.jugador.avanzar()
if x>=100 and x<=200:
self.hiloCaida=HiloCaida(self,1)
self.hiloCaida.start()
else:
self.repaint()
if self.mover and e.key()==QtCore.Qt.Key_Left:
x=self.jugador.getPosX()
if(x>self._iniPendiente and x<self._finPendiente):
self.jugador.retroceder()
self.jugador.descender(2.65)
elif x<=self._iniPendiente or x>=self._finPendiente:
self.jugador.retroceder()
if x>=200 and x<=300:
self.hiloCaida=HiloCaida(self,-1)
self.hiloCaida.start()
else:
self.repaint()
if self.mover and e.key()==QtCore.Qt.Key_X:
if(self.jugador.getPosX()>=40 and self.jugador.getPosX()<=75):
self.hiloSalto=HiloSalto(self)
self.hiloSalto.start()
if(self.jugador.getPosX()>=370 and self.jugador.getPosX()<=420):
self.todoTerreno=True
self.jugador.setColor(Qt.black)
self.repaint()
class HiloCaida(Thread):
def __init__(self,esc,dir):
Thread.__init__(self)
self.dir=dir
self.escenario=esc
def run(self):
self.escenario.mover=False
yo= self.escenario.jugador.getPosY()
xo= self.escenario.jugador.getPosX()
y=0
t=0
while True:
if (y<=690):
xo=xo+15*(self.dir)
y=yo+9.8*t
t+=4
self.escenario.jugador.setPosY(y)
self.escenario.jugador.setPosX(xo)
self.escenario.repaint()
sleep(0.25)
else:
if(self.escenario.jugador.getVidas()==1):
print "perdio"
else:
self.escenario.jugador.disminuirVidas()
self.escenario.jugador.setPosX(20)
self.escenario.jugador.setPosY(430)
self.escenario.repaint()
self.escenario.mover=True
break
class HiloSalto(Thread):
def __init__(self,esc):
Thread.__init__(self)
self.escenario=esc
def run(self):
self.escenario.mover=False
yo= self.escenario.jugador.getPosY()
xo= self.escenario.jugador.getPosX()
y=self.escenario.jugador.getPosY()
#y=0
while True:
if (xo<=205):
yo=yo-9.8
elif (yo<y):
yo=yo+9.8
else:
self.escenario.mover=True
break
xo=xo+30
self.escenario.jugador.setPosY(yo)
self.escenario.jugador.setPosX(xo)
self.escenario.repaint()
print yo ," ", y
sleep(0.25)
if __name__=="__main__":
app=QApplication(sys.argv)
escenario_Tres=EscenarioTres()
escenario_Tres.show()
sys.exit(app.exec_())