Giter VIP home page Giter VIP logo

proxy-game's Introduction

proxy-game

Game development code

import pygame import sys pygame.init()

WINDOW_WIDTH = 1200 WINDOW_HEIGHT = 600 FPS = 20 BLACK = (0, 0, 0) GREEN = (0, 255, 0) ADD_NEW_FLAME_RATE = 25 spider_img = pygame.image.load('cactus_bricks.png') spider_img_rect = spider_img.get_rect() spider_img_rect.left = 0 fire_img = pygame.image.load('fire_bricks.png') fire_img_rect = fire_img.get_rect() fire_img_rect.left = 0 CLOCK = pygame.time.Clock() font = pygame.font.SysFont('forte', 20)

canvas = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT)) pygame.display.set_caption('GhostAttack')

class Topscore: def init(self): self.high_score = 0 def top_score(self, score): if score > self.high_score: self.high_score = score return self.high_score

topscore = Topscore()

class Dragon: dragon_velocity = 10

def __init__(self):
    self.witch_img = pygame.image.load('witch.png')
    self.witch_img_rect = self.witch_img.get_rect()
    self.witch_img_rect.width -= 10
    self.witch_img_rect.height -= 10
    self.witch_img_rect.top = WINDOW_HEIGHT/2
    self.witch_img_rect.right = WINDOW_WIDTH
    self.up = True
    self.down = False

def update(self):
    canvas.blit(self.witch_img, self.witch_img_rect)
    if self.witch_img_rect.top <= spider_img_rect.bottom:
        self.up = False
        self.down = True
    elif self.witch_img_rect.bottom >= fire_img_rect.top:
        self.up = True
        self.down = False

    if self.up:
        self.witch_img_rect.top -= self.dragon_velocity
    elif self.down:
        self.witch_img_rect.top += self.dragon_velocity

class Flames: flames_velocity = 20

def __init__(self):
    self.flames = pygame.image.load('fireball2.png')
    self.flames_img = pygame.transform.scale(self.flames, (20, 20))
    self.flames_img_rect = self.flames_img.get_rect()
    self.flames_img_rect.right = dragon.witch_img_rect.left
    self.flames_img_rect.top = dragon.witch_img_rect.top + 30


def update(self):
    canvas.blit(self.flames_img, self.flames_img_rect)

    if self.flames_img_rect.left > 0:
        self.flames_img_rect.left -= self.flames_velocity

class Mario: velocity = 10

def __init__(self):
    self.spooky_img = pygame.image.load('spooky.png')
    self.spooky_img_rect = self.spooky_img.get_rect()
    self.spooky_img_rect.left = 20
    self.spooky_img_rect.top = WINDOW_HEIGHT/2 - 100
    self.down = True
    self.up = False

def update(self):
    canvas.blit(self.spooky_img, self.spooky_img_rect)
    if self.spooky_img_rect.top <= spider_img_rect.bottom:
        game_over()
        if SCORE > self.mario_score:
            self.mario_score = SCORE
    if self.spooky_img_rect.bottom >= fire_img_rect.top:
        game_over()
        if SCORE > self.mario_score:
            self.mario_score = SCORE
    if self.up:
        self.spooky_img_rect.top -= 10
    if self.down:
        self.spooky_img_rect.bottom += 10

def game_over(): pygame.mixer.music.stop() music = pygame.mixer.Sound('dies.wav') music.play() topscore.top_score(SCORE) game_over_img = pygame.image.load('end.png') game_over_img_rect = game_over_img.get_rect() game_over_img_rect.center = (WINDOW_WIDTH/2, WINDOW_HEIGHT/2) canvas.blit(game_over_img, game_over_img_rect) while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: pygame.quit() sys.exit() music.stop() game_loop() pygame.display.update()

def start_game(): canvas.fill(BLACK) start_img = pygame.image.load('start.png') start_img_rect = start_img.get_rect() start_img_rect.center = (WINDOW_WIDTH/2, WINDOW_HEIGHT/2) canvas.blit(start_img, start_img_rect) while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: pygame.quit() sys.exit() game_loop() pygame.display.update()

def check_level(SCORE): global LEVEL if SCORE in range(0, 10): spider_img_rect.bottom = 50 fire_img_rect.top = WINDOW_HEIGHT - 50 LEVEL = 1 elif SCORE in range(10, 20): spider_img_rect.bottom = 100 fire_img_rect.top = WINDOW_HEIGHT - 100 LEVEL = 2 elif SCORE in range(20, 30): spider_img_rect.bottom = 150 fire_img_rect.top = WINDOW_HEIGHT - 150 LEVEL = 3 elif SCORE > 30: spider_img_rect.bottom = 200 fire_img_rect.top = WINDOW_HEIGHT - 200 LEVEL = 4

def game_loop(): while True: global dragon dragon = Dragon() flames = Flames() mario = Mario() add_new_flame_counter = 0 global SCORE SCORE = 0 global HIGH_SCORE flames_list = [] pygame.mixer.music.load('theme.wav') pygame.mixer.music.play(-1, 0.0) while True: canvas.fill(BLACK) check_level(SCORE) dragon.update() add_new_flame_counter += 1

        if add_new_flame_counter == ADD_NEW_FLAME_RATE:
            add_new_flame_counter = 0
            new_flame = Flames()
            flames_list.append(new_flame)
        for f in flames_list:
            if f.flames_img_rect.left <= 0:
                flames_list.remove(f)
                SCORE += 1
            f.update()

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_UP:
                    mario.up = True
                    mario.down = False
                elif event.key == pygame.K_DOWN:
                    mario.down = True
                    mario.up = False
            if event.type == pygame.KEYUP:
                if event.key == pygame.K_UP:
                    mario.up = False
                    mario.down = True
                elif event.key == pygame.K_DOWN:
                    mario.down = True
                    mario.up = False

        score_font = font.render('Score:'+str(SCORE), True, GREEN)
        score_font_rect = score_font.get_rect()
        score_font_rect.center = (200, spider_img_rect.bottom + score_font_rect.height/2)
        canvas.blit(score_font, score_font_rect)

        level_font = font.render('Level:'+str(LEVEL), True, GREEN)
        level_font_rect = level_font.get_rect()
        level_font_rect.center = (500, spider_img_rect.bottom + score_font_rect.height/2)
        canvas.blit(level_font, level_font_rect)

        top_score_font = font.render('Top Score:'+str(topscore.high_score),True,GREEN)
        top_score_font_rect = top_score_font.get_rect()
        top_score_font_rect.center = (800, spider_img_rect.bottom + score_font_rect.height/2)
        canvas.blit(top_score_font, top_score_font_rect)

        canvas.blit(spider_img, spider_img_rect)
        canvas.blit(fire_img, fire_img_rect)
        mario.update()
        for f in flames_list:
            if f.flames_img_rect.colliderect(mario.spooky_img_rect):
                game_over()
                if SCORE > mario.mario_score:
                    mario.mario_score = SCORE
        pygame.display.update()
        CLOCK.tick(FPS)

start_game()

proxy-game's People

Contributors

anaidababu avatar arshad220 avatar theamalshibu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.