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 实现将字典dict、列表list中的中文正常显示方法
Jul 06 Python
Python 利用pydub库操作音频文件的方法
Jan 09 Python
在Python中通过getattr获取对象引用的方法
Jan 21 Python
python批量修改文件夹及其子文件夹下的文件内容
Mar 15 Python
Django 反向生成url实例详解
Jul 30 Python
TensorFlow内存管理bfc算法实例
Feb 03 Python
基于Python测试程序是否有错误
May 16 Python
python 星号(*)的多种用途
Sep 21 Python
python 实现单例模式的5种方法
Sep 23 Python
python网络爬虫实现发送短信验证码的方法
Feb 25 Python
分位数回归模型quantile regeression应用详解及示例教程
Nov 02 Python
python pandas 解析(读取、写入)CSV 文件的操作方法
Dec 24 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
用Flash图形化数据(一)
2006/10/09 PHP
生成php程序的php代码
2008/04/07 PHP
解析PHP实现下载文件的两种方法
2013/07/05 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
2009/12/28 Javascript
javascript中的delete使用详解
2013/04/11 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
2019/07/31 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
2019/09/18 Javascript
vue实现购物车案例
2020/05/30 Javascript
vue实现登录拦截
2020/06/29 Javascript
解决vue打包报错Unexpected token: punc的问题
2020/10/24 Javascript
[01:22:42]2014 DOTA2华西杯精英邀请赛 5 24 DK VS LGD
2014/05/26 DOTA
python赋值操作方法分享
2013/03/23 Python
python之import机制详解
2014/07/03 Python
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
tensorflow中next_batch的具体使用
2018/02/02 Python
3分钟学会一个Python小技巧
2018/11/23 Python
Python 正则表达式匹配字符串中的http链接方法
2018/12/25 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
Python图像处理库PIL的ImageDraw模块介绍详解
2020/02/26 Python
简述python Scrapy框架
2020/08/17 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
Python读取pdf表格写入excel的方法
2021/01/22 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
彪马英国官网:PUMA英国
2019/02/11 全球购物
韩语专业本科生求职信
2013/10/01 职场文书
应届毕业生应聘自荐信范文
2014/02/26 职场文书
人力资源部经理助理岗位职责
2014/03/04 职场文书
2014年五一活动策划方案
2014/03/15 职场文书
mysql left join快速转inner join的过程
2021/06/30 MySQL