本文实例为大家分享了python实现简单飞机大战的具体代码,供大家参考,具体内容如下
功能
玩家飞机可以移动,可以发射子弹,敌机随机产生,*坠落。未添加击落敌机的功能。主要用来练习类的封装与继承。
源码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
# -*- 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 )
|
结果展示
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/l_changyun/article/details/85805444