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

乐清站在哪成品网站建设咨询

乐清站在哪,成品网站建设咨询,网络建设与运维初级,入侵WordPress网站在《Pygame中Sprite实现逃亡游戏4》中通过碰撞检测实现了玩家、飞龙与飞火之间的碰撞处理#xff0c;基本上实现了逃亡功能。最后#xff0c;实现这个逃亡游戏中文字提示的功能。 1 操作提示 当进入游戏后#xff0c;会在玩家下方的位置给出操作提示#xff0c;如图1所示…在《Pygame中Sprite实现逃亡游戏4》中通过碰撞检测实现了玩家、飞龙与飞火之间的碰撞处理基本上实现了逃亡功能。最后实现这个逃亡游戏中文字提示的功能。 1 操作提示 当进入游戏后会在玩家下方的位置给出操作提示如图1所示。 图1 显示操作提示 1.1 定义字体 要在屏幕中显示提示信息必须首先定义字体代码如图2所示。 图2 定义字体代码 其中通过pygame.font模块中的Font()类定义字体变量font第一个参数表示字体文件也可以用None表示使用默认字体第二个参数表示字体大小。 相关链接1 pygame.font.Font()类的详细使用方法请参考《Pygame显示文字》 1.2 定义显示信息的函数 接下来自定义一个函数用来显示指定信息代码如图3所示。 图3 自定义函数代码 其中第76行代码中自定义了一个名为print_text()的函数该函数的font参数表示使用的字体x和y参数表示显示信息的位置横坐标和纵坐标text表示显示的内容color表示字体的颜色默认为白色第77-78行代码的作用是根据位置、内容和颜色显示指定信息。 相关链接2 显示信息的详细使用方法请参考《Pygame显示文字》 1.3 显示操作提示 在while True的内部使用图4所示代码显示操作提示信息。 图4 显示操作提示的代码 从图4中可以看出调用自定义函数print_text()使用font字体在350560这个位置上显示“Press SPACE to jump”信息。 注意1 图4所示的代码必须在group.draw(screen)代码之后。 2 玩家获胜提示 当飞龙被飞火击退到屏幕最左侧时玩家获胜如图5所示。 图5 玩家获胜 2.1 玩家获胜的判断 判断玩家获胜的代码在while True循环中如图6所示。 图6 判断玩家获胜的代码 第155行代码的含义是当飞龙的横坐标小于-50也就是飞龙被飞火打到屏幕左侧的一定位置处表示玩家获胜此时将获胜标志you_win设置为True游戏结束表示game_over也设置为True。 注意2 获胜标志you_win初始值是False。 2.2 获胜信息的显示 当飞龙被击退到屏幕左侧某个位置时显示玩家获胜信息代码如图7所示。 图7 玩家获胜或失败信息显示的代码 其中第163行代码判断游戏是否结束触发游戏结束的条件有两个玩家获胜或者玩家失败第164行代码调用自定义函数print_text()显示“GAME OVER”第165-168行代码对玩家获胜或者玩家失败进行判断如果you_win的值是True则表示玩家获胜否则表示玩家失败则分别调用print_text()显示成功或失败的信息。 3 玩家失败信息提示 当飞龙抓到玩家则玩家失败。飞龙抓到玩家的代码在《Pygame中Sprite实现逃亡游戏4》中已实现此时game_over为Trueyou_win为False根据图7所示代码显示玩家失败的信息效果如图8所示。 图8 显示玩家失败信息 4 完整代码 import pygame import os import time import random from pygame.locals import *class MySprite(pygame.sprite.Sprite):def __init__(self, target):pygame.sprite.Sprite.__init__(self) #extend the base Sprite classself.master_image Noneself.frame 0self.old_frame -1self.frame_width 1self.frame_height 1self.first_frame 0self.last_frame 0self.columns 1self.last_time 0#X propertydef _getx(self):return self.rect.xdef _setx(self,value):self.rect.x valueX property(_getx,_setx)#Y propertydef _gety(self):return self.rect.ydef _sety(self,value):self.rect.y valueY property(_gety,_sety)#position propertydef _getpos(self):return self.rect.topleftdef _setpos(self,pos):self.rect.topleft posposition property(_getpos,_setpos)def load(self, filename, width, height, columns):self.master_image pygame.image.load(filename).convert_alpha()self.frame_width widthself.frame_height heightself.rect Rect(0,0,width,height)self.columns columns#try to auto-calculate total framesrect self.master_image.get_rect()self.last_frame (rect.width // width) * (rect.height // height) - 1def update(self, current_time, rate30):#update animation frame numberif current_time self.last_time rate:self.frame 1if self.frame self.last_frame:self.frame self.first_frameself.last_time current_time#build current frame only if it changedif self.frame ! self.old_frame:frame_x (self.frame % self.columns) * self.frame_widthframe_y (self.frame // self.columns) * self.frame_heightrect Rect(frame_x, frame_y, self.frame_width, self.frame_height)self.image self.master_image.subsurface(rect)self.old_frame self.framedef __str__(self):return str(self.frame) , str(self.first_frame) \, str(self.last_frame) , str(self.frame_width) \, str(self.frame_height) , str(self.columns) \, str(self.rect)def reset_arrow():y random.randint(250,350)arrow.position 800,ydef print_text(font, x, y, text, color(255,255,255)):imgText font.render(text, True, color)screen.blit(imgText, (x,y))pygame.init() screen pygame.display.set_mode((800,600)) pygame.display.set_caption(Escape The Dragon Game) font pygame.font.Font(1.ttf, 18) framerate pygame.time.Clock()group pygame.sprite.Group() player MySprite(screen) player.load(caveman.png, 50, 64, 8) player.first_frame 1 player.last_frame 7 player.position 400, 303 group.add(player)bg pygame.image.load(background.png).convert_alpha()#create the dragon sprite dragon MySprite(screen) dragon.load(dragon.png, 260, 150, 3) dragon.position 100, 230 group.add(dragon)#create the arrow sprite arrow MySprite(screen) arrow.load(flame.png, 40, 16, 1) arrow.position 800,320 group.add(arrow)game_over False arrow_vel 8.0 player_jumping False you_win False jump_vel 0.0 player_start_y player.Y while True:framerate.tick(30)ticks pygame.time.get_ticks()for event in pygame.event.get():if event.type QUIT:pygame.quit()os.sys.exit()keys pygame.key.get_pressed()if keys[K_ESCAPE]:pygame.quit()os.sys.exit()elif keys[K_SPACE]:if not player_jumping:player_jumping Truejump_vel -8.0#update the arrowif not game_over:arrow.X - arrow_velif arrow.X 0:reset_arrow()if player_jumping:player.Y jump_veljump_vel 0.5if player.Y player_start_y:player.Y player_start_yplayer_jumping Falsejump_vel 0.0if pygame.sprite.collide_rect(arrow, player):reset_arrow()player.X - 10if pygame.sprite.collide_rect(arrow, dragon):reset_arrow()dragon.X - 10if pygame.sprite.collide_rect(player, dragon):game_over Trueif dragon.X -50:you_win Truegame_over Truescreen.blit(bg, (0,0))group.update(ticks, 50)group.draw(screen)print_text(font, 350, 560, Press SPACE to jump!)if game_over:print_text(font, 360, 100, G A M E O V E R)if you_win:print_text(font, 330, 130, YOU BEAT THE DRAGON!)else:print_text(font, 330, 130, THE DRAGON GOT YOU!)pygame.display.update()
http://www.hkea.cn/news/14414554/

相关文章:

  • 长沙网站建设大全给一个网站
  • 多肉建设网站前的市场分析网站域名到期后果
  • 邯郸手机网站建设wordpress记录阅读者ip
  • 微网站平台网站框架代码
  • 山东省建设备案网站审批表临沂网站推广
  • 如何建立公司网站怎么在亚马逊上开店铺
  • 网站建设可以修改吗海南建设银行官方网站
  • 台州建设局招标投标网站企业模拟网站建设
  • 无锡论坛网站建设连云港网站建设
  • 佛山网站的优化免费制作app平台
  • 高端平面设计网站湘潭电大网站
  • 《网页设计与网站建设》大作业要求北京app开发公司有哪些
  • 开题报告 网站建设检察院内部网站升级建设
  • 网站建设 业务走下坡高端轻奢品牌
  • 网站建设公司普遍存在劣势做涉黄的视频网站用什么服务器
  • cms网站开发流程业务型网站做seo
  • 做接口的网站想学网站设计
  • 门户网站开源一个新网站关键词怎么做SEO优化
  • 豆芽网站建设酷家乐在线设计官网
  • 江阴网站设计在线logo设计免费
  • 门户类网站前台网店制作
  • 长沙网站优化步骤网站建设规模用什么形容
  • 新手学网站建设wordpress设置打赏
  • 网站怎么推广引流怎样在赶集微网站做微招聘
  • 关键词做网站标题是什么意思电子商务类型的网站
  • 网站开发的认知建筑国企招聘信息网
  • 个人网站制作在线家政 东莞网站建设
  • 东莞专业网站设计专业服务留住用户网站
  • 大型商城网站建设网站可信认证
  • 网站设计专业就业方向有哪些苏州晶体公司网站