Python - Me ayudan con este código en pygame

 
Vista:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Me ayudan con este código en pygame

Publicado por juan (1 intervención) el 09/06/2014 13:34:15
No recoges el evento de pulsar tecla pygame.key.get_pressed()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar