提问:python飞船移动问题

飞船根据4个方向键上下左右移动,且移动到边框时从对面出来,比如移动到最右边然后从最左边出来

但是现在问题是左右移动没问题但是上下移动就实现不了,就比如移动到最上面时飞船不会从下面出来,而是一直往上就消失了,想了半天实在没找到问题所在,求大神解答

( 抱拳)

图片:

代码

去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

"""项目: 飞船外星人游戏作者: 硕日期:  2019/7/13版本: v_1.0
"""import pygamefrom pygame.sprite import Spriteimport sysclass setting:"""系统设置类:背景长宽 背景颜色 飞船速度"""def __init__(self):self.screen_width = 1200self.screen_length = 800self.ship_speed_factor = 3self.bg_color = (230, 230, 230)self.bullet_speed_factor = 1self.bullet_width = 3self.bullet_height = 15self.bullet_color = 60, 60, 60class Ship:def __init__(self, screen, setting):self.screen = screenself.image = pygame.image.load("images/ship.bmp")self.rect = self.image.get_rect()self.screen_rect = screen.get_rect()self.setting = settingself.rect.centerx = self.screen_rect.centerxself.rect.centery = self.screen_rect.bottom - 100self.x = float(self.rect.centerx)   self.y = float(self.rect.centery)self.moving_right = Falseself.moving_left = Falseself.moving_up = Falseself.moving_down = Falsedef blitme(self):self.screen.blit(self.image, self.rect)def update(self, setting):ai_setting = settingif self.moving_right:if self.rect.right == self.screen_rect.right:self.x = 0self.x += self.setting.ship_speed_factorelse:self.x += self.setting.ship_speed_factorelif self.moving_left:if self.rect.left == self.screen_rect.left:self.x = ai_setting.screen_widthself.x -= self.setting.ship_speed_factorelse:self.x -= self.setting.ship_speed_factorelif self.moving_up:if self.rect.top == self.screen_rect.top:self.y = ai_setting.screen_lengthself.y -= self.setting.ship_speed_factorelse:self.y -= self.setting.ship_speed_factorelif self.moving_down:if self.rect.bottom == self.screen_rect.bottom:self.y = 0self.y += self.setting.ship_speed_factorelse:self.y += self.setting.ship_speed_factorself.rect.centerx = self.xself.rect.centery = self.ydef check_keydown_events(event, ship):if event.key == pygame.K_RIGHT:ship.moving_right = Trueelif event.key == pygame.K_LEFT:ship.moving_left = Trueelif event.key == pygame.K_UP:ship.moving_up = Trueelif event.key == pygame.K_DOWN:ship.moving_down = Truedef check_keyup_events(event, ship):if event.key == pygame.K_RIGHT:ship.moving_right = Falseelif event.key == pygame.K_LEFT:ship.moving_left = Falseelif event.key == pygame.K_UP:ship.moving_up = Falseelif event.key == pygame.K_DOWN:ship.moving_down = Falsedef 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_events(screen, ship, setting):screen.fill(setting.bg_color)ship.blitme()pygame.display.flip()def run_game():pygame.init()screen = pygame.display.set_mode((1200, 800))pygame.display.set_caption("Alien Invasion")ai_setting = setting()ship = Ship(screen,ai_setting)while True:check_events(ship)update_events(screen, ship, ai_setting)ship.update(ai_setting)def main():run_game()if __name__ == '__main__':main()

提问: python飞船移动问题相关推荐

  1. 外星人入侵 python 飞船位置_《python从入门到实践》项目一:外星人入侵

    游戏编程思维导图 游戏思路 函数编写 第一次做思维导图,做的有点乱 解释:跟着<python编程从入门到实践>写完游戏程序后,写一下自己的心得体会.可以把这个游戏分为几块来理解.如果想要设 ...

  2. python飞船项目

    python编程基础项目( 一) 系统主程序 import sys import pygamefrom settings import Settings from ship import Ship i ...

  3. python飞船小游戏

    最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下其中的 ...

  4. python编程有用吗-编程小白提问Python好吗?它的用途?

    Python好吗?这是一个比较矛盾的话题.Python在近几年比较火,它的热度曾一度要超越了Java.任何事情我们都需要透过现象看本质,Python这个语言在近几年比较火,都是很多培训机构,借助于人工 ...

  5. python中爬虫程序提问,python爬虫(二)爬取知乎问答

    都说知乎上问答的质量挺高,刚学爬虫没几天,现在对其问答内容进行爬虫实验. 在知乎首页,通过输入关键词,搜索问题,之后点击问题找到该问题对应的网友回答. 根据该过程,爬虫过程需要分为两步: 1.通过关键 ...

  6. python飞船游戏(三)

    #ship.py class Ship(Sprite):          def __init__(self,ai_settings,screen):         ""&qu ...

  7. 提问python 爬虫爬出的数据空行,但是却不是空格该怎么解决?

    今天尝试用beautifulsoup爬取信息,结果爬出的数据奇奇怪怪,突然出现空行,但是却不是空格(结果如下,同时附上代码),希望大佬能帮忙解决一下. import requests from bs4 ...

  8. python飞船游戏(四)

    中间顶部的是当前分数,右上角的是最高分和关卡数,随着关卡数的上升,精灵球的移动速度加快

  9. 学会读懂traceback,处理Python异常

    点击上方"Python学习开发",选择"加为星标" 第一时间关注Python技术干货! 正文共:11813 字 2 图 预计阅读时间: 30 分钟 原文:htt ...

最新文章

  1. oracle添加新字段sql,oracle 构造添加字段的SQL语句
  2. 升级mysql服务器二进制备份_MySQL二进制日志备份和恢复详解
  3. 通过反射获取DLL的类实现加载窗体
  4. (经典)Hibernate的一对多关系映射(三)
  5. 专转本计算机专业录取分数线,2018江苏专转本各专业分数线一览!
  6. linux里hba状态_Windows和Linux系统查看HBA卡wwn号的方法 | 系统之家官网
  7. 282. Expression Add Operators
  8. nfc sim android8,Android NFC相关资料之MifareClassic卡(读写)
  9. ICCV 2019丨基于跨视角信息融合的三维人体姿态估计
  10. .NET开源OpenID和OAuth解决方案Thinktecture IdentityServer
  11. mongodb 字符串转bson_大数据存储技术选型(六)--Mongodb专题介绍
  12. 库没启动,报:ORA-01034: ORACLE not available
  13. Atitit lucence 使用总结 目录 1. 基本概念 1 1.1.   Index:索引库,文档的集合组成索引。 1 2. 建立索引 2 2.1. Api查询 2 2.2. Dsl查询 3
  14. 【PLC】NB触摸屏开发入门
  15. 【Python学习】最新版pyecharts之绘制Map地图
  16. 电力电子 中英 对照
  17. PHP网页设计实现增删改查,包含报告实训内容
  18. 《少年维特之烦恼》经典语录:残冬行将消失,春天恍若来临。
  19. 数据预处理之数据缩放
  20. 使用PyCharm安装mayavi

热门文章

  1. 山东工商学院 计算机 银行,山东工商学院与中国工商银行成为战略合作伙伴
  2. Appium WebView 技术原理
  3. Nginx实战学习之负载均衡
  4. mapstruct实体类拷贝替代beanutils
  5. 音视频采集—Windows平台VFW
  6. 【实战】AI 怎么打麻将?
  7. 1037:A decorative fence
  8. 最全可白嫖之高光谱图像数据处理(格式转换,数据增强,通道剪切,大小裁剪,光谱显示,折线图表示)
  9. 技术员Ghost Win7Sp1x64纯净版V3.1(大地系统)
  10. 2019 计蒜之道 复赛 “星云系统” 贪心