python 비행기 대전 게임 개발
import pygame
import random
import math #
#
pygame.init()
#
windows = pygame.display.set_mode((800, 600))
#
pygame.display.set_caption(" ")
# logo
icon = pygame.image.load('logo.jpg')
pygame.display.set_icon(icon)
# 4.
bgcolor = pygame.image.load('bj.png')
# 5.
playerimg = pygame.image.load('fj.png')
X = 350 # X
Y = 480 # Y
# palyerStep 0。
playerStep = 0
#
pygame.mixer.music.load('bj.mp3')
pygame.mixer.music.play(-1)
#
# bao_music = pygame.mixer.Sound('bj.mp3')
#
score = 0
#
font = pygame.font.Font('freesansbold.ttf', 32)
#
def show_score():
#
text = f"Score:{score}"
# text True 24
score_render = font.render(text, True, (0, 255, 0))
#
windows.blit(score_render, (10, 10))
#
over = False
over_font = pygame.font.Font('freesansbold.ttf', 64)
#
def check_over():
if over:
text = "Game Over"
render = font.render(text, True, (255, 0, 0))
windows.blit(render, (320, 200))
# 8. .
# 11.
number_enemy = 6
#
class Enemy:
def __init__(self):
#
self.img = pygame.image.load('enemy.png')
self.x = random.randint(200, 600) # X
self.y = random.randint(50, 250) # Y
self.step = random.randint(2, 4) #
#
def reset(self):
self.x = random.randint(200, 600)
self.y = random.randint(50, 180)
def distance(bx, by, ex, ey):
a = bx - ex
b = by - ey
return math.sqrt(a * a + b * b) #
#
enemis = []
for i in range(number_enemy): # class Enemy ,
enemis.append(Enemy())
#
def enemy(): # , for
global over
for e in enemis:
windows.blit(e.img, (e.x, e.y))
e.x += e.step
if e.x > 750 or e.x < 0: #
e.step *= -1 #
e.y += 40 #
#
if e.y > 436:
over = True
print(" ")
enemis.clear()
# ==
def fiji_type(): # X Y
global X, Y
# 5.
windows.blit(playerimg, (X, Y))
# 6.
X += plagerStep
#
if X > 680:
X = 680
if X < 0:
X = 0
#
class Bullet:
def __init__(self):
self.img = pygame.image.load('bullet.png')
self.x = X + 55 # X
self.y = Y + 5 #
self.step = 2 #
#
def hit(self):
global score
for e in enemis:
if distance(self.x, self.y, e.x, e.y) < 30:
#
bullets.remove(self)
e.reset() #
# 10
score += 10
bullets = [] #
#
def show_bullets():
for b in bullets:
windows.blit(b.img, (b.x, b.y))
b.hit() #
b.y -= b.step #
#
if b.y < 0:
bullets.remove(b)
# 3.
running = True
while running:
# 4.
#
# bgcolor
windows.blit(bgcolor, (0, 0))
#
show_score()
# event.get
for event in pygame.event.get():
# QUIT
if event.type == pygame.QUIT:
# False
running = False
# 7.
# (playerStep )
if event.type == pygame.KEYDOWN:
# ,
if event.key == pygame.K_RIGHT:
plagerStep = 3
#
elif event.key == pygame.K_LEFT:
plagerStep = -3
#
elif event.key == pygame.K_SPACE:
#
b = Bullet()
bullets.append(b)
# ,
if event.type == pygame.KEYUP:
plagerStep = 0
#
fiji_type()
#
enemy()
show_bullets() #
#
check_over()
#
pygame.display.update()
# global
'''
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
'''
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.