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 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.

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.