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分割和拼接字符串
Nov 01 Python
深入理解Python中命名空间的查找规则LEGB
Aug 06 Python
剖析Python的Tornado框架中session支持的实现代码
Aug 21 Python
python3实现ftp服务功能(服务端 For Linux)
Mar 24 Python
Python通过调用mysql存储过程实现更新数据功能示例
Apr 03 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
May 16 Python
python 实现批量xls文件转csv文件的方法
Oct 23 Python
Scrapy-Redis结合POST请求获取数据的方法示例
May 07 Python
Pycharm 字体大小调整设置的方法实现
Sep 27 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
Python人工智能之混合高斯模型运动目标检测详解分析
Nov 07 Python
python 多态 协议 鸭子类型详解
Nov 27 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动态生成静态HTML网页的代码
2010/03/04 PHP
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
PHP中使用crypt()实现用户身份验证的代码
2012/09/05 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
yii2.0之GridView自定义按钮和链接用法
2014/12/15 PHP
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
JavaScript学习笔记记录我的旅程
2012/05/23 Javascript
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
Angular的事件和表单详解
2016/12/26 Javascript
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
2017/03/30 Javascript
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
[05:23]DOTA2-DPC中国联赛2月1日Recap集锦
2021/03/11 DOTA
python 多线程应用介绍
2012/12/19 Python
Python break语句详解
2014/03/11 Python
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
Python 私有函数的实例详解
2017/09/11 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
浅谈python标准库--functools.partial
2019/03/13 Python
python命令行参数用法实例分析
2019/06/25 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
2020/03/12 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
2020/05/07 Python
应征英语教师求职信
2013/11/27 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
交通事故责任认定书
2015/08/06 职场文书
python在package下继续嵌套一个package
2022/04/14 Python
Redis实现一个账号只能登录一个设备
2022/04/19 Redis
Python 绘制多因子柱状图
2022/05/11 Python