Advertisement
Guest User

4 files

a guest
Sep 18th, 2012
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.24 KB | None | 0 0
  1. #game.py
  2.  
  3.  
  4. import pygame
  5. from pygame.color import *
  6. from player import *
  7. from pygame.event import *
  8.  
  9. settings = [pygame.K_a,pygame.K_d,pygame.K_w,pygame.K_s,pygame.K_SPACE]
  10.  
  11. left_key = settings[0]
  12. right_key = settings[1]
  13. up_key = settings[2]
  14. down_key = settings[3]
  15. shoot_key = settings[4]
  16.  
  17. class game:
  18.     def render(self):
  19.         return
  20.     def update(self):
  21.         return
  22.     def handle_events(self, event):
  23.         keys = pygame.key.get_pressed()
  24.         if event.type == pygame.KEYDOWN: #if key pressed
  25.             if keys[shoot_key]:
  26.                 self.player.shoot()
  27.        
  28.         return
  29.    
  30. class ShootThings(game):
  31.    
  32.     def __init__(self):
  33.         self.screen = pygame.display.get_surface()
  34.         self.player = player()
  35.         return
  36.    
  37.     def render(self):
  38.         draw_entity(self.screen,self.player)
  39.         self.player.draw(self.screen)
  40.         return
  41.    
  42.     def update(self, dt):
  43.         keys = pygame.key.get_pressed()
  44.        
  45.         self.player.update(dt)
  46.        
  47.         if keys[left_key]:
  48.             self.player.position.x -= dt*self.player.speed
  49.         elif keys[right_key]:
  50.             self.player.position.x += dt*self.player.speed
  51.         if keys[up_key]:
  52.             self.player.position.y -= dt*self.player.speed
  53.         elif keys[down_key]:
  54.             self.player.position.y += dt*self.player.speed
  55.            
  56.         return
  57.  
  58. #main.py
  59.  
  60. import pygame,sys,os
  61. from pygame.event import *
  62. from pygame.locals import *
  63. from pygame.draw import *
  64.  
  65. from game import *
  66. from player import *
  67.  
  68.  
  69. def main():
  70.     pygame.init()
  71.     pygame.display.set_mode((640,480))
  72.    
  73.     running = 0
  74.    
  75.     game = ShootThings()
  76.    
  77.     gameclock = pygame.time.Clock()
  78.    
  79.    
  80.     while running==0:
  81.         pygame.display.set_caption(str(gameclock.get_fps()))
  82.         events = pygame.event.get()
  83.         for event in events:
  84.             if event.type == QUIT:
  85.                 running = 1
  86.             else:
  87.                 game.handle_events(event)
  88.         pygame.draw.rect(pygame.display.get_surface(),Color(0,0,0),(0,0,640,480))
  89.         game.render()
  90.         game.update(gameclock.get_time())
  91.         pygame.display.flip()
  92.         gameclock.tick()
  93.    
  94.    
  95.     return
  96.            
  97.            
  98. main()
  99.  
  100. #vec2.py
  101.  
  102. import math
  103.  
  104. class vec2:
  105.     def __init__(self,x = 0.0, y = 0.0):
  106.         self.x = x
  107.         self.y = y
  108.        
  109.     def __iadd__(self,other):
  110.         if not isinstance(other,self.__class__):
  111.             return NotImplemented
  112.         self.x += other.x
  113.         self.y += other.y
  114.    
  115.     def __add__(self,other):
  116.         if not isinstance(other, self.__class__):
  117.             return NotImplemented
  118.         result = self.__class__(self.x, self.y)
  119.         result.x += other.x
  120.         result.y += other.y
  121.         return result
  122.        
  123.     def __sub__(self,other):
  124.         if not isinstance(other, self.__class__):
  125.             return NotImplemented
  126.         result = self.__class__(self.x, self.y)
  127.         result.x -= other.x
  128.         result.y -= other.y
  129.         return result
  130.        
  131.     def __mul__(self,scalar):
  132.         if not isinstance(scalar, self.__class__):
  133.             return NotImplemented
  134.         result = self.__class__(self.x, self.y)
  135.         result.x *= scalar.x
  136.         result.y *= scalar.y
  137.         return result
  138.        
  139.     def length(self):
  140.         return math.sqrt(self.x*self.x + self.y*self.y)
  141.        
  142.  
  143. #player.py
  144.  
  145.  
  146. from vec2 import vec2
  147. import pygame.draw
  148. from pygame.color import *
  149. from pygame.time import *
  150.  
  151. def draw_entity(screen, ent):
  152.     pygame.draw.rect(screen, ent.color, (ent.position.x,ent.position.y, ent.size.x,ent.size.y))
  153.     return
  154.  
  155. class entity:
  156.     def __init__(self):
  157.         self.position = vec2()
  158.         self.size = vec2()
  159.         self.color = Color(255,255,255)
  160.         self.velocity = vec2()
  161.    
  162.     def get_rect(self):
  163.         return pygame.Rect(self.position.x,self.position.y,self.size.x,self.size.y)
  164.    
  165. class particle(pygame.sprite.DirtySprite,entity):
  166.    
  167.     def __init__(self,position,velocity):
  168.         pygame.sprite.DirtySprite.__init__(self)
  169.         entity.__init__(self)
  170.         self.position = position
  171.         self.velocity = velocity
  172.        
  173.     def update(self,dt):
  174.         self.position += self.velocity * dt
  175.  
  176.  
  177.    
  178. class player(entity):
  179.     speed = 0.1
  180.     shoot_timer = Clock()
  181.     elapsed_time = 0
  182.     shoot_speed = 500
  183.     particlegroup = pygame.sprite.Group()
  184.     particles = []
  185.    
  186.     def __init__(self):
  187.         entity.__init__(self)
  188.         self.size.x = 15.0
  189.         self.size.y = 15.0
  190.         self.position.x = 320.0-self.size.x/2.0
  191.         self.position.y = 240.0-self.size.y
  192.        
  193.     def draw(self,screen):
  194.         pygame.draw.rect(screen,Color(255,255,255),(self.position.x,self.position.y,self.size.x,self.size.y))
  195.    
  196.     def shoot(self):
  197.         if(self.elapsed_time > self.shoot_speed):
  198.             self.particles.append(particle((self.position),(0.0,-1.0)))
  199.             self.elapsed_time = 0
  200.            
  201.     def update(self, dt):
  202.         self.shoot_timer.tick()
  203.        
  204.         self.elapsed_time += dt
  205.        
  206.         for p in self.particles:
  207.             p.update(dt)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement