Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame, sys, os, random, time
- pygame.init()
- clock = pygame.time.Clock()
- SCREEN_WIDTH = 414
- SCREEN_HEIGHT = 736
- WHITE = (255, 255, 255)
- RED = (255, 0, 0)
- COLORS = [WHITE, RED]
- FPS = 60
- class Timer:
- def __init__(self, countdown, start=True):
- self.countdown = countdown
- if start:
- self.start_timer()
- def start_timer(self):
- self.current_time = pygame.time.get_ticks()
- self.last_update = pygame.time.get_ticks()
- def check_time(self):
- self.current_time = pygame.time.get_ticks()
- if self.current_time - self.last_update > self.countdown:
- self.last_update = self.current_time
- return True
- else:
- return False
- def get_percentage(self):
- return (self.current_time - self.last_update) / self.countdown
- class Player_Shot:
- def __init__(self, screen, x, y):
- self.screen = screen
- self.x = x
- self.y = y
- #self.image = pygame.draw.circle(screen, BLACK, (self.x, self.y), 80, 1)
- def update(self):
- self.y -= 10
- pygame.draw.circle(self.screen, WHITE, (self.x, self.y), 10, 10)
- def shoot(self):
- pygame.draw.circle(self.screen, WHITE, (self.x, self.y), 10)
- class Player:
- def __init__(self, screen):
- self.screen = screen
- self.image = pygame.image.load(os.path.join('graphics', 'player.png'))
- self.x = 300
- self.y = 300
- self.shots = []
- self.shooting_timer = Timer(250)
- def create_shot(self):
- if self.shooting_timer.check_time():
- s = Player_Shot(self.screen, self.x, self.y)
- self.shots.append(s)
- def update_shots(self):
- for f in self.shots:
- f.update()
- def get_input(self):
- key = pygame.key.get_pressed()
- if key[pygame.K_LEFT]:
- self.x -= 5
- if key[pygame.K_RIGHT]:
- self.x += 5
- if key[pygame.K_UP]:
- self.y -= 5
- if key[pygame.K_DOWN]:
- self.y += 5
- def run(self):
- self.image = pygame.transform.scale(self.image, (100, 100))
- self.create_shot()
- self.update_shots()
- self.screen.blit(self.image, (self.x, self.y))
- class Level_1:
- def __init__(self, screen):
- self.screen = screen
- self.p1 = Player(self.screen)
- def get_input(self):
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- pygame.quit()
- sys.exit()
- def run(self):
- while True:
- self.get_input()
- self.p1.get_input()
- self.screen.fill((0,0,0))
- self.p1.run()
- pygame.display.update()
- clock.tick(60)
- class Start_Screen:
- def __init__(self, screen):
- self.screen = screen
- self.loop = 1
- self.faces = []
- self.start_button_size = (200,100)
- self.start_button_pos = (100,300)
- self.start_button_color = (152,24,68)
- self.start_button_rect = pygame.Rect(100, 300, 200, 100)
- self.start_button_sound = pygame.mixer.Sound(os.path.join('sounds', 'start.wav'))
- self.level_1 = Level_1(self.screen)
- self.start_screen_image = pygame.image.load(os.path.join('graphics', 'start_screen.png'))
- self.title_font = pygame.font.Font("fonts/joystix_monospace.ttf", 24)
- self.title_text = self.title_font.render('KAMPUNGAN KRUSHER', True, (255, 255, 255))
- self.title_text_rect = self.title_text.get_rect()
- self.title_text_x = self.screen.get_rect().centerx - (self.title_text.get_width() /2)
- self.title_text_y = 450
- self.start_text_font = pygame.font.Font("fonts/joystix_monospace.ttf", 20)
- self.start_text = self.start_text_font.render('- TAP TO START -', True, (255, 255, 255))
- self.start_text_rect = self.start_text.get_rect()
- self.start_text_x = self.screen.get_rect().centerx - (self.start_text.get_width() /2)
- self.start_text_y = (SCREEN_HEIGHT - self.start_text.get_height()) - 200
- self.start_text_color = COLORS[0]
- self.start_text_color_timer = 0.05 * FPS
- self.developer_text_font = pygame.font.Font("fonts/joystix_monospace.ttf", 14)
- self.developer_text = self.developer_text_font.render('CREATED BY HOMEMADEPIZZA', True, (255, 255, 255))
- self.developer_text_rect = self.developer_text.get_rect()
- self.developer_text_x = self.screen.get_rect().centerx - (self.developer_text.get_width() /2)
- self.developer_text_y = (SCREEN_HEIGHT - self.developer_text.get_height()) - 50
- def get_input(self):
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- pygame.quit()
- sys.exit()
- if event.type == pygame.MOUSEBUTTONUP:
- mouse_pos = pygame.mouse.get_pos()
- print(mouse_pos)
- self.level_1.run()
- # if self.start_button_rect.collidepoint(mouse_pos):
- # print("start button tapped")
- # self.start_button_sound.play()
- # self.loop = 0
- # self.level_1.run()
- def update_text_color(self):
- if self.start_text_color == COLORS[0]:
- self.start_text_color = COLORS[1]
- self.start_text = self.start_text_font.render('- TAP TO START -', True, self.start_text_color)
- else:
- self.start_text_color = COLORS[0]
- self.start_text = self.start_text_font.render('- TAP TO START -', True, self.start_text_color)
- def update_faces(self):
- for f in self.faces:
- if f.y > 600:
- self.faces.remove(f)
- f.update()
- def run(self):
- clock = pygame.time.Clock()
- while self.loop == 1:
- self.get_input()
- self.screen.fill((0,0,0))
- self.start_text_color_timer -= 1
- if self.start_text_color_timer <= 0:
- self.update_text_color()
- self.start_text_color_timer = 0.05 * FPS
- self.screen.blit(self.start_screen_image, (0, 0))
- self.screen.blit(self.title_text, (self.title_text_x, self.title_text_y))
- self.screen.blit(self.start_text, (self.start_text_x, self.start_text_y))
- self.screen.blit(self.developer_text, (self.developer_text_x, self.developer_text_y))
- #pygame.draw.rect(self.screen, self.start_button_color, pygame.Rect(self.start_button_pos, self.start_button_size))
- pygame.display.update()
- clock.tick(60)
- class Setup:
- def __init__(self):
- self.resolution = (SCREEN_WIDTH, SCREEN_HEIGHT)
- self.screen = pygame.display.set_mode(self.resolution, 0, 32)
- #self.screen = pygame.display.set_mode(self.resolution, pygame.SCALED | pygame.FULLSCREEN)
- self.window_title = pygame.display.set_caption("Kampungan Krusher")
- self.start_screen = Start_Screen(self.screen);
- #self.screen = pygame.display.set_mode(self.resolution, 0, 32)
- def run(self):
- self.start_screen.run()
- game = Setup()
- game.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement