Example #1
0
 def __init__(self):
     
     self.running = True
     self.clock = pygame.time.Clock()
     
     self.initializeScreen()
     
     self.viewPositionX = 0
     self.viewPositionY = 0
     
     self.terrain = Terrain(40,40)
     self.population = Population(self.terrain)
     self.buildingPopulation = BuildingPopulation(self.terrain)
     self.powers = PowerPopulation()
     
     self.explosionTimer = 0;
Example #2
0
class Game():

    def __init__(self):
        
        self.running = True
        self.clock = pygame.time.Clock()
        
        self.initializeScreen()
        
        self.viewPositionX = 0
        self.viewPositionY = 0
        
        self.terrain = Terrain(40,40)
        self.population = Population(self.terrain)
        self.buildingPopulation = BuildingPopulation(self.terrain)
        self.powers = PowerPopulation()
        
        self.explosionTimer = 0;
        
        
    def initializeScreen(self):
        
        #Initialize Everything
        pygame.init()
        self.screen = pygame.display.set_mode((1024, 768))
        pygame.display.set_caption('Release the Kraken!')
        pygame.mouse.set_visible(1)
    
        #Create The Background
        self.background = pygame.Surface(self.screen.get_size())
        self.background = self.background.convert()
        self.background.fill((250, 250, 250))
        
    def handleInput(self):
            
        kraken = 0    
            
        for event in pygame.event.get():
            if event.type == QUIT:
                self.running = False
                
        self.explosionTimer += TIME_QUANTUM
            
        if(pygame.mouse.get_pressed()[0] and self.explosionTimer > 500):
            self.powers.addPower(Explosion((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30))
            self.explosionTimer = 0
                
        if(pygame.key.get_pressed()[K_k]):
            self.population.addCreatureKraken((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, Kraken((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30), self.terrain)  
            phaser_sound = pygame.mixer.Sound("art/release.ogg")
            channel = phaser_sound.play()    
           
            if kraken < 1:
                pygame.mixer.music.load("sfx/carmina.ogg")
                pygame.mixer.music.play()
                kraken += 1
                
       
        if(pygame.key.get_pressed()[K_q]):
            self.population.addCreature((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, Peasant((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, 0), self.terrain)
        if(pygame.key.get_pressed()[K_w]):
            self.population.addCreature((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, Swordsman((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, 0), self.terrain)
        if(pygame.key.get_pressed()[K_e]):
            self.population.addCreature((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, Archer((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, 0), self.terrain)
        if(pygame.key.get_pressed()[K_r]):
            self.population.addCreature((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, Wizard((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, 0), self.terrain)
       
        if(pygame.key.get_pressed()[K_a]):
            self.population.addCreature((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, Peasant((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, 1), self.terrain)
        if(pygame.key.get_pressed()[K_s]):
            self.population.addCreature((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, Swordsman((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, 1), self.terrain)
        if(pygame.key.get_pressed()[K_d]):
            self.population.addCreature((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, Archer((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, 1), self.terrain)
        if(pygame.key.get_pressed()[K_f]):
            self.population.addCreature((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, Wizard((-self.viewPositionX + pygame.mouse.get_pos()[0])/30, (-self.viewPositionY + pygame.mouse.get_pos()[1])/30, 1), self.terrain)
       
       
        if(pygame.key.get_pressed()[K_UP]):
            self.viewPositionY+=8
        if(pygame.key.get_pressed()[K_DOWN]):
            self.viewPositionY-=8
        if(pygame.key.get_pressed()[K_LEFT]):
            self.viewPositionX+=8
        if(pygame.key.get_pressed()[K_RIGHT]):
            self.viewPositionX-=8

            
        
    def run(self):
            
        time = pygame.time.get_ticks()
        pygame.mixer.music.load("art/rose.ogg")
        pygame.mixer.music.play()
        
        while self.running:
                           
            while(time < pygame.time.get_ticks()):   
                            
                self.handleInput()
                
                self.population.process(self.powers, self.buildingPopulation, self.terrain)
                self.buildingPopulation.process(self.terrain, self.population)
                self.powers.process(self.terrain, self.population, self.buildingPopulation)
                
                time += TIME_QUANTUM
                        
            
            self.screen.blit(self.background, (0,0))
            
            self.terrain.paint(self.screen, (self.viewPositionX, self.viewPositionY))
            self.buildingPopulation.paint(self.screen, (self.viewPositionX, self.viewPositionY))
            self.population.paint(self.screen, (self.viewPositionX, self.viewPositionY))
            self.powers.paint(self.screen, (self.viewPositionX, self.viewPositionY))
            
            pygame.display.flip()