Python 간단 한 비행기 대전 실현
기능.
게이머 비행 기 는 이동 할 수 있 고 총알 을 발사 할 수 있 으 며 적 기 는 랜 덤 으로 발생 하여 자 유 롭 게 추락 할 수 있다.적 기 를 격추 하 는 기능 이 추가 되 지 않 았 습 니 다.주로 연습 류 의 포장 과 계승 에 쓰 인 다.
소스 코드
# -*- coding=utf-8 -*-
import pygame, random
from pygame.locals import *
class Base(object):
def __init__(self, x, y, screen):
self.screen = screen
self.x = x
self.y = y
class Player(Base):
def __init__(self):
super().__init__(210, 600, screen)
self.playerName = "./feiji/hero.gif"
self.player = pygame.image.load(self.playerName).convert()
self.bullet_list = []
def display(self):
self.screen.blit(self.player, (self.x, self.y))
for bullet in self.bullet_list:
bullet.display()
bullet.mov()
def move_left(self):
self.x -= 10
def move_right(self):
self.x += 10
def move_up(self):
self.y -= 10
def move_down(self):
self.y += 10
def shot(self):
bullet = Bullet()
self.bullet_list.append(bullet)
class Bullet(Base):
def __init__(self):
super().__init__(player.x+40, player.y-20, screen)
self.bulletName = "./feiji/bullet-3.gif"
self.bullet = pygame.image.load(self.bulletName).convert()
def display(self):
self.screen.blit(self.bullet, (self.x, self.y))
def mov(self):
self.y -= 10
class Enemy(Base):
def __init__(self):
super().__init__(random.randint(1, 10)*40, 0, screen)
self.enemyName = "./feiji/enemy-1.gif"
self.enemy = pygame.image.load(self.enemyName).convert()
self.enemy_list = []
self.i = 0
def mov(self):
self.y += 2
class EnemyArea(Enemy):
def display(self):
#
if self.i % 80 == 0:
new_enemy = Enemy()
self.enemy_list.append(new_enemy)
self.i += 1
for enemy in self.enemy_list:
self.screen.blit(enemy.enemy, (enemy.x, enemy.y))
enemy.mov()
if __name__ == '__main__':
# ,
screen = pygame.display.set_mode((480, 890))
# ,
background = pygame.image.load("./feiji/background.png").convert()
player = Player()
enemy = Enemy()
enemy_area = EnemyArea()
while True:
screen.blit(background, (0, 0))
player.display()
enemy_area.display()
#
for event in pygame.event.get():
if event.type == QUIT:
exit()
elif event.type == KEYDOWN:
if event.key == K_a or event.key == K_LEFT:
player.move_left()
elif event.key == K_d or event.key == K_RIGHT:
player.move_right()
elif event.key == K_w or event.key == K_UP:
player.move_up()
elif event.key == K_s or event.key == K_DOWN:
player.move_down()
elif event.key == K_SPACE:
player.shot()
elif event.key == K_q:
exit()
pygame.display.update()
pygame.time.delay(10)
결과 전시이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.