Me ayudan con este código en pygame
Publicado por Pablo (1 intervención) el 30/01/2014 01:40:54
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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#IMPORTACIONES
import pygame, sys
from pygame.locals import*
from random import choice, randint, random
#INICIAR
pygame.init()
#CONSTANTES
pantalla=pygame.display.set_mode((800,450))
fondo=pygame.image.load("img/fondo pong.jpg")
fondo2=pygame.image.load("img/fondo pong 2.png")
velocidad=(0,0)
fps=30
fpstime=pygame.time.Clock()
#LA RAQUETA
class raqueta:
def __init__(self,pos):
self.image=pygame.image.load("img/raqueta.png")
self.rect=self.image.get_rect()
self.rect=self.rect.move(pos)
if self.rect.right>500:
self.image=pygame.transform.flip(self.image,True,False)
#LA PELOTA
class pelota:
def __init__(self):
self.image=pygame.image.load("img/Esfera naranja.png")
self.rect=self.image.get_rect()
self.rect=self.rect.move((390,245))
self.velocidad=(randint(-31,-12) or randit(11,32),randint(-31,-12) or randit(11,32))
def choque_paredes(self):
a=self.velocidad
if self.rect.top<100:
if a[1]<0:
a=list(a)
a[1]=-a[1]-1
if a[0]>0:
a[0]=a[0]-1
elif a[0]<0:
a[0]=a[0]+1
self.velocidad=tuple(a)
if self.rect.bottom>410:
if a[1]>0:
a=list(a)
a[1]=-a[1]+1
if a[0]>0:
a[0]=a[0]-1
elif a[0]<0:
a[0]=a[0]+1
self.velocidad=tuple(a)
#SOLO MIENTRAS SE PRUEBA, REBOTE LATERAL
if self.rect.right>800:
if a[0]>0:
a=list(a)
a[0]=-a[0]
self.velocidad=tuple(a)
if self.rect.right<0:
if a[0]<0:
a=list(a)
a[0]=-a[0]
self.velocidad=tuple(a)
#BORRAR LO ANTERIOR
def choque_raqueta(self,raquetas):
a=self.velocidad
for raqueta in raquetas:
if self.rect.colliderect(raqueta) and (abs(self.rect.centerx-400)<abs(raqueta.rect.centerx-400)):
b=raqueta.rect.centery-self.rect.centery
a=list(a)
a[0]=-a[0]*1.2
a[1]=a[1]+b*0.5
self.velocidad=tuple(a)
#SE CREAN LOS OBJETOS
bola=pelota()
pos=(0,230) #pos es la posicion inicial de cada raqueta
raqueta1=raqueta(pos)
pos=(690,230)
raqueta2=raqueta(pos)
raquetas=[raqueta1,raqueta2]
#FUNCION QUE MUEVE LAS RAQUETAS
def controles(pulsada,raquetas):
if pulsadas[K_UP] and raquetas[1].rect.top>100:
raquetas[1].rect.move(0,-5)
if pulsadas[K_w] and raquetas[0].rect.top>100:
raquetas[0].rect.move(0,-5)
if pulsadas[K_DOWN] and raquetas[1].rect.bottom<410:
raquetas[1].rect.move(0,5)
if pulsadas[K_s] and raquetas[0].rect.bottom<410:
raquetas[0].rect.move(0,5)
#BUCLE PRINCIPAL
ciclo=True
while ciclo:
for evento in pygame.event.get():
if evento.type==QUIT:
pygame.quit()
sys.exit()
pulsadas=pygame.key.get_pressed()
bola.choque_paredes()
controles(pulsada,raquetas)
bola.choque_raqueta(raquetas)
if bola.velocidad[0]>60:
bola.velocidad=(60,bola.velocidad[1]) #VELOCIDAD MAXIMA
bola.rect=bola.rect.move(bola.velocidad)
pantalla.blit(fondo,(0,0))
pantalla.blit(bola.image,bola.rect)
pantalla.blit(raqueta1.image,raqueta1.rect)
pantalla.blit(raqueta2.image,raqueta2.rect)
pantalla.blit(fondo2,(0,0))
pygame.display.update()
fpstime.tick(fps)
Es un pong
No retorna ningún error, pero las raquetas no se mueven al presionar las teclas.
Aun falta terminarlo
Gracias :D es mi primer juego!
Valora esta pregunta


0