파이썬 게임 프로젝트 1일차

이민기·2022년 4월 25일
0

파이썬 게임 프로젝트 1일차

import pygame  
import random
import os

#pygame 초기화
pygame.init() 

#색상 해상도 폰트 지정
BLACK = (0, 0, 0)
WHITE = (255,255,255)
resolution = [1280, 720]
screen = pygame.display.set_mode(resolution)

font = pygame.font.Font(None,30)

#점수 레벨 초기화
point = 0
level = 1

#게임 타이틀명
pygame.display.set_caption("좌절 금지")


#현재 시간값을 받아 온다.
clock = pygame.time.Clock()

#현재 틱값을 받아 온다.
set_time = pygame.time.get_ticks()

mob_list = []

speed_level = [1,5]

char = pygame.image.load('char.png')
char_size = pygame.Rect(char.get_rect())
char_size.left = resolution[0] // 2 - char_size.width // 2
char_size.top = resolution[1] - char_size.height

for i in range(6):
	mob = pygame.image.load('mob.png')
	mob_size = pygame.Rect(mob.get_rect())
	mob_size.left = random.randrange(0,resolution[0] - mob_size[3])
	mob_size.top = -100
	speed = random.randint(1,4)
	mob_list.append({'img':mob, 'size': mob_size, 'speed': speed})
	

game = True


#게임 루프
while game:
	#시간을 받아와서 프레임 설정
	#루프를 60틱으로 돈다는 뜻!
	clock.tick(60)
	screen.fill(BLACK)

	#게임 이벤트 루프
	for event in pygame.event.get():
		if event.type == pygame.QUIT:
			game = False
			break

	time = pygame.time.get_ticks() - set_time
	# print(time)

	if time > 5000:
		set_time = pygame.time.get_ticks()
		speed_level[0] = speed_level[0] + 1
		speed_level[1] = speed_level[1] + 1
		level += 1
		print(speed_level)
		

	for mob in mob_list:
		if mob['size'].top > resolution[1]:
			point += 1
			mob_list.remove(mob)
			mob = pygame.image.load('mob.png')
			mob_size = pygame.Rect(mob.get_rect())
			mob_size.left = random.randrange(0,resolution[0] - mob_size[3])
			mob_size.top = -100
			speed = random.randint(speed_level[0],speed_level[1])
			mob_list.append({'img':mob, 'size': mob_size, 'speed': speed})

	for mob in mob_list:
		mob['size'].top += mob['speed']
		screen.blit(mob['img'], mob['size'])

	point_text = font.render('POINT : ' + str(point) ,True,WHITE)
	level_text = font.render('LEVEL : ' + str(level) ,True,WHITE)
	screen.blit(point_text, (10,10))	
	screen.blit(level_text, (10,40))
	pygame.display.update()


print('게임종료')
pygame.quit()
profile
지나가는사람

0개의 댓글