python实现飞船游戏的纵向移动


Posted in Python onApril 24, 2020

本文实例为大家分享了python实现飞船游戏的纵向移动,供大家参考,具体内容如下

我是跟着书里一步步写到横向移动后 我就想怎么纵向移动,放上自己写的代码,如果有问题的话,请指出来,我也是刚刚学习python,希望可以跟大家多多交流。

新增的就是有关up和down的代码了。

我自己是成功了,肯定有其他的更优化的,那就等我在学习一段时间吧。

附上代码:

game_function:

import sys
import pygame

 # 监视键盘和鼠标事件 
def check_keydown_events(event,ship):
 if event.key==pygame.K_RIGHT:
  ship.moving_right=True
 elif event.key==pygame.K_LEFT:
  ship.moving_left=True
 elif event.key==pygame.K_UP:
  ship.moving_up=True
 elif event.key==pygame.K_DOWN:
  ship.moving_down=True

def check_keyup_events(event,ship):
 if event.key==pygame.K_RIGHT:
  ship.moving_right=False
 elif event.key==pygame.K_LEFT:
  ship.moving_left=False
 elif event.key==pygame.K_UP:
  ship.moving_up=False
 elif event.key==pygame.K_DOWN:
  ship.moving_down=False
 
def check_events(ship):
 for event in pygame.event.get():
  if event.type==pygame.QUIT:
   sys.exit()
  elif event.type==pygame.KEYDOWN:
   check_keydown_events(event,ship)
  elif event.type==pygame.KEYUP:
   check_keyup_events(event,ship)
 
def update_screen(ai_settings,screen,ship):
 screen.fill(ai_settings.bg_color)
 ship.blitme()

 pygame.display.flip() #让最近回执的屏幕可见(刷新)

ship:

import pygame
class Ship():

def __init__(self,ai_settings,screen):
 self.screen=screen
 self.ai_settings=ai_settings

#加载飞船图像
  self.image=pygame.image.load('chengyan_ship.bmp')
  self.rect=self.image.get_rect() 
  self.screen_rect=screen.get_rect()

 self.rect.centerx=self.screen_rect.centerx #x的坐标
 self.rect.centery=self.screen_rect.centery #y的坐标
 
 self.rect.bottom=self.screen_rect.bottom
 
 self.moving_right=False
 self.moving_left=False
 self.moving_up=False
 self.moving_down=False
 
 #得到飞船移动到最下面的值(我不知道有没有表述清楚...就是只能飞到界面的最下面)
 self.screen_top=self.rect.top
 
def update(self):
 #横向移动
 if self.moving_right and self.rect.right<self.screen_rect.right:
  self.rect.centerx+=self.ai_settings.ship_speed_factor
  #纵向移动
 if self.moving_left and self.rect.left>0:
  self.rect.centerx-=self.ai_settings.ship_speed_factor
 if self.moving_up and self.rect.top>0:
  self.rect.centery-=self.ai_settings.ship_speed_factor
 if self.moving_down and self.rect.top<self.screen_top:
  self.rect.centery+=self.ai_settings.ship_speed_factor

 self.rect.centerx=self.rect.centerx
 self.rect.centery=self.rect.centery

def blitme(self):
 self.screen.blit(self.image,self.rect)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Django中对通过测试的用户进行限制访问的方法
Jul 23 Python
Djang中静态文件配置方法
Jul 30 Python
浅谈Python中的zip()与*zip()函数详解
Feb 24 Python
python flask 如何修改默认端口号的方法步骤
Jul 12 Python
python 进程间数据共享multiProcess.Manger实现解析
Sep 23 Python
Django框架下静态模板的继承操作示例
Nov 08 Python
PyTorch加载预训练模型实例(pretrained)
Jan 17 Python
python next()和iter()函数原理解析
Feb 07 Python
Python使用Numpy模块读取文件并绘制图片
May 13 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 27 Python
Python3 多线程(连接池)操作MySQL插入数据
Jun 09 Python
方法汇总:Python 安装第三方库常用
Apr 26 Python
python实现俄罗斯方块小游戏
Apr 24 #Python
iPython pylab模式启动方式
Apr 24 #Python
python实现扫雷小游戏
Apr 24 #Python
jupyter 使用Pillow包显示图像时inline显示方式
Apr 24 #Python
pyspark 随机森林的实现
Apr 24 #Python
Jupyter打开图形界面并画出正弦函数图像实例
Apr 24 #Python
pyspark给dataframe增加新的一列的实现示例
Apr 24 #Python
You might like
PHP集成FCK的函数代码
2008/09/27 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
浅析php面向对象public private protected 访问修饰符
2013/06/30 PHP
PHP jQuery表单,带验证具体实现方法
2014/02/15 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
js函数setTimeout延迟执行的简单介绍
2013/07/17 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
JavaScript将字符串转换成字符编码列表的方法
2015/03/19 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
详解Puppeteer 入门教程
2018/05/09 Javascript
React全家桶环境搭建过程详解
2018/05/18 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
JS实现的类似微信聊天效果示例
2019/01/29 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
2019/09/12 Javascript
详解Vue的ref特性的使用
2020/01/24 Javascript
JavaScript利用键盘码控制div移动
2020/03/19 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
Python实现的手机号归属地相关信息查询功能示例
2017/06/08 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
在windows下Python打印彩色字体的方法
2018/05/15 Python
python中正则表达式 re.findall 用法
2018/10/23 Python
Python八皇后问题解答过程详解
2019/07/29 Python
python 消费 kafka 数据教程
2019/12/21 Python
python的flask框架难学吗
2020/07/31 Python
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
丝芙兰墨西哥官网:Sephora墨西哥
2020/05/30 全球购物
java程序员面试交流
2012/11/29 面试题
幼儿园数学教学反思
2014/02/02 职场文书
接收函格式
2015/01/30 职场文书
追讨欠款律师函
2015/06/24 职场文书
公司周年庆典致辞
2015/07/30 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书
ElementUI实现el-form表单重置功能按钮
2021/07/21 Javascript