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实现kMeans算法
Dec 21 Python
解决tensorflow测试模型时NotFoundError错误的问题
Jul 26 Python
Python实现带下标索引的遍历操作示例
May 30 Python
在Python中COM口的调用方法
Jul 03 Python
pytorch 模型可视化的例子
Aug 17 Python
python使用socket实现的传输demo示例【基于TCP协议】
Sep 24 Python
numpy 返回函数的上三角矩阵实例
Nov 25 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 Python
将keras的h5模型转换为tensorflow的pb模型操作
May 25 Python
Pandas直接读取sql脚本的方法
Jan 21 Python
Python基础之操作MySQL数据库
May 06 Python
 Python 中 logging 模块使用详情
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分多步骤填写发布信息的简单方法实例代码
2012/09/23 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
Whatever:hover 无需javascript让IE支持丰富伪类
2010/06/29 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
简单讲解jQuery中的子元素过滤选择器
2016/04/18 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
关于webpack2和模块打包的新手指南(小结)
2017/08/07 Javascript
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
Node.js Express安装与使用教程
2018/05/11 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
python 正则表达式 概述及常用字符
2009/05/04 Python
详解Python当中的字符串和编码
2015/04/25 Python
Python发送email的3种方法
2015/04/28 Python
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
Python实现简单的语音识别系统
2017/12/13 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
解决python Jupyter不能导入外部包问题
2020/04/15 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
matplotlib自定义鼠标光标坐标格式的实现
2021/01/08 Python
前端实现打印图像功能
2019/08/27 HTML / CSS
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
婚前协议书
2014/04/15 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
第一书记观后感
2015/06/08 职场文书
商业计划书之服装
2019/09/09 职场文书
再见,2019我们不负使命;你好,2020我们砥砺前行
2020/01/03 职场文书