首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python项目实战 打飞机(一)

叁研伴学路,良语暖人心。考研路漫漫,功在每日勤。日推价值文,资料资讯精。何不速关注,大业或可行?

首先我们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次讲,这个是第一部分,是一些扫盲的步骤,教你们如果看着文档开发。希望大家学习的不是这个代码,学习的是如何利用官方文档解决问题!

今天教程先到这里。今天提供源码跟素材下载,需要的可以在公众号下载!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180427G00IPW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券