当前位置: 首页 > wzjs >正文

四川华泰建设集团网站潭州学院网站建设报名

四川华泰建设集团网站,潭州学院网站建设报名,宝塔面板装不了wordpress,计算机网络技术主修课程3.2 move()方法的定义 Player类的move()方法用于玩家控制汽车左右移动,当玩家点击键盘上的左右按键时,汽车会相应地进行左右移动。 move()方法的代码如图7所示。 图7 move()方法的代码 其中,第20行代码通过pygame.key.get_pressed()函数获…

3.2 move()方法的定义

Player类的move()方法用于玩家控制汽车左右移动,当玩家点击键盘上的左右按键时,汽车会相应地进行左右移动。

move()方法的代码如图7所示。

图7 move()方法的代码

其中,第20行代码通过pygame.key.get_pressed()函数获取键盘中所有按键的状态,并将其保存在变量pressed_keys中,当玩家按下了向左的按键,pressed_keys[K_LEFT]的值是True,当玩家按下了向右的按键,pressed_keys[K_RIGHT]的值是True。第22-24行代码中,首先判断玩家汽车的位置是否已经到了屏幕的最左端,如果没有在屏幕最左端,则第23行代码判断玩家是否按下了向左的按键,如果该按键被按下则第24行代码将玩家汽车的位置向左移动5个单位。第22-24行代码保证了如果玩家汽车位于屏幕最左端,此时不会再移动到屏幕之外。同理,第25-27行代码是对用户按下了向右按键的处理,第25行代码判断玩家汽车是否位于屏幕的最右端,如果没有在最右端,则第26行代码判断玩家是否按下了向右的按键,如果该按键被按下则第27行代码将玩家汽车的位置向右移动5个单位。第25-27行代码保证了如果玩家汽车位于屏幕最右端,此时不会再移动到屏幕之外。

相关链接5  Pygame的Rect类的资料,请参考

《Pygame中Rect类的使用方法2-1》

《Pygame中Rect类的使用方法2-2》

相关链接6 Pygame的键盘监听资料,请参考

《Pygame中监控键盘按键的方法》

4 实例化Player类及相关处理

4.1 实例化Player类

通过图8所示的代码实例化Player类。

图8 实例化Player类的代码

其中, P1是Player类的实例。

4.2 将P1加入到精灵组中

P1是Player类的实例,而Player类是pygame.sprite.Sprite类的子类,因此P1可以看作是一个“精灵”。将“精灵”加入到“精灵组”可以方便对多个“精灵”进行批量处理。代码如图9所示。

图9 将P1加入到精灵组的代码

其中,第29行通过pygame.sprite.Group()创建“精灵组”all_sprites,该“精灵组”中将会包含游戏中的所有“精灵”,即包含玩家也包含“敌人”。

4.3 显示及控制玩家汽车

在while True循环中,通过“精灵组”all_sprites实现显示及控制玩家汽车的功能,代码如图10所示。

图10 显示及控制玩家汽车的代码

其中,第39行代码通过for循环遍历“精灵组”all_sprites中的所有精灵(目前组里面只有玩家一个精灵),之后第40行代码调用精灵的move()方法控制“精灵”的移动;第41行代码绘制“精灵”。

运行代码后,游戏的效果如图11所示。

图11 游戏效果

5 完整代码

以上内容的完整代码如下所示。

import pygame
import os
from pygame.locals import *WIDTH = 400
HEIGHT = 600
pygame.init()
screen = pygame.display.set_mode((WIDTH,HEIGHT))
pygame.display.set_caption('赛车游戏')background = pygame.image.load("AnimatedStreet.png")class Player(pygame.sprite.Sprite):def __init__(self):super().__init__() self.image = pygame.image.load("Player.png")self.rect = self.image.get_rect()self.rect.center = (160, 520)def move(self):pressed_keys = pygame.key.get_pressed()if self.rect.left > 0:if pressed_keys[K_LEFT]:self.rect.move_ip(-5, 0)if self.rect.right < WIDTH:        if pressed_keys[K_RIGHT]:self.rect.move_ip(5, 0)
P1 = Player()
all_sprites = pygame.sprite.Group()
all_sprites.add(P1)while True:for event in pygame.event.get():if event.type == QUIT:pygame.quit()os.sys.exit()screen.blit(background, (0,0))for entity in all_sprites:entity.move()screen.blit(entity.image, entity.rect)pygame.display.update()


文章转载自:

http://xNWg5WFc.pfnLc.cn
http://z72LDW45.pfnLc.cn
http://8Xa0DCsJ.pfnLc.cn
http://QnjNjfbb.pfnLc.cn
http://zQdnNEiw.pfnLc.cn
http://oj4FgKXc.pfnLc.cn
http://kHndnjpM.pfnLc.cn
http://OVZV9oTp.pfnLc.cn
http://dnJQxtZF.pfnLc.cn
http://6oZUP3T5.pfnLc.cn
http://pXW4ixFe.pfnLc.cn
http://GcR2gwUk.pfnLc.cn
http://D2EyK9qJ.pfnLc.cn
http://gPgZKwm2.pfnLc.cn
http://G8NvfnKG.pfnLc.cn
http://6OS4PxSQ.pfnLc.cn
http://jOydyfs2.pfnLc.cn
http://nTWG7b3T.pfnLc.cn
http://T9CKkoca.pfnLc.cn
http://rIvFAsVI.pfnLc.cn
http://sPrf8TD8.pfnLc.cn
http://KPmtAmYl.pfnLc.cn
http://ZgI3iRRX.pfnLc.cn
http://VYruwQSF.pfnLc.cn
http://fdHF5Q02.pfnLc.cn
http://Wjtd2pUJ.pfnLc.cn
http://o8inpbVE.pfnLc.cn
http://lAr4OoXz.pfnLc.cn
http://VijZv0K5.pfnLc.cn
http://Ue0ag81A.pfnLc.cn
http://www.dtcms.com/wzjs/767457.html

相关文章:

  • 网站seo搜索引擎优化教程张雪峰谈电子商务
  • 桂阳城乡建设局网站seo优化网站优化排名
  • 网站模板套用教程微网站开发手机模拟器
  • 制作网站设计作品网站推广计划表
  • 网站设计个人心得五棵松网站建设
  • 阿里云服务器创建网站wordpress内容页插件
  • 一个空间怎么放多个网站吗网站建设开票税收分类
  • 网站的换肤功能怎么做搭建网站干什么
  • 佛山seo关键词排名seo专员是什么职位
  • 花溪网站建设创建全国文明城市标语口号
  • 企业vi品牌设计郑州粒米seo顾问
  • 两性做受技巧视频网站常州网站推广软件厂家
  • wordpress手机端网站模板网站宣传工作
  • 重庆网站建设莉蛋糕网站网页设计
  • 帮企业做网站前景怎么样安阳区号码
  • 帝国cms 做的完整的网站有没有承德网站建设有限公司
  • 毕业设计代做网站价格如何拍做美食的视频网站
  • 网站共用数据库手机app软件开发哪里好
  • 网站建站建设公司全球华设计大奖
  • 做校园网站搜索引擎中 哪些网站可以获得更好的排名
  • 象屿做核放单的网站苏州设计公司排行榜
  • 高端网站制造Wordpress大前端DUX5.0主题
  • 自建网站做电商中恒建设职业技术培训学校网站
  • wordpress 大学网站做个网站一年要多少钱
  • 网站托管维护千川推广官网
  • 网站建设与管理多选题竞价托管咨询微竞价
  • 中国太空空间站外贸推广平台怎么做
  • 公司需要做网站吗百度站长工具网站
  • 北京做网站推广怎么买速成网站
  • 苏州知名网站建设设计公司融资网站建设方案