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中global用法实例分析
Apr 30 Python
使用url_helper简化Python中Django框架的url配置教程
May 30 Python
Python实现类似jQuery使用中的链式调用的示例
Jun 16 Python
python 统计列表中不同元素的数量方法
Jun 29 Python
Python字符串逆序输出的实例讲解
Feb 16 Python
Python中的random.uniform()函数教程与实例解析
Mar 02 Python
python安装pil库方法及代码
Jun 25 Python
利用python实现冒泡排序算法实例代码
Dec 01 Python
利用python中的matplotlib打印混淆矩阵实例
Jun 16 Python
Python使用文件操作实现一个XX信息管理系统的示例
Jul 02 Python
Python列表推导式实现代码实例
Sep 09 Python
jupyter notebook更换皮肤主题的实现
Jan 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
法国:浪漫之都的咖啡文化
2021/03/03 咖啡文化
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
2013/09/28 PHP
部署PHP项目应该注意的几点事项分享
2013/12/20 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
node.js中的http.request方法使用说明
2014/12/14 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
vue-ajax小封装实例
2017/09/18 Javascript
vue+springboot前后端分离实现单点登录跨域问题解决方法
2018/01/30 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
2019/06/17 Javascript
vue2路由基本用法实例分析
2020/03/06 Javascript
python 多进程通信模块的简单实现
2014/02/20 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
Python实现小黑屋游戏的完整实例
2021/01/06 Python
css3 线性渐变和径向渐变示例附图
2014/04/08 HTML / CSS
Herve Leger官网:标志性绷带连衣裙等
2018/12/26 全球购物
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
Notino瑞典:购买香水和美容产品
2019/07/26 全球购物
护理专科毕业推荐信
2013/11/10 职场文书
网络信息管理员岗位职责
2014/01/05 职场文书
安全资料员岗位职责范本
2014/06/28 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年工程工作总结
2014/11/25 职场文书
仓管员岗位职责范本
2015/04/01 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
Python+Appium新手教程
2021/04/17 Python
mysql 8.0.24版本安装配置方法图文教程
2021/05/12 MySQL
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android
使用CSS实现小三角边框原理解析
2021/11/07 HTML / CSS
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server