파이게임으로 만드는 간단한 게임 모음

파이게임 타이핑 게임

다음은 파이게임으로 제작된 간단한 타이핑 게임입니다. 화면에 나타나는 알파벳을 빠르게 입력하여 점수를 얻는 게임입니다.

import pygame.freetype
import sys
import random

pygame.init()
화면 = pygame.display.set_mode((500, 400))
pygame.display.set_caption('타이핑 게임')

글꼴 = pygame.freetype.Font(None, 60)
글꼴_작은 = pygame.freetype.Font(None, 30)
게임상태 = 0
x좌표 = [50, 140, 230, 320, 410]
문자들 = []
시간 = 0
점수 = 0

while True:
    pygame.time.delay(20)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            if 게임상태 == 1:
                for 문자 in 문자들:
                    if ord(문자[0]) == event.key - 32:
                        문자들.remove(문자)
                        점수 += 1
        elif event.type == pygame.MOUSEBUTTONDOWN:
            if 게임상태 == 0:
                게임상태 = 1
                for i in range(0, 5):
                    문자들.append([chr(random.randint(65, 80)), x좌표[i], 50])
    화면.fill((0, 0, 0))
    if 게임상태 == 0:
        글꼴.render_to(화면, [180, 250], "시작", fgcolor=(255, 255, 255))
    if 게임상태 == 1:
        시간 += 1
        if 시간 == 100:
            시간 = 0
            for i in range(0, 5):
                문자들.append([chr(random.randint(65, 80)), x좌표[i], 50])
        for 문자 in 문자들:
            글꼴.render_to(화면, [문자[1], 문자[2]], 문자[0], fgcolor=(255, 255, 255))
        for i in range(0, len(문자들)):
            문자들[i][2] += 1
            if 문자들[i][2] >= 400:
                게임상태 = 2
        글꼴_작은.render_to(화면, [5, 5], "점수: %d" % 점수, fgcolor=(255, 255, 255))
    if 게임상태 == 2:
        글꼴.render_to(화면, [100, 100], "게임 오버", fgcolor=(255, 255, 255))
        글꼴.render_to(화면, [100, 250], "점수: %d" % 점수, fgcolor=(255, 255, 255))
    pygame.display.update()

파이게임 코인 수집 게임

이 게임은 마우스를 이용해 화면 아래의 바를 움직여 떨어지는 코인을 잡는 게임입니다. 시간이 지날수록 코인의 속도가 빨라집니다.

import pygame.freetype
import sys
import random

pygame.init()
화면 = pygame.display.set_mode((600, 400))
pygame.display.set_caption('코인 게임')
게임상태 = 0
카운터 = 0
점수 = 0
속도 = 0
글꼴_큰 = pygame.freetype.Font('C:/windows/fonts/msyh.ttc', 100)
글꼴_작은 = pygame.freetype.Font(None, 30)
코인_이미지 = pygame.image.load('coin.png')
코인_이미지 = pygame.transform.scale(코인_이미지, (30, 30))
코인들 = []

while True:
    pygame.time.delay(20)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == pygame.MOUSEBUTTONDOWN:
            if 게임상태 == 0:
                속도 = 0
                게임상태 = 1
    화면.fill((255, 255, 255))
    if 게임상태 == 0:
        글꼴_큰.render_to(화면, [100, 130], '게임 시작')
    if 게임상태 == 1:
        카운터 += 1
        if 카운터 >= 50//(int(속도/30)+1):
            카운터 = 0
            if 속도 < 200:
                속도 += 1
                코인들.append([random.randint(50, 520), 50])
        if 속도 == 200 and not 코인들:
            게임상태 = 2
        for 코인 in 코인들:
            화면.blit(코인_이미지, [코인[0], 코인[1]])
            코인[1] += int(속도/30)+1
        x = pygame.mouse.get_pos()[0]
        if x < 40:
            x = 40
        if x > 560:
            x = 560
        pygame.draw.rect(화면, (60, 150, 250), (x-40, 320, 80, 20))
        for 코인 in 코인들:
            if 코인[1] >= 300:
                if x-70 <= 코인[0] <= x+40:
                    점수 += 1
                코인들.remove(코인)
        글꼴_작은.render_to(화면, [30, 30], '점수:%d' % 점수)
    if 게임상태 == 2:
        글꼴_큰.render_to(화면, [80, 130], '점수:%d' % 점수)
    pygame.display.update()

파이게임 플래피 버드 게임

공간을 가로지르는 장애물을 피하며 최대한 오래 생존하는 게임입니다. 스페이스바를 눌러 새를 위로 날려 장애물을 피하세요.

import pygame.freetype
import sys
import random

pygame.init()
화면 = pygame.display.set_mode((500, 400))
pygame.display.set_caption('새 게임')

새_이미지 = pygame.image.load('bird.png')
새_이미지 = pygame.transform.scale(새_이미지, (96, 88))

글꼴_작은 = pygame.freetype.Font(None, 24)
글꼴_큰 = pygame.freetype.Font(None, 80)

새_x, 새_y = 50, 50
장애물1_x, 장애물2_x = 300, 600
장애물1_구멍, 장애물2_구멍 = 100, 150
중력 = 1
점수 = 0

게임상태 = 0
대기시간 = 0

while True:
    pygame.time.delay(20)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            if 게임상태 == 0 and event.key == 32:
                게임상태 = 1
            elif 게임상태 == 1 and event.key == 32:
                중력 = -3
            elif 게임상태 == 2 and event.key == 32 and 대기시간 == 30:
                게임상태 = 0
                새_x, 새_y = 50, 50
                장애물1_x, 장애물2_x = 300, 600
                장애물1_구멍, 장애물2_구멍 = 100, 150
                중력 = 1
                점수 = 0
                대기시간 = 0
    if 게임상태 == 0:
        화면.fill((255, 255, 255))
        화면.blit(새_이미지, (새_x, 새_y))
        pygame.draw.rect(화면, (50, 200, 100), (장애물1_x, 0, 70, 장애물1_구멍))
        pygame.draw.rect(화면, (50, 200, 100), (장애물2_x, 0, 70, 장애물2_구멍))
        pygame.draw.rect(화면, (50, 200, 100), (장애물1_x, 장애물1_구멍 + 150, 70, 400 - 장애물1_구멍))
        pygame.draw.rect(화면, (50, 200, 100), (장애물2_x, 장애물2_구멍 + 150, 70, 400 - 장애물2_구멍))
        글꼴_작은.render_to(화면, [30, 250], "스페이스를 눌러 시작")
    if 게임상태 == 1:
        장애물1_x -= 2
        장애물2_x -= 2
        새_y += int(중력)
        중력 += 0.2
        if 새_y > 340:
            게임상태 = 2
        if 0 <= 장애물1_x <= 150 and not 장애물1_구멍 <= 새_y <= 장애물1_구멍+50:
            게임상태 = 2
        if 0 <= 장애물2_x <= 150 and not 장애물2_구멍 <= 새_y <= 장애물2_구멍+50:
            게임상태 = 2
        if 장애물1_x <= -70:
            장애물1_x += 600
            장애물1_구멍 = random.randint(50, 200)
            점수 += 5
        if 장애물2_x <= -70:
            장애물2_x += 600
            장애물2_구멍 = random.randint(50, 200)
            점수 += 5
        화면.fill((255, 255, 255))
        화면.blit(새_이미지, (새_x, 새_y))
        pygame.draw.rect(화면, (50, 200, 100), (장애물1_x, 0, 70, 장애물1_구멍))
        pygame.draw.rect(화면, (50, 200, 100), (장애물2_x, 0, 70, 장애물2_구멍))
        pygame.draw.rect(화면, (50, 200, 100), (장애물1_x, 장애물1_구멍 + 150, 70, 400 - 장애물1_구멍))
        pygame.draw.rect(화면, (50, 200, 100), (장애물2_x, 장애물2_구멍 + 150, 70, 400 - 장애물2_구멍))
    if 게임상태 == 2:
        화면.fill((255, 255, 255))
        글꼴_큰.render_to(화면, [80, 50], "점수:%d" % 점수)
        글꼴_작은.render_to(화면, [100, 250], "스페이스를 눌러 다시 시작")
        if 대기시간 < 30:
            대기시간 += 1
    pygame.display.update()

파이게임 뱀 게임

전통적인 뱀 게임입니다. 방향키를 이용해 뱀을 조종하며 먹이를 먹고 길어지는 게임입니다. 자신의 몸에 부딪히면 게임이 끝납니다.

import pygame
import sys
import random

pygame.init()
화면 = pygame.display.set_mode((400, 400))
pygame.display.set_caption('뱀 게임')
방향 = [0, 1]
뱀몸 = []

for i in range(3, 8):
    뱀몸.append([4, i])

뱀머리 = [4, 7]

시간 = 0

빈칸 = []
for i in range(20):
    for j in range(20):
        if not [i, j] in 뱀몸:
            빈칸.append([i, j])

먹이 = random.choice(빈칸)

while True:
    pygame.time.delay(20)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        elif event.type == pygame.KEYDOWN:
            if event.key == ord('a'):
                새_방향 = [0, -1]
            elif event.key == ord('d'):
                새_방향 = [0, 1]
            elif event.key == ord('w'):
                새_방향 = [-1, 0]
            elif event.key == ord('s'):
                새_방향 = [1, 0]
            else:
                continue
            if 방향[0] == 새_방향[0] or 방향[1] == 새_방향[1]:
                continue
            방향 = 새_방향[:]
    시간 += 1
    if 시간 >= 15:
        시간 = 0
        꼬리 = [뱀몸[len(뱀몸)-1][0], 뱀몸[len(뱀몸)-1][1]]
        뱀머리 = [꼬리[0] + 방향[0], 꼬리[1] + 방향[1]]
        if 먹이 == 뱀머리:
            빈칸 = []
            for i in range(20):
                for j in range(20):
                    if not [i, j] in 뱀몸:
                        빈칸.append([i, j])

            먹이 = random.choice(빈칸)
        else:
            del 뱀몸[0]
        if 뱀머리 in 뱀몸:
            pygame.quit()
            sys.exit()
        if not (0 <= 뱀머리[0] < 20) or not (0 <= 뱀머리[1] < 20):
            pygame.quit()
            sys.exit()
        뱀몸.append(뱀머리)
    화면.fill((0, 0, 0))
    for 부분 in 뱀몸:
        pygame.draw.rect(화면, (200, 200, 200), (20*부분[1], 20*부분[0], 20, 20))
    pygame.draw.rect(화면, (100, 170, 255), (20*먹이[1], 20*먹이[0], 20, 20))
    pygame.draw.rect(화면, (255, 255, 255), (20 * 뱀머리[1], 20 * 뱀머리[0], 20, 20))
    pygame.display.update()

태그: 파이게임 파이썬 게임 개발 타이핑 게임 코인 수집 게임

8월 1일 15:07에 게시됨