python讨论qq群:996113038
导语:
现在天天宅在家里,实在是无聊。想想病毒挺可恨的。于是干脆就开发一个“暴打病毒”的python小游戏,好好发泄一些,只是短时间内找不到合适的游戏思路,干脆就按照原来的飞机大战修改一下。如果大家想看看飞机大战的游戏代码,可以在后台回复“game4”获取一下源代码。
当然了,这个“暴打病毒”与飞机大战还是有很大区别的。在飞机大战中,我们没有用到图片素材。简简单单用的方块来表示各种游戏元素。这个“暴打病毒”的游戏中,我们用到了pygame导入游戏素材的方式。
快来看看吧!
代码及相关资源获取:
1:关注“python趣味爱好者”公众号,回复“ 消灭病毒 ”获取源代吗。
2:加入群聊:996113038。在群文件中下载源代码以及相关资料。
开发工具:
python3.6.4
相关第三方库:
pygame
random
sys
numpy
效果演示:游戏视频
基本原理:
这个游戏是根据原来的飞机大战改编的,由于时间仓促,里面有很多代码注释还是飞机大战的注释,没有来得及修改。
先简单介绍一下这个游戏的游戏设定,里面的主角是一个漂亮的护士小姐姐。按上下左右键可以移动护士小姐姐,点击空格,护士小姐姐的注射器里就会射出一根箭。这根箭会射向从上方入侵的病毒。每杀死一个病毒,分数就会增加30分。
我在这里只讲这个游戏与飞机大战的区别。
主要就是载入图片的语句。
arrow=pygame.image.load("arrow.png")
virus1=pygame.image.load("virus1.jpg")
virus2=pygame.image.load("virus2.jpg")
doctor1=pygame.image.load("doctor.JPG")
我们这里将病毒,箭,医生载入进去。
在画图的时候,按照下面的功能画图。
screen.blit(arrow,[i[0]*rect_width,i[1]*rect_width])
上面这个是画“箭”的函数,大家可以下载源代码,更好地学习一下,如果有看不懂的,可以回顾一下以前的飞机大战
主循环还是没什么变化。获取键盘操作,得到护士的移动方向,是否放箭。然后是画图的操作,在画布上画“箭”,“医生”,“病毒”等元素。
move_enemy(enemy_heart)
move_doctor(speed)
change_fruit(enemy_all)
screen.fill(bg)
draw_doctor()
draw_enemy(enemy_all)
screen.blit(surface1, [20, 20])
draw_bullet()#将所有的子弹全部画出来
screen.blit(font1.render(u'当前得分:%d' % score, True, [255, 0, 0]), [20, 20])
#screen.blit(arrow,position_arrow)
pygame.display.update()
pygame.display.flip()
pygame.time.delay(180)
pygame.time.delay代表延时,也就是动画的帧率。
往期精选:
感谢大家观看,有钱的老板可以打赏一下小编哦!
扫描下方二维码,关注公众号
参考资料:
图片来源:https://images.pexels.com/photos/3873194/pexels-photo-3873194.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500