前文
学编程的话要从兴趣开始,兴趣是最好的老师。
这句话我很赞同,完全没毛病哈!
小编开始学python也是从游戏开始感兴趣学习的,所以大家看小编往期的文章大部分都是有代码的游戏趣味编程:各种游戏代码。
比如:塔防游戏(攻防类型),成语接龙、超级玛丽(咳咳咳......只有代码还没写成文章嘞)
之前还写的很多收集或者小编以前有的一些游戏代码很多忘记名字了..........23333
需要的直接找小编拿,免费的哈,源码基地粉丝群还记得哈,但是目前人数很少(咳咳咳.....才10几个人来着~)
所以需要大佬坐镇后方为很多小白解答~哈哈哈
SO 欢迎新手以及大佬以及学到一半 都欢迎来解答的解答、学习的学习 、互相学习啦!!
害~好难呀 我想要个粉丝都没得~
正文
环境安装:
Python3、pygame。
模块安装都会了哈,之前的文章说过很多次了哦!不会的看往期游戏的文章。
(一)游戏的嘛,当然要来点儿music才有激情。
ef fire_music(): pass # 设置开火音乐 # effect = pygame.mixer.Sound('sounds/fire.wav') # pygame.mixer.Sound.play(effect)
(二)# 设置游戏背景图片 # 游戏刚开始时的背景图 。
bg_img0 = pygame.image.load('图片/start_bg.jpg').convert() # 加载游戏开始图标 start_img = pygame.image.load('图片/start.png').convert_alpha() start_rect = start_img.get_rect() start_rect.centerx = 262 start_rect.centery = 455 # 游戏进行中的背景图 bg_img1 = pygame.image.load('图片/map1.jpg').convert() bg_img2 = bg_img1.copy() # 游戏结束时的背景图 bg_img3 = pygame.image.load('图片/map3.jpg').convert() # 加载游戏结束图标 gameover_img = pygame.image.load('图片/gameover.png').convert_alpha() # 加载游戏成功图标 gamesuccess = pygame.image.load('图片/success.png').convert_alpha()
这是包括了整个游戏的图片素材,有更好的可以自己找的!
(三)敌方飞机。
# 敌机 --------------------------------------------------------------------------------------- # 敌机移动 # 控制时间节奏 sec变量 sec +=1 #随机控制生成敌机的节奏 rhy = random.randint(ran1,ran2) # 敌机最多数量 if sec%rhy ==0 and len(enemies) < max_enemies or sec ==1: # 设置敌机数量总数为9 # 生成一只敌机 enemy = Enemy(screen) enemy.rect.centerx=random.randint(0,512) # 生成上述敌机的子弹 enemy_bullet = Enemy_Bullet((enemy.rect.centerx,enemy.rect.centery)) # 敌机group 和 敌机子弹group加载敌机和子弹 enemies.add(enemy) enemy_bullets.add(enemy_bullet) # 敌机出现 和 敌机子弹出现 enemies.draw(screen) enemy_bullets.draw(screen) # 迭代敌机集合 for enemy in enemies: # 让每个对象移动起来 enemy.move() # 敌机超出屏幕边界后 自动删除敌机 collision_over1 = pygame.sprite.collide_rect(student_plane, enemy) if collision_over1: # 为了重启游戏时 防止有旧子弹和飞机存在 enemies.remove(enemy) game = 'over' if enemy.rect.bottom >768: enemies.remove(enemy) for enemy_bullet in enemy_bullets: # 让每个对象移动起来 enemy_bullet.move() collision_over2 = pygame.sprite.collide_rect(student_plane, enemy_bullet) if collision_over2: # 为了重启游戏时 防止有旧子弹和飞机存在 enemy_bullets.remove(enemy_bullet) game = 'over' # 敌机子弹超出屏幕边界后 自动删除敌机 if enemy_bullet.rect.bottom >768: enemy_bullets.remove(enemy_bullet) # -----------------------Boss -------------------------- if score >=140: # 小敌机出现的节奏 ran1,ran2 = 15,25 max_enemies = 17 screen.blit(boss.image,boss.rect) boss.move() for my_bullet in student_plane.bullets: hit_boss = pygame.sprite.collide_rect(boss,my_bullet) if hit_boss: boss.blood -=1.2 score+=1 if boss.blood <=0: game = 'success'
游戏效果:
结尾
安啦!打飞机游戏就分享到这里。如果你喜欢就来拿源码叭!!
源码基地 解答+交流+学习+资源免费分享 :959755565