bueno espero que me puedan ayudar y muchas gracias.
el codigo esta a continuacion:
import sys,pygame
from pygame.locals import *
WIDTH = 800
HEIGHT = 600
#==============================================================
# Funcion para crear la matriz.
def matriz(fila,columna):
i=0
m=[]
while i<fila:
c=0
M=[]
while c<columna:
M+=[0]
c+=1
m+=[M]
i+=1
return m
def pytanks ():
pygame.init()
# creamos la ventana y le agregamos un titulo:
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("naves py")
fondo = pygame.image.load("data/fondo.jpg").convert()
# Indicamos la posicion de las "Surface" sobre la ventana
jugador1=pygame.image.load("data/comp.png").convert_alpha()
jugador2=pygame.image.load("data/jugador.png").convert_alpha()
bala1=pygame.image.load("data/bala1.png").convert_alpha()
bala2=pygame.image.load("data/bala2.png").convert_alpha()
x1=1
y1=250 # estas son las variables iniciales para el jugador 1 (en pixeles)
x2=680
y2=250 #y estas son las del jugador 2
MAT=matriz(WIDTH,HEIGHT)# aqui se dibuja la matriz que una lista de lista es
#igual a un pixel
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
x11=9
y11=249
x22=679
y22=249
b1=x1
b2=x2 #esto son las balas que dispararan desde donde se encuentre cualquier
#nave en el eje X.
b11=x11
b22=x22
while True:
MAT[x11][y11]=1
MAT[x22][y22]=2
press=pygame.key.get_pressed()
#para la nave del primer jugador
if press[K_w]:
#movimiento en la pantalla de pygame
y1-=1
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
#movimiento en matriz
y11-=1
MAT[x11][y11]=1
MAT[x11][y11+1]=0
#es necesario poner todos los blits ya que :
#1. si no ponemos fondo, se verá el rastro de la nave sobre el fondo
#2. si no ponemos jug..2, con presionar K_UP solo una vez, la nave
# de jug..2 desaparecerá de la pantalla.
#así que es mejor poner los blits de todas las imagenes y update
#la mayoria de las veces.
if press[K_s]:
y1+=1
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
y11+=1
MAT[x11][y11]=1
MAT[x11][y11-1]=0
if press[K_d]:
x1+=1
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
x11+=1
MAT[x11][y11]=1
MAT[x11-1][y11]=0
if press[K_a]:
x1-=1
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
x11-=1
MAT[x11][y11]=1
MAT[x11+1][y11]=0
if press[K_r]:
while MAT[b11][y11]!=2 and b11<WIDTH-20:
b1+=2
b11+=2
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
screen.blit(bala1,(b1,y1))
pygame.display.update()
MAT[b11][y11]=3
MAT[b11-2][y11]=0
if b11>=WIDTH-20:
b1=x1
b11=x11
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
screen.blit(bala1,(b1,y1))
pygame.display.update()
MAT[b11][y11]=3
MAT[b11-2][y11]=0
elif MAT[b11][y11]==2:
b1=x1
b11=x11
x2=680
x22=679
y2=250
y22=249
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
screen.blit(bala1,(b1,y1+15))
pygame.display.update()
MAT[b11][y11]=3
MAT[b11-2][y11]=0
#Condiciones para que la nave no salga de pantalla si en algun evento
# de movimiento intenta hacerlo.
if x11<=0: # si x11 (posicion en matriz) es menor o igual a 0#
x1=0 # x1 retorna a la posicion 0
x11=x11+1 #se suma una unidad a la posicion x11
screen.blit(fondo,(0,0)) #se actualizan todas las funciones de python
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
if y11<=0:
y1=0
y11=y11+1
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
if x11>=703:
x1=703
x11=x11-1
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
if y11>=530:
y1=530
y11=y11-1
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
#para la nave del segundo jugador
if press[K_UP]:
y2-=1
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
y22-=1
MAT[x22][y22]=2
MAT[x22][y22+1]=0
if press[K_DOWN]:
y2+=1
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
y22+=1
MAT[x22][y22]=2
MAT[x22][y22-1]=0
if press[K_RIGHT]:
x2+=1
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
x22+=1
MAT[x22][y22]=2
MAT[x22-1][y22]=0
if press[K_LEFT]:
x2-=1
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
x22-=1
MAT[x22][y22]=2
MAT[x22+1][y22]=0
if x22<=0:
x2=0
x22=x22+1
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
if x22>=699:
x2=699
x22=x22-1
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
if y22<=0:
y2=0
y22=y22+1
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
if y22>=533:
y2=533
y22=y22-1
screen.blit(fondo,(0,0))
screen.blit(jugador1,(x1,y1))
screen.blit(jugador2,(x2,y2))
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
if __name__ == "__main__":
pytanks()