Exemplo n.º 1
0
	def __init__(self,duel):
		Thread.__init__(self)
		self.duelo=duel
		self.stop=False
		
	def run(self):
		while True:
			if self.duelo.anchopintado<=0:
				self.duelo.anchopintado=498
				self.duelo.jugador.disminuirVidas()
				self.duelo.repaint()
				if self.duelo.jugador.vidas==0:	
					self.duelo.anchopintado=0
					self.duelo.repaint()
					break
			else:
				self.duelo.anchopintado-=5
				self.duelo.repaint()
			sleep(0.1)
			
			if self.stop:
				break
		
				
if __name__=="__main__":
	app=QApplication(sys.argv)
	jugador=Jugador(40,500,Qt.white,5)
	jugador.setNivel(2)
	Ventana_Duelo=Duelo(jugador)
	sys.exit(app.exec_())
Exemplo n.º 2
0
class EscenarioDos(Escenario):
	pisoUno=None
	pisoDos=None
	pisoTres=None
	nivel_piso_x=200 #separacion horizontal entre pisos
	nivel_piso_y=300 # altura de los pisos
	valor=0
	tam=0

	def __init__(self,*args): #constructor		
		Escenario.__init__(self,*args)
		self.mover=True
		color=QColor(0,0,155)		
		self.jugador=Jugador(0,Escenario.dimension_y-self.nivel_piso_y-50,color,10)#posicion inicial del jugador
		self.jugador.setRadio(50)
		self.jugador.setNivel(2)
		self.setWindowTitle("Escenario Dos")
		self.thread_pintarPasadizo=Hilo(self,Accion.pasadizo)
		self.estadoEscenario=EstadoEscenario.pasadizoOff

	def paintEvent(self, event):
		paint = QPainter()
		paint.begin(self)
		paint.setRenderHint(QPainter.Antialiasing)
		fondoEscenario=QImage("Fondo_Escenario_Dos","png")
		center=QPoint(0,0)
		paint.drawImage(center,fondoEscenario)
		self.dibujarPisos(paint)
		paint.setBrush(self.jugador.getColor())
		paint.drawEllipse(self.jugador.getPosX(),self.jugador.getPosY(),self.jugador.getRadio(),self.jugador.getRadio())
		paint.setBrush(Qt.green)
		paint.drawRect(self.tam,Escenario.dimension_y-self.nivel_piso_y,self.thread_pintarPasadizo.valor_X,10)#rectangulo que se mueve
		paint.end()

	def dibujarPisos(self,painter):
		self.tam=125 #ancho del piso
		valor_X=0 
		valor_Y=0
		pisoUno=QRect(0,Escenario.dimension_y-self.nivel_piso_y,self.tam,self.nivel_piso_y)
		pisoDos=QRect(self.tam,Escenario.dimension_y-20,self.nivel_piso_x,20)
		pisoTres=QRect(self.tam+self.nivel_piso_x,Escenario.dimension_y-self.nivel_piso_y,2*self.tam,self.nivel_piso_y)#piso tres es dos veces mas grande que piso Uno
		pisoCuatro=QRect(3*self.tam+self.nivel_piso_x+self.nivel_piso_x,Escenario.dimension_y-self.nivel_piso_y,2*self.tam,self.nivel_piso_y)#piso cuatro es dos veces mas grande que piso Uno
		painter.setBrush(Qt.green)
		painter.drawRect(pisoUno)
		painter.drawRect(pisoDos)
		painter.drawRect(pisoTres)
		painter.drawRect(pisoCuatro)
		#cajas de habilidad
		painter.setBrush(Qt.red)
		painter.drawRect(self.tam,Escenario.dimension_y-20-20,30,20)
		painter.drawRect(self.tam+self.nivel_piso_x+2*self.tam-30,Escenario.dimension_y-self.nivel_piso_y-20,30,20)

	def keyPressEvent(self,e):
		if self.mover==True and e.key()==QtCore.Qt.Key_Right:
			self.jugador.avanzar()
			self.repaint()# se vuelve a pintar el circulo con las nuevas coordenadas
			if self.estadoEscenario==EstadoEscenario.pasadizoOff and self.jugador.getPosX()>self.tam-self.jugador.getRadio()/2: #si el pasadizo esta cerrado jugador se cae al piso dos
					self.my_thread=Hilo(self,Accion.caida)
					self.mover=False #Bloquea el movimiento
					self.my_thread.start()

		if self.mover==True and e.key()==QtCore.Qt.Key_Left:
			self.jugador.retroceder()
			self.repaint()	

		if self.jugador.getPosY()>Escenario.dimension_y-self.nivel_piso_y and self.jugador.getPosX()< self.tam+30 and e.key()==QtCore.Qt.Key_X:
			self.mover=False #bloquea el movimiento
			self.hilo=Hilo(self,Accion.teletransportacion)
			self.hilo.start()

		if self.jugador.getPosX()== self.tam+self.nivel_piso_x+2*self.tam-30 and e.key()==QtCore.Qt.Key_Y:
			self.mover=False #bloquea el movimiento
			self.hilo=Hilo(self,Accion.salto)
			self.hilo.start()
		if self.jugador.getPosX()>3*self.tam+self.nivel_piso_x+self.nivel_piso_x:
			self.duelo=Duelo(self.jugador)


	def  activarPasadizo(self):
		self.mover==False #bloquea el movimiento
		self.thread_pintarPasadizo.start()