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 相关文章推荐
Python实现批量把SVG格式转成png、pdf格式的代码分享
Aug 21 Python
Python实现提取文章摘要的方法
Apr 21 Python
浅谈python抛出异常、自定义异常, 传递异常
Jun 20 Python
python中星号变量的几种特殊用法
Sep 07 Python
对python中使用requests模块参数编码的不同处理方法
May 18 Python
Python迭代器与生成器基本用法分析
Jul 26 Python
Python3 导入上级目录中的模块实例
Feb 16 Python
通过实例了解python__slots__使用方法
Sep 14 Python
python 用opencv实现霍夫线变换
Nov 27 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
Jan 27 Python
基于tensorflow __init__、build 和call的使用小结
Feb 26 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
Mar 03 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获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
2009/10/11 PHP
php mssql扩展SQL查询中文字段名解决方法
2012/10/15 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
快速解决PHP调用Word组件DCOM权限的问题
2017/12/27 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
写了一个layout,拖动条连贯,内容区可为iframe
2007/08/19 Javascript
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
JS的Document属性和方法小结
2013/09/17 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
JavaScript基于setTimeout实现计数的方法
2015/05/08 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
react 中父组件与子组件双向绑定问题
2019/05/20 Javascript
Vue中遍历数组的新方法实例详解
2019/07/21 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
Python中optparse模块使用浅析
2015/01/01 Python
Python使用urllib2模块实现断点续传下载的方法
2015/06/17 Python
python爬虫之百度API调用方法
2017/06/11 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
2018/04/26 Python
用python处理MS Word的实例讲解
2018/05/08 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
Python实现带下标索引的遍历操作示例
2019/05/30 Python
简单了解python PEP的一些知识
2019/07/13 Python
python中_del_还原数据的方法
2020/12/09 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
车辆转让协议书
2014/04/15 职场文书
我为党旗添光彩演讲稿
2014/09/10 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
传单、海报早OUT了,另类传单营销方案送给你!
2019/07/15 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
使用springMVC所需要的pom配置
2021/09/15 Java/Android
MySQL数据库之内置函数和自定义函数 function
2022/06/16 MySQL