提问: python飞船移动问题
提问: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飞船移动问题相关推荐
- 外星人入侵 python 飞船位置_《python从入门到实践》项目一:外星人入侵
游戏编程思维导图 游戏思路 函数编写 第一次做思维导图,做的有点乱 解释:跟着<python编程从入门到实践>写完游戏程序后,写一下自己的心得体会.可以把这个游戏分为几块来理解.如果想要设 ...
- python飞船项目
python编程基础项目( 一) 系统主程序 import sys import pygamefrom settings import Settings from ship import Ship i ...
- python飞船小游戏
最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下其中的 ...
- python编程有用吗-编程小白提问Python好吗?它的用途?
Python好吗?这是一个比较矛盾的话题.Python在近几年比较火,它的热度曾一度要超越了Java.任何事情我们都需要透过现象看本质,Python这个语言在近几年比较火,都是很多培训机构,借助于人工 ...
- python中爬虫程序提问,python爬虫(二)爬取知乎问答
都说知乎上问答的质量挺高,刚学爬虫没几天,现在对其问答内容进行爬虫实验. 在知乎首页,通过输入关键词,搜索问题,之后点击问题找到该问题对应的网友回答. 根据该过程,爬虫过程需要分为两步: 1.通过关键 ...
- python飞船游戏(三)
#ship.py class Ship(Sprite): def __init__(self,ai_settings,screen): ""&qu ...
- 提问python 爬虫爬出的数据空行,但是却不是空格该怎么解决?
今天尝试用beautifulsoup爬取信息,结果爬出的数据奇奇怪怪,突然出现空行,但是却不是空格(结果如下,同时附上代码),希望大佬能帮忙解决一下. import requests from bs4 ...
- python飞船游戏(四)
中间顶部的是当前分数,右上角的是最高分和关卡数,随着关卡数的上升,精灵球的移动速度加快
- 学会读懂traceback,处理Python异常
点击上方"Python学习开发",选择"加为星标" 第一时间关注Python技术干货! 正文共:11813 字 2 图 预计阅读时间: 30 分钟 原文:htt ...
最新文章
- oracle添加新字段sql,oracle 构造添加字段的SQL语句
- 升级mysql服务器二进制备份_MySQL二进制日志备份和恢复详解
- 通过反射获取DLL的类实现加载窗体
- (经典)Hibernate的一对多关系映射(三)
- 专转本计算机专业录取分数线,2018江苏专转本各专业分数线一览!
- linux里hba状态_Windows和Linux系统查看HBA卡wwn号的方法 | 系统之家官网
- 282. Expression Add Operators
- nfc sim android8,Android NFC相关资料之MifareClassic卡(读写)
- ICCV 2019丨基于跨视角信息融合的三维人体姿态估计
- .NET开源OpenID和OAuth解决方案Thinktecture IdentityServer
- mongodb 字符串转bson_大数据存储技术选型(六)--Mongodb专题介绍
- 库没启动,报:ORA-01034: ORACLE not available
- Atitit lucence 使用总结 目录 1. 基本概念	1 1.1. Index:索引库,文档的集合组成索引。	1 2. 建立索引	2 2.1. Api查询	2 2.2. Dsl查询	3
- 【PLC】NB触摸屏开发入门
- 【Python学习】最新版pyecharts之绘制Map地图
- 电力电子 中英 对照
- PHP网页设计实现增删改查,包含报告实训内容
- 《少年维特之烦恼》经典语录:残冬行将消失,春天恍若来临。
- 数据预处理之数据缩放
- 使用PyCharm安装mayavi
热门文章
- 山东工商学院 计算机 银行,山东工商学院与中国工商银行成为战略合作伙伴
- Appium WebView 技术原理
- Nginx实战学习之负载均衡
- mapstruct实体类拷贝替代beanutils
- 音视频采集—Windows平台VFW
- 【实战】AI 怎么打麻将?
- 1037:A decorative fence
- 最全可白嫖之高光谱图像数据处理(格式转换,数据增强,通道剪切,大小裁剪,光谱显示,折线图表示)
- 技术员Ghost Win7Sp1x64纯净版V3.1(大地系统)
- 2019 计蒜之道 复赛 “星云系统” 贪心