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

韩语网站建设注意事项私人承包小工程哪里有

韩语网站建设注意事项,私人承包小工程哪里有,网站开发服务器的选择,织梦 去掉我的网站蛇每吃掉一个身体块#xff0c;蛇身就增加一个长度。为了统一计算#xff0c;界面的尺寸和游戏元素的位置都是身体块长度的倍数 1. 上下左右方向键#xff08;或者ASDW键#xff09;控制蛇的移动方向 2. 空格键暂停和继续蛇的身体图片文件#xff0c;复制到项目的asset\im… 蛇每吃掉一个身体块蛇身就增加一个长度。为了统一计算界面的尺寸和游戏元素的位置都是身体块长度的倍数 1. 上下左右方向键或者ASDW键控制蛇的移动方向 2. 空格键暂停和继续蛇的身体图片文件复制到项目的asset\img目录下 import sys import pygame from pygame import Rect, font import random# control panel contains the controllers and score ControlPanelColor (100, 100, 100) # game panel is the main area for gaming GamePanelColor (0, 0, 0) SnakeSize 30 MaxWidthBlock 15 MaxHeightBlock 10 ControlPanelHeightBlock 2 SnakeStartX MaxWidthBlock // 2 SnakeStartY MaxHeightBlock // 2 ControlPanelHeight ControlPanelHeightBlock * SnakeSize GamePanelWidth MaxWidthBlock * SnakeSize GamePanelHeight MaxHeightBlock * SnakeSize ControlPanelRect Rect((0, 0), (GamePanelWidth, ControlPanelHeight)) GamePanelRect Rect((0, ControlPanelHeight), (GamePanelWidth, GamePanelHeight - ControlPanelHeight)) Tick 20 Tick_Snake_Move 10 # two buttons to increase and decrease the game speed minus_btn_rect None plus_btn_rect None # score score_value 0# the SnakeBody class SnakeBody:def __init__(self, x, y, direction, isheadFalse, istailFalse):身体块蛇身是由多个身体块组成头和尾也是图案不同的身体块:param x: 身体块坐标x:param y: 身体块坐标y:param direction: 身体块显示的方向:param ishead: 是否头身体块:param istail:是否尾身体块self.__x xself.__y yself.__ishead isheadself.__istail istailself.__direction directionname Noneif self.__ishead:name head.pngelif self.__istail:name tail.pngelse:name body.pngangle 0match direction:case pygame.K_UP:angle 0case pygame.K_DOWN:angle 180case pygame.K_LEFT:angle 90case pygame.K_RIGHT:angle -90img pygame.image.load(fasset/img/{name})img pygame.transform.rotate(img, angle)self.image pygame.transform.scale(img, (SnakeSize, SnakeSize))def get_rect(self):return Rect((self.__x, self.__y), (SnakeSize, SnakeSize))def move(self, x, y):self.__x self.__x xself.__y self.__y ydef set_direction(self, direction):if self.__direction direction:returnself.__direction directionname Noneif self.__ishead:name head.pngelif self.__istail:name tail.pngelse:name body.pngangle 0match direction:case pygame.K_UP:angle 0case pygame.K_DOWN:angle 180case pygame.K_LEFT:angle 90case pygame.K_RIGHT:angle -90img pygame.image.load(fasset/img/{name})img pygame.transform.rotate(img, angle)self.image pygame.transform.scale(img, (SnakeSize, SnakeSize))def get_direction(self):return self.__directionclass Snake:bodys []new_body None__new_direction pygame.K_UP__tick_movement 0__tick_create_body 0__stop False__is_paused Falsedef __init__(self):self.bodys.insert(0, SnakeBody(SnakeSize * SnakeStartX, SnakeSize * SnakeStartY, pygame.K_UP, True, False))self.bodys.insert(1,SnakeBody(SnakeSize * SnakeStartX, SnakeSize * (SnakeStartY 1), pygame.K_UP, False, False))self.bodys.insert(2,SnakeBody(SnakeSize * SnakeStartX, SnakeSize * (SnakeStartY 2), pygame.K_UP, False, True))def set_direction(self, direction):# do not set inverse directionif ((self.bodys[0].get_direction() pygame.K_UP and direction ! pygame.K_DOWN) or(self.bodys[0].get_direction() pygame.K_DOWN and direction ! pygame.K_UP) or(self.bodys[0].get_direction() pygame.K_LEFT and direction ! pygame.K_RIGHT) or(self.bodys[0].get_direction() pygame.K_RIGHT and direction ! pygame.K_LEFT)):self.__new_direction directiondef move(self):if self.__stop:returnif self.__is_paused:returnself.__tick_movement 1if self.__tick_movement Tick_Snake_Move:returnself.__tick_movement 0length len(self.bodys)head self.bodys[0]oldheadpos head.get_rect()oldheaddirection head.get_direction()# update head direction and movehead.set_direction(self.__new_direction)match self.__new_direction:case pygame.K_UP:head.move(0, -SnakeSize)case pygame.K_DOWN:head.move(0, SnakeSize)case pygame.K_LEFT:head.move(-SnakeSize, 0)case pygame.K_RIGHT:head.move(SnakeSize, 0)if ((self.new_body is not None) and(head.get_rect().x self.new_body.get_rect().x and head.get_rect().y self.new_body.get_rect().y)):# as head move, the old head position is empty,# add the new body at the second positionself.new_body.set_direction(head.get_direction())offsetx oldheadpos.x - self.new_body.get_rect().xoffsety oldheadpos.y - self.new_body.get_rect().yself.new_body.move(offsetx, offsety)self.bodys.insert(1, self.new_body)self.new_body Noneglobal score_valuescore_value 1else:# as head move, the old head position is empty,# move the second-to-last body to the second bodysecond2lastbody self.bodys[length - 2]second2lastpos second2lastbody.get_rect()second2lastdirection second2lastbody.get_direction()offsetx oldheadpos.x - second2lastpos.xoffsety oldheadpos.y - second2lastpos.ysecond2lastbody.set_direction(oldheaddirection)second2lastbody.move(offsetx, offsety)self.bodys.remove(second2lastbody)self.bodys.insert(1, second2lastbody)# move tail to the direction of the second-to-last bodytailbody self.bodys[length - 1]tailbody.set_direction(second2lastdirection)offsetx second2lastpos.x - tailbody.get_rect().xoffsety second2lastpos.y - tailbody.get_rect().ytailbody.move(offsetx, offsety)def stop(self):self.__stop Truedef create_body(self):self.__tick_create_body 1if self.__tick_create_body 30:returnif self.is_paused():returnself.__tick_create_body 0if self.new_body is not None:returnx, y 0, 0while True:isspare Trueintx random.randint(0, MaxWidthBlock - 1)inty random.randint(ControlPanelHeightBlock, MaxHeightBlock - 1)x intx * SnakeSizey inty * SnakeSizefor b in self.bodys:rect b.get_rect()if rect.x x and rect.y y:isspare Falsebreakif isspare:breakprint(fcreate body block at {intx}, {inty})self.new_body SnakeBody(x, y, pygame.K_UP, False, False)def is_collided(self):iscollided Falsehead self.bodys[0]headrect self.bodys[0].get_rect()# boundary collisionif headrect.x (0 - SnakeSize) or headrect.x GamePanelWidth or \headrect.y (ControlPanelHeight - SnakeSize) or headrect.y (ControlPanelHeight GamePanelHeight):iscollided True# body collisionelse:if head.get_direction() pygame.K_LEFT:passfor b in self.bodys[1:len(self.bodys)]:if head.get_rect().colliderect(b.get_rect()):iscollided Truebreakreturn iscollideddef pause(self):self.__is_paused not self.__is_pauseddef is_paused(self):return self.__is_pauseddef display_result():final_text1 Game Overfinal_surf pygame.font.SysFont(Arial, SnakeSize * 2).render(final_text1, 1, (242, 3, 36)) # 设置颜色screen.blit(final_surf, [screen.get_width() / 2 - final_surf.get_width() / 2,screen.get_height() / 2 - final_surf.get_height() / 2]) # 设置显示位置def display_paused():paused_text Pausedpaused_surf pygame.font.SysFont(Arial, SnakeSize * 2).render(paused_text, 1, (242, 3, 36))screen.blit(paused_surf, [screen.get_width() / 2 - paused_surf.get_width() / 2,screen.get_height() / 2 - paused_surf.get_height() / 2])def display_control_panel():global minus_btn_rect, plus_btn_rectcolor (242, 3, 36)speed_text Speedspeed_surf pygame.font.SysFont(Arial, SnakeSize).render(speed_text, 1, blue) # 设置颜色speed_rect speed_surf.get_rect()speed_rect.x, speed_rect.y 0, 0screen.blit(speed_surf, speed_rect)offsetx speed_rect.x speed_rect.width 10text_minus -minus_btn pygame.font.SysFont(Arial, SnakeSize).render(text_minus, 1, color) # 设置颜色minus_btn_rect minus_btn.get_rect()minus_btn_rect.x, minus_btn_rect.y offsetx, 0screen.blit(minus_btn, minus_btn_rect)offsetx minus_btn_rect.x minus_btn_rect.width 10text_speed_value str(Tick - Tick_Snake_Move)speed_value_surf pygame.font.SysFont(Arial, SnakeSize).render(text_speed_value, 1, color) # 设置颜色speed_value_rect speed_value_surf.get_rect()speed_value_rect.x, speed_value_rect.y offsetx, 0screen.blit(speed_value_surf, speed_value_rect)offsetx speed_value_rect.x speed_value_rect.width 10text_plus plus_btn pygame.font.SysFont(Arial, SnakeSize).render(text_plus, 1, color) # 设置颜色plus_btn_rect plus_btn.get_rect()plus_btn_rect.x, plus_btn_rect.y offsetx, 0screen.blit(plus_btn, plus_btn_rect)score_value_text str(score_value)score_value_surf pygame.font.SysFont(Arial, SnakeSize).render(score_value_text, 1, color) # 设置颜色score_value_rect score_value_surf.get_rect()score_value_rect.x GamePanelWidth - score_value_rect.widthscore_value_rect.y 0screen.blit(score_value_surf, score_value_rect)score_text Scorescore_surf pygame.font.SysFont(Arial, SnakeSize).render(score_text, 1, blue) # 设置颜色score_rect score_surf.get_rect()score_rect.x score_value_rect.x - score_rect.width - 10score_rect.y 0screen.blit(score_surf, score_rect)def check_click(position):global Tick_Snake_Moveif minus_btn_rect None or plus_btn_rect None:returnx, y position[0], position[1]minus_btn_x, minus_btn_y minus_btn_rect.x, minus_btn_rect.yplus_btn_x, plus_btn_y plus_btn_rect.x, plus_btn_rect.yif minus_btn_x x minus_btn_x minus_btn_rect.width and \minus_btn_y y minus_btn_y minus_btn_rect.height:Tick_Snake_Move 1elif plus_btn_x x plus_btn_x plus_btn_rect.width and \plus_btn_y y plus_btn_y plus_btn_rect.height:Tick_Snake_Move - 1pygame.init() pygame.font.init() # 初始化字体 screen pygame.display.set_mode((GamePanelWidth, ControlPanelHeight GamePanelHeight)) clock pygame.time.Clock() snake Snake()screen.fill(ControlPanelColor, ControlPanelRect)while True:clock.tick(20)for event in pygame.event.get():if event.type pygame.QUIT:pygame.quit()sys.exit()elif event.type pygame.KEYDOWN:if event.key pygame.K_LEFT or event.key pygame.K_a:snake.set_direction(pygame.K_LEFT)elif event.key pygame.K_RIGHT or event.key pygame.K_d:snake.set_direction(pygame.K_RIGHT)elif event.key pygame.K_UP or event.key pygame.K_w:snake.set_direction(pygame.K_UP)elif event.key pygame.K_DOWN or event.key pygame.K_s:snake.set_direction(pygame.K_DOWN)elif event.key pygame.K_SPACE:snake.pause()if pygame.mouse.get_pressed()[0]:check_click(pygame.mouse.get_pos())screen.fill(GamePanelColor, (0, ControlPanelHeight, GamePanelWidth, ControlPanelHeight GamePanelHeight))snake.move()for body in snake.bodys:screen.blit(body.image, body.get_rect())# collision detectionif snake.is_collided():snake.stop()display_result()else:# new bodysnake.create_body()if snake.new_body is not None:screen.blit(snake.new_body.image, snake.new_body.get_rect())screen.fill(ControlPanelColor, (0, 0, GamePanelWidth, ControlPanelHeight))display_control_panel()if snake.is_paused():display_paused()pygame.display.flip()
http://www.dnsts.com.cn/news/75925.html

相关文章:

  • 吕梁建站公司自己设计app
  • 怎么去做一个网站网站建设8万属于资产吗
  • 郑州网站设计专家金山石化网站建设
  • 平顶山市湛河区建设局网站宁波网络公司招聘信息
  • 汨罗做网站安徽工程建设发展有限公司
  • 如何做文化传播公司网站网页设计代码html文件怎么查
  • 营销型网站建设应该注意什么购买域名的网站
  • 服装电子商务网站有哪些网站开发培训教程
  • 安全的网站建设服务叫别人做网站安全吗
  • 网站设计风格怎么写wordpress多用户模板
  • wordpress 文章长度上海网站优化上
  • 手机网站html声明网站网页怎么设计
  • iapp如何用网站做软件商城服务是什么软件
  • 如何查网站的icp备案企业官网框架
  • 江苏河海建设有限公司官方网站什么样的网站必须做备案
  • 官网站超链接怎么做泰安网站建设有哪些
  • 简单网站建设流程图长宁免费网站制作
  • 网站开发流程的意义小程序商店大全
  • 加强网站网络安全建设方案小程序自己制作流程
  • 欧美电影免费网站佛山网站建设工作室
  • 天津北京网站建设一个新网站要怎么优化
  • 网站备案资料修改海事网站服务平台
  • 如何做公众号小说网站赚钱wordpress首页慢
  • 做解析视频网站违法莫近期舆情热点话题
  • 如何给网站的关键词做排名app编辑软件
  • 中国新闻社名词解释企业网站搜索优化外包
  • 在猪八戒做网站有保障吗软件开发工程师任职要求
  • 深圳电子商务网站建设电脑编程软件
  • 具有口碑的柳州网站建设价格做网站的技术风险
  • 自适应网站建设案例网络营销策划方案的结构