파이썬에서 사촌 "항공기 전쟁"게임을 썼다 가르쳐! 사촌 : 당신은 교사 할에게로 당신을 숭배 할 수 있습니까?

면책 조항 :이 문서는 블로거 원본입니다, 추적 에 의해-SA의 CC 4.0 저작권 계약, 복제, 원본 소스 링크이 문을 첨부 해주세요.
이 링크 : https://blog.csdn.net/weixin_42625143/article/details/102758464

내가 병 때문에 오늘, 다음 집에서 휴식. 내 사촌은 재생 내 집에 와서! 너무 지루하기 때문에, 길에 "비행기 전쟁"게임을 작성하는 그를 가르 칠! 좋은, 그는 또한 재생 매우 행복, 하, 하, 하. 당신이 작은 친구의 소스를 가지고 싶다면 나를 찾을 수 있습니다!
여기에 그림 삽입 설명

운영 환경

운영 체제 : Windows 10
파이썬 버전 : 파이썬 3.7
사용 모듈 : 운영 체제, SYS, 무작위, 파이 게임
파이썬은 모두가 알을 기반으로 한, 우리는 모듈을 사용하는 게임을하고있다 : 파이 게임 흰색 없음 :! 주목해야한다 첫 번째 핍 설치!

실현

1 : 첫째, 우리는 항공기 및 현장 사진에 요구되는 게임 인터페이스를 준비 할 필요가!
여기에 그림 삽입 설명
2 : 우리는 게임 화면을 그릴 파이 게임, 인터페이스 디자인을, 초기화, 준비의 일부 다! 예를 들면 :

遇到问题没人解答?小编创建了一个Python学习交流QQ群:895817687 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
...........
...........
...........
pygame.init() # 初始化pygame
# 使用pygame.display.set_mode()绘制游戏屏幕
screen = pygame.display.set_mode((512, 768))
# 使用pygame.time.Clock创建一个时钟对象
clock = pygame.time.Clock() # 创建一个时钟(后面刷新帧率时会用到)
pygame.time.set_timer(CREATE_ENEMY, 400) # 定时创建敌军,计量毫秒
pygame.time.set_timer(CREATE_BULLET, 500) # 定时创建子弹
pygame.time.set_timer(CREATE_BOMB, random.randint(10000, 50000))
hero = Hero() # 创建一个英雄
hero_group = pygame.sprite.Group(hero) # 英雄精灵组
enemy_group = pygame.sprite.Group() # 敌军精灵组
bullet_group = pygame.sprite.Group() # 子弹精灵组
bomb_group = pygame.sprite.Group() # 炸弹精灵组
font1 = pygame.font.Font("./images/SIMHEI.TTF", 40) # 设置字体样式
font2 = pygame.font.Font("./images/SIMHEI.TTF", 25)
bomb_num = 0 # 炸弹数量
bj_num = 1 # 背景图片的初始值,更换背景
FLAG = False # 游戏事件标识
score = False
while True:
 game_text = font1.render("飞机大战 ", 1, (220, 36, 194)) # 文本显示,抗锯齿,RGB
 start_text = font1.render("按下Enter 开始游戏! ", 1, (35, 221, 100))
 bj_text = font1.render("←→键更换游戏背景 ", 1, (39, 187, 217))
 for event in pygame.event.get(): # 获取事件信息
 if event.type == pygame.KEYDOWN and event.key == pygame.K_RETURN:
 FLAG = True
 elif event.type == pygame.KEYDOWN and event.key == pygame.K_LEFT:
 bj_num += 1
 if bj_num > 5:
 bj_num = 1
 elif event.type == pygame.KEYDOWN and event.key == pygame.K_RIGHT:
 bj_num -= 1
 if bj_num < 1:
 bj_num = 5
 elif event.type == pygame.QUIT:
 exit()
 bj1 = BackGround(bj_num=bj_num) # 进入游戏的背景
 bj2 = BackGround(True, bj_num=bj_num) # 开始等于True的背景
 bj_group = pygame.sprite.Group(bj1, bj2)
 bj_group.draw(screen) # 绘制界面
............
............
............

여기에 그림 삽입 설명
3 : 기능을 구현 : 영웅 적과 충돌을 제거 할 때! 폭발 효과 사진을 교체 할 때 적 영웅과 충돌! 점수를 그리기! 그래서 적과와의 충돌을 제거, 폭탄 총알 디스플레이를 그리기!

# 子弹与敌机碰撞时消除
 score += len(pygame.sprite.groupcollide(bullet_group, enemy_group, True, True)) # score分数 collide碰撞
 enemies = pygame.sprite.spritecollide(hero, enemy_group, True) # 英雄与敌军碰撞时同是消除
 # bomb_num += len(pygame.sprite.spritecollide(hero, bomb_group, True))
 if len(enemies) > 0:
 hero.image = pygame.image.load("./images/image 12.png") # 当英雄与敌军碰撞时替换爆炸效果图片
 hero_group.draw(screen)
 pygame.display.update()
 hero.kill()
 exit()
 bj_group.update() # 更新所有精灵
 bullet_group.update()
 enemy_group.update()
 hero_group.update()
 bomb_group.update()
 bj_group.draw(screen) # 绘制精灵到界面
 enemy_group.draw(screen)
 bullet_group.draw(screen)
 hero_group.draw(screen)
 bomb_group.draw(screen)
 screen.blit(start_text, (10, 10)) # 绘制炸弹显示
 screen.blit(score_text, (10, 40)) # 绘制分数
 pygame.display.update() # 刷新界面

여기에 그림 삽입 설명
아마도 완벽하지 않습니다, 후자는 지속적으로 최적화되어 있습니다! 동생, 여동생처럼, 댓글을 달 수 있습니다 싶어!

추천

출처blog.csdn.net/weixin_42625143/article/details/102758464