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入门之语句(if语句、while语句、for语句)
Jan 19 Python
Python编程中对文件和存储器的读写示例
Jan 25 Python
python批量制作雷达图的实现方法
Jul 26 Python
基于python list对象中嵌套元组使用sort时的排序方法
Apr 18 Python
python3读取excel文件只提取某些行某些列的值方法
Jul 10 Python
Python split() 函数拆分字符串将字符串转化为列的方法
Jul 16 Python
Python学习笔记之For循环用法详解
Aug 14 Python
Django框架HttpRequest对象用法实例分析
Nov 01 Python
Python用input输入列表的实例代码
Feb 07 Python
删除pycharm鼠标右键快捷键打开项目的操作
Jan 16 Python
python可视化大屏库big_screen示例详解
Nov 23 Python
Python列表的索引与切片
Apr 07 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
多重?l件?合查?(一)
2006/10/09 PHP
php下使用以下代码连接并测试
2008/04/09 PHP
PHP原理之异常机制深入分析
2010/08/08 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
jQuery 判断元素上是否绑定了事件
2009/10/28 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
2014/01/31 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
原生js通过一行代码实现简易轮播图
2019/06/05 Javascript
layui输入框只允许输入中文且判断长度的例子
2019/09/18 Javascript
js实现GIF图片的分解和合成
2019/10/24 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
python 正则式使用心得
2009/05/07 Python
django中的setting最佳配置小结
2017/11/21 Python
Python中django学习心得
2017/12/06 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
国际书籍零售商:Wordery
2017/11/01 全球购物
下面关于"联合"的题目的输出是什么
2013/08/06 面试题
C#公司笔试题
2014/03/28 面试题
一些关于MySql加速和优化的面试题
2014/01/30 面试题
中层干部培训方案
2014/06/16 职场文书
火锅店的活动方案
2014/08/15 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书
工作失职检讨书范文
2015/05/05 职场文书
高三语文教学反思
2016/02/16 职场文书