叁研伴学路,良语暖人心。考研路漫漫,功在每日勤。日推价值文,资料资讯精。何不速关注,大业或可行?
首先我们python教程基础部分已经完结。这个时候一般可以做一些项目来巩固一下自己的知识,然后主要还是教你们如何开发一个小项目,主要熟悉一下日常开发过程。所以给你们带来一个很经典的项目:飞机大战,以前微信很火的一个游戏!素材跟代码会扔到网盘,提供大家下载,公众号回复飞机大战,获取素材
这次用到的模块是pygame一个很经典的游戏模块,官网提供很多范例,大家有空可以去抄几个学习一下。
具体安装pip intall pygame
1、打飞机代码:搭建界面
首先你们得去看一下pygame的官网接口文档具体网址如下:https://www.pygame.org/docs/
import os
import pygame
def main():
#1.创建一个窗口,用来显示内容
#2. 创建一个和窗口大小的图片,用来充当背景
background = pygame.image.load("./feiji/background.png").convert()
#3. 把背景图片放到窗口中显示
while True:
screen.blit(background,(0,0))
if __name__ == '__main__':
main()
注意:这里有个缺陷就是我们点击退出按钮,窗口是不会关闭的并且程序会死掉,因为我们用了while True的死循环,所以大家不用担心这种情况,等下面我会会介绍解决办法!!
这是官网的具体网址这个函数:
https://www.pygame.org/docs/ref/display.html#pygame.display.set_mode
官网文档给的文献如下:
大概翻译过来:
set_mode(resolution=(0,0), flags=0, depth=0)
Initialize a window or screen for display:就是一个初始化窗口函数,resolution代表着是分辨率,我们上述图片选择的是480*852的图片,所以resolution应该填(480,852),第二个参数flags如果你传递的参数为0,或者无标志参数,他默认的为软件驱动窗口,大多数的情况我们选择为0,第三个参数depth表示用于颜色的位数,默认为0,我们可以通过调整参数让背景色暗色一点,所以我填了参数32。到这里只是举个例子,后期其他函数不再这样子深入解析,具体你们参考官网的文档,好好看看!这里只是举个例子讲解一下,以后在开发过程中要学会自己,读官方给的文档,以后这种能力能给你带来一辈子的受益,增强自己的学习能力!英语实在不懂的可以考虑谷歌翻译哦!!!!!!!!!
2、打飞机代码:检测键盘
效果:
这个键盘检测在comment4下有一个例子如下:
The previous example here won't work correctly due
to a typo, and will not do what you expect due to
a logical error.
Try the following:
if event.type == pygame.KEYDOWN :
if event.key == pygame.K_SPACE :
print "Space bar pressed down."
elif event.key == pygame.K_ESCAPE :
print "Escape key pressed down."
elif event.type == pygame.KEYUP :
if event.key == pygame.K_SPACE :
print "Space bar released."
elif event.key == pygame.K_ESCAPE :
print "Escape key released."
所以呐,抄过来就变成自己的拉!所以自己学会看官方文档才会开发哦!具体代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2018-04-26 18:02:35
# @Version : $Id$
import os
import pygame
#引入这个保证下面一些事件定义比如QUIT,K_a等值可以被使用 或者你也可以用pygame.QUIT替代,为了方便所以我们直接全部引入
from pygame.locals import *
def main():
#1.创建一个窗口,用来显示内容
#2.创建一个和窗口大小的图片,用来充当背景
background = pygame.image.load("./feiji/background.png").convert()
#3.把背景图片放到窗口中显示
while True:
#设定需要显示的背景图
screen.blit(background,(0,0))
#判断是否点击了推出按钮,解决第一个缺陷
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')
#检测按键是否是d或者right
elif event.key == K_d or event.key == K_RIGHT:
print('right')
#检测按键是否是空格键
elif event.key == K_SPACE:
print('space')
#跟新需要显示的内容
if __name__ == '__main__':
main()
3、打飞机代码:显示、控制玩具飞机
效果图:
主要用到的函数有:
这个是整个查找过程,大家可以自行体验一下,如果有问题可以给我留言。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2018-04-26 18:02:35
# @Version : $Id$
import os
import pygame
#引入这个保证下面一些事件定义比如QUIT,K_a等值可以被使用 或者你也可以用pygame.QUIT替代,为了方便所以我们直接全部引入
from pygame.locals import *
def main():
#1.创建一个窗口,用来显示内容
#2. 创建一个和窗口大小的图片,用来充当背景
background = pygame.image.load("./feiji/background.png").convert()
#用来创建一个飞机的图片
hero = pygame.image.load("./feiji/hero.gif").convert()
#设置两个值来保存飞机的位置常用都是x,y
x = 0
y = 0
#3. 把背景图片放到窗口中显示
while True:
#设定需要显示的背景图
screen.blit(background,(0,0))
#设定飞机显示的位置
screen.blit(hero, (x,y))
#判断是否点击了推出按钮,解决第一个缺陷
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')
#控制飞机向左移动
x -= 5
#检测按键是否是d或者right
elif event.key == K_d or event.key == K_RIGHT:
print('right')
#控制飞机向右移动
x += 5
#检测按键是否是空格键
elif event.key == K_SPACE:
print('space')
#跟新需要显示的内容
if __name__ == '__main__':
main()
飞机项目打算分3次讲,这个是第一部分,是一些扫盲的步骤,教你们如果看着文档开发。希望大家学习的不是这个代码,学习的是如何利用官方文档解决问题!
今天教程先到这里。今天提供源码跟素材下载,需要的可以在公众号下载!
领取专属 10元无门槛券
私享最新 技术干货