import pygame
import time # 时间模块
from pygame.locals import *
class HeroPlane(object):
def __init__(self, screen):
self.x = 190
self.y = 550
image_path = 'feiji/hero1.png'
self.image = pygame.image.load(image_path)
self.screen = screen
self.bullets = [] # 子弹列表
def display(self):
"""显示飞机"""
self.screen.blit(self.image, (self.x, self.y))
# 显示子弹
self.display_bullet()
def display_bullet(self):
# 显示子弹
for bullet in self.bullets:
bullet.display()
bullet.move()
def move_left(self):
"""向左移动"""
self.x -= 10
def move_right(self):
"""向右移动"""
self.x += 10
def biubiu(self):
"""发射一颗子弹"""
# 创建子弹
bullet = HeroBullet(self.screen, self.x, self.y)
self.bullets.append(bullet)
class HeroBullet(object):
"""玩家子弹类"""
def __init__(self, screen, plane_x, plane_y):
"""初始化子弹属性"""
self.x = plane_x + 40
self.y = plane_y - 22
image_path = 'feiji/bullet.png'
self.image = pygame.image.load(image_path)
self.screen = screen
def display(self):
"""显示子弹"""
self.screen.blit(self.image, (self.x, self.y))
def move(self):
"""移动子弹"""
self.y -= 5
def main():
"""游戏主逻辑"""
# 创建窗口
screen = pygame.display.set_mode((480, 700), 0, 32)
# 加载背景图片
bg = pygame.image.load('feiji/background.png')
# 加载玩家飞机
hero = HeroPlane(screen)
while True:
# print('给我刷~')
# 把背景图片显示到窗口(缓存图片)
screen.blit(bg, (0, 0))
# 显示玩家飞机
hero.display()
# 刷新界面
pygame.display.update()
# 获取事件,比如按键等
for event in pygame.event.get():
# 判断是否是点击了退出按钮
if event.type == QUIT:
print("exit")
exit()
# 判断是否是按下了键
elif event.type == KEYDOWN:
# 检测按键是否是a或者left
if event.key == K_a or event.key == K_LEFT:
print('left')
hero.move_left()
# 检测按键是否是d或者right
elif event.key == K_d or event.key == K_RIGHT:
hero.move_right()
# 检测按键是否是空格键
elif event.key == K_SPACE:
print('space')
hero.biubiu()
# 冻结程序
time.sleep(1/60) # 单位为 秒
print('程序结束')
if __name__ == '__main__':
main()
相关文章
- 游戏玩的多,陪玩你了解的多吗?用Python来采集陪玩数据,看看行情和美照
- [oeasy]python0093_电子游戏起源_视频游戏_达特茅斯_Basic_家酿俱乐部
- python入门游戏之井字棋实例代码
- Python中写一个乒乓球类的游戏
- c#游戏编程-利用SharpDX编写坦克大战游戏(1)
- 飞机大战开发04子弹与敌机的碰撞检测
- cocos2d-x(十二)Lua开发飞机大战-7-加入敌机
- 【cocos2d-x入门实战】微信飞机大战之九:碰撞检测
- cocos2d-x(十二)Lua开发飞机大战-7-添加敌机
- Cocos2d-x 3.2 lua飞机大战开发实例(一)背景地图,飞机,子弹的封装,以及lua中定时器的使用