Mi primer juego en Pygame : UrbanWar

Iniciado por BigBear, Febrero 20, 2013, 09:15:37 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Febrero 20, 2013, 09:15:37 PM Ultima modificación: Febrero 20, 2013, 10:51:30 PM por Doddy
Bue , recien acabo de terminar mi primer juego en Pygame , para hacerlo me base en el famoso juego Rock Blaster hecho por Jeff Walters.
El juego trata de sobrevivir 1 minuto en un barrio peligroso , comienzan a llover ladrones armados por todos lados y el protagonista tiene una M4 con municion infinita.
A grandes rasgos el juego esta basado en la vida real solo que en este caso no todos tenemos una M4 xDDD.

Una imagen del juego :



EL codigo :

Código: python

#!usr/bin/python
#UrbanWar 0.1
#Coded By Doddy H in the year 2013
#My first game in Pygame
#Based in the game Rock Blaster made by Jeff Walters
#Thanks to Jeff Walters

import pygame
import sys,os,time
from pygame.locals import *
import random

tiempoportiro = 1

class theboss(pygame.sprite.Sprite):

def __init__(self,esto):
  pygame.sprite.Sprite.__init__(self,self.mas)
  self.image = pygame.image.load("archivos/ladron.gif")
  self.rect = self.image.get_rect( center = (random.randint(0,860),0))
  self.cada = esto

def update(self):
  self.rect.move_ip(self.cada,3)
 
class protagonista(pygame.sprite.Sprite):

def __init__(self):
  pygame.sprite.Sprite.__init__(self,self.mas)
  self.image = pygame.image.load("archivos/protagonista.gif")
  self.rect = self.image.get_rect(center = (860,640))

def update(self):
  global tiempoportiro
  if pygame.key.get_pressed()[K_LEFT]:
   self.rect.move_ip(-5,0)
  if pygame.key.get_pressed()[K_RIGHT]:
   self.rect.move_ip(5,0)
  if pygame.key.get_pressed()[K_SPACE] and tiempoportiro <= 0:
   pygame.mixer.Sound("archivos/disparo.wav").play()
   tiempoportiro = 25
   cartucho(self.rect.midtop)
  tiempoportiro -= 1
  self.rect.clamp_ip(Rect(0,0,860,640))

class chau(pygame.sprite.Sprite):

def __init__(self, actor):
  pygame.sprite.Sprite.__init__(self,self.mas)
  self.image = pygame.image.load("archivos/explo.gif")
  self.rect = self.image.get_rect(center=actor.rect.center)
  self.tie = 10

def update(self):
  self.tie = self.tie - 2
  if self.tie <= 0:
   self.kill()
   
class cartucho(pygame.sprite.Sprite):

def __init__(self,toyaca):

  pygame.sprite.Sprite.__init__(self,self.mas)
  self.image = pygame.image.load("archivos/bala.gif")
  self.rect = self.image.get_rect(midbottom = toyaca)

def update(self):
  self.rect.move_ip(-30,-50)
  if not Rect(0,0,860,640).contains(self.rect):
   self.kill()
 
pygame.init()

mil = 0
theboss_cadacuanto = 30

cro = pygame.time.Clock()

pantalla = pygame.display.set_mode((860,640),0,32)
#pantalla = pygame.display.set_mode((860,640),FULLSCREEN) # FULLSCREEN

fondo = pygame.image.load("archivos/callejon.jpg")
pygame.display.set_caption("UrbanWar 0.1")
pygame.mouse.set_visible(False)

protagonistamas = pygame.sprite.Group()

protagonista.mas = protagonistamas
protagonista = protagonista()

thebossmas = pygame.sprite.Group()
theboss.mas = thebossmas

cartuchomas = pygame.sprite.Group()
cartucho.mas = cartuchomas

chaumas = pygame.sprite.Group()
chau.mas = chaumas

mostrar = pygame.font.Font("archivos/FreeSansBold.ttf",36)

pygame.mixer.Sound("archivos/menu.wav").play()
men = pygame.image.load("archivos/menu.jpg")
pantalla.blit(men,(0,0))
pygame.display.update()
time.sleep(9)

while 1:
           
mil += cro.tick()
casi = mil/1000
casi = 60 - casi

if casi == 0:
  win = pygame.image.load("archivos/mina.jpg")
  pantalla.blit(win,(0,0))
  pygame.display.update()
  time.sleep(10)
  sys.exit(1)

tiempoquefalta = mostrar.render("Remaining Time : "+str(casi),True,(255,0,0))             
pantalla.blit(tiempoquefalta,(500,20))
pygame.display.update()

pantalla.blit(fondo,(0,0))

protagonistamas.draw(pantalla)
protagonistamas.update()
thebossmas.draw(pantalla)
thebossmas.update()
cartuchomas.draw(pantalla)
cartuchomas.update()
chaumas.draw(pantalla)
chaumas.update()

if theboss_cadacuanto:
  theboss_cadacuanto = theboss_cadacuanto - 1
else:
  asteroid = theboss(random.randint(-6,5))
  theboss_cadacuanto = 20
 
for asteroid in pygame.sprite.groupcollide(cartuchomas,thebossmas,1,1):
  pygame.mixer.Sound("archivos/muerte.wav").play()
  chau(asteroid)
   
for asteroid in pygame.sprite.spritecollide(protagonista,thebossmas,1):
  pygame.mixer.Sound("archivos/muerte.wav").play()
  chau(protagonista)
  protagonista.kill()
 
  over = pygame.image.load("archivos/gameover.jpg")
  pantalla.blit(over,(0,0))
  pygame.display.update()
  time.sleep(10)
  sys.exit(1)

for event in pygame.event.get():
  if event.type == QUIT:
   break
  cap = pygame.key.get_pressed();
  if cap[K_ESCAPE]:
   sys.exit(1)

pygame.display.update()

#The End ?


Para bajar el codigo con las imagenes o el juego compilado lo pueden hacer de No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

Muy bueno!, a esto le añades arduino y te haces un bonito mando y podrias tirarte horas
Sigueme en Twitter : @Sankosk
Estos nuevos staff no tienen puta idea XD

Esta muy bueno yo apenas pude hacer el de memoria y colores xd me falta mucho para llegar a tu nivel.
Muy Bueno me gusto mucho...

Saludos..


Un Hacker sabe de la materia;
Un Lamer Cree Saberlo;
Y yo solo aprendo.