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

如何登陆建设银行信用卡网站网站开发用什么数据库

如何登陆建设银行信用卡网站,网站开发用什么数据库,做h5的网站页面,网站后台fpt学习 Python 之 Pygame 开发魂斗罗#xff08;二#xff09;魂斗罗的需求开始编写魂斗罗1. 搭建主类框架2. 设置游戏运行遍历和创建窗口3. 获取窗口中的事件4. 创建角色5. 完成角色更新函数魂斗罗的需求 魂斗罗游戏中包含很多个物体#xff0c;现在要对这些物体进行总结 类… 学习 Python 之 Pygame 开发魂斗罗二魂斗罗的需求开始编写魂斗罗1. 搭建主类框架2. 设置游戏运行遍历和创建窗口3. 获取窗口中的事件4. 创建角色5. 完成角色更新函数魂斗罗的需求 魂斗罗游戏中包含很多个物体现在要对这些物体进行总结 类名包含的操作包含的属性玩家1类跳跃、行走、落下、更新生命速度伤害方向类型玩家2类跳跃、行走、落下、更新生命速度伤害方向类型敌人类跳跃、行走、落下、更新生命速度伤害方向类型子弹类移动显示方向伤害发射源速度桥类、陷阱类、奖励类、BOSS类……音效类播放停止设置音乐-爆炸效果类显示是否可以摧毁主类…… 物体总结完毕后规划一下窗口的大小下面是我设置的窗口大小 由于地图素材的大小限制下面这个窗口的大小刚刚合适 开始编写魂斗罗 那么我们开始来编写魂斗罗吧 1. 搭建主类框架 同样地先写主类主类是整个游戏运作的类我们也可以不用这样的方式可以使用函数代替 import pygameclass MainGame:window Nonedef __init__(self):passdef run(self):passif __name__ __main__:pass2. 设置游戏运行遍历和创建窗口 魂斗罗游戏不像坦克大战坦克大战中坦克移动是把图片放到不同的位置而魂斗罗中人物移动有移动的动画跳跃也有跳跃的动画我们需要设置帧率通过控制帧率来实现动画效果 首先创建一个常量Constants.py文件用于存放游戏中使用的常量 from enum import Enum# 玩家的四种状态 class State(Enum):STAND 1WALK 2JUMP 3FALL 4# 玩家的方向 class Direction(Enum):RIGHT 1LEFT 2# 设置窗口大小 SCREEN_HEIGHT 600 SCREEN_WIDTH 800 GROUND_HEIGHT 63# 玩家x方向速度 PLAYER_X_SPEED 3设置遍历和创建窗口 def __init__(self):# 初始化展示模块pygame.display.init()SCREEN_SIZE (SCREEN_WIDTH, SCREEN_HEIGHT)# 初始化窗口MainGame.window pygame.display.set_mode(SCREEN_SIZE)# 设置窗口标题pygame.display.set_caption(魂斗罗角色)# 是否结束游戏self.isEnd False# 获取按键self.keys pygame.key.get_pressed()# 帧率self.fps 60self.clock pygame.time.Clock()修改一下run()函数 def run(self):while not self.isEnd:# 设置背景颜色pygame.display.get_surface().fill((0, 0, 0))# 更新窗口pygame.display.update()# 设置帧率self.clock.tick(self.fps)fps self.clock.get_fps()caption 魂斗罗 - {:.2f}.format(fps)pygame.display.set_caption(caption)else:sys.exit()完整主类代码 import sys import pygame from Constants import *class MainGame:window Nonedef __init__(self):# 初始化展示模块pygame.display.init()SCREEN_SIZE (SCREEN_WIDTH, SCREEN_HEIGHT)# 初始化窗口MainGame.window pygame.display.set_mode(SCREEN_SIZE)# 设置窗口标题pygame.display.set_caption(魂斗罗角色)# 是否结束游戏self.isEnd False# 获取按键self.keys pygame.key.get_pressed()# 帧率self.fps 60self.clock pygame.time.Clock()def run(self):while not self.isEnd:# 设置背景颜色pygame.display.get_surface().fill((0, 0, 0))# 更新窗口pygame.display.update()# 设置帧率self.clock.tick(self.fps)fps self.clock.get_fps()caption 魂斗罗 - {:.2f}.format(fps)pygame.display.set_caption(caption)else:sys.exit()if __name__ __main__:MainGame().run()运行一下看看窗口 3. 获取窗口中的事件 在魂斗罗中玩家移动是必不可少的操作因此键盘事件响应是必不可少的 def getPlayingModeEvent(self):# 获取事件列表for event in pygame.event.get():# 点击窗口关闭按钮if event.type pygame.QUIT:self.isEnd True# 键盘按键按下elif event.type pygame.KEYDOWN:self.keys pygame.key.get_pressed()# 键盘按键抬起elif event.type pygame.KEYUP:self.keys pygame.key.get_pressed()获取窗口中的事件用于玩家角色移动、发射子弹等操作 在这个游戏中我规定aswd操控玩家移动j攻击k跳跃 import sys import pygame from Constants import *class MainGame:window Nonedef __init__(self):# 初始化展示模块pygame.display.init()SCREEN_SIZE (SCREEN_WIDTH, SCREEN_HEIGHT)# 初始化窗口MainGame.window pygame.display.set_mode(SCREEN_SIZE)# 设置窗口标题pygame.display.set_caption(魂斗罗角色)# 是否结束游戏self.isEnd False# 获取按键self.keys pygame.key.get_pressed()# 帧率self.fps 60self.clock pygame.time.Clock()def run(self):while not self.isEnd:# 设置背景颜色pygame.display.get_surface().fill((0, 0, 0))# 获取窗口中的事件self.getPlayingModeEvent()# 更新窗口pygame.display.update()# 设置帧率self.clock.tick(self.fps)fps self.clock.get_fps()caption 魂斗罗 - {:.2f}.format(fps)pygame.display.set_caption(caption)else:sys.exit()def getPlayingModeEvent(self):# 获取事件列表for event in pygame.event.get():# 点击窗口关闭按钮if event.type pygame.QUIT:self.isEnd True# 键盘按键按下elif event.type pygame.KEYDOWN:self.keys pygame.key.get_pressed()# 键盘按键抬起elif event.type pygame.KEYUP:self.keys pygame.key.get_pressed()if __name__ __main__:MainGame().run()4. 创建角色 创建一个玩家类实现玩家的移动和射击玩家类需要继承 pygame.sprite.Sprite类用来实现物体的碰撞检测 import pygame from Constants import *class PlayerOne(pygame.sprite.Sprite):def __init__(self, currentTime):pygame.sprite.Sprite.__init__(self)passdef update(self, playerBulletList, keys, currentTime):pass创建玩家类后先把玩家图片加载进来这里需要写一个函数用来处理图片 在常量Constants.py文件中写一个函数用来加载图片 def loadImage(filename, hReverse False):image pygame.image.load(filename)if hReverse:image pygame.transform.flip(image, True, False)rect image.get_rect()image pygame.transform.scale(image,(int(rect.width * 2.5), int(rect.height * 2.5)))image image.convert_alpha()return image这个函数用来设置图片放缩和水平翻转 因为素材中大多数图片都是向右的如果要得到向左的必须要进行翻转为了方便我就没有处理素材直接使用了翻转 文件中翻转和缩放代码在学习 Python 之 Pygame 开发魂斗罗一中已经见过了 完整的常量文件 from enum import Enum import pygameclass State(Enum):STAND 1WALK 2JUMP 3FALL 4SQUAT 5class Direction(Enum):RIGHT 1LEFT 2def loadImage(filename, hReverse False):image pygame.image.load(filename)if hReverse:image pygame.transform.flip(image, True, False)rect image.get_rect()image pygame.transform.scale(image,(int(rect.width * 2.5), int(rect.height * 2.5)))image image.convert_alpha()return image# 设置窗口大小 SCREEN_HEIGHT 600 SCREEN_WIDTH 800 GROUND_HEIGHT 63# 玩家x方向速度 PLAYER_X_SPEED 3这里需要注意一点由于玩家移动时有动画效果所有我们载入的图片是连续的好几张 下面是图片的素材 链接https://pan.baidu.com/s/1X7tESkes_O6nbPxfpHD6hQ?pwdhdly 提取码hdly 有了素材开始读取图片吧修改玩家类的__init__()函数 def __init__(self, currentTime):pygame.sprite.Sprite.__init__(self)# 加载角色图片self.standRightImage loadImage(../Image/Player/Player1/Right/stand.png)self.standLeftImage loadImage(../Image/Player/Player1/Left/stand.png)self.upRightImage loadImage(../Image/Player/Player1/Up/upRight(small).png)self.upLeftImage loadImage(../Image/Player/Player1/Up/upLeft(small).png)self.downRightImage loadImage(../Image/Player/Player1/Down/down.png)self.downLeftImage loadImage(../Image/Player/Player1/Down/down.png, True)self.obliqueUpRightImages [loadImage(../Image/Player/Player1/Up/rightUp1.png),loadImage(../Image/Player/Player1/Up/rightUp2.png),loadImage(../Image/Player/Player1/Up/rightUp3.png),]self.obliqueUpLeftImages [loadImage(../Image/Player/Player1/Up/rightUp1.png, True),loadImage(../Image/Player/Player1/Up/rightUp2.png, True),loadImage(../Image/Player/Player1/Up/rightUp3.png, True),]self.obliqueDownRightImages [loadImage(../Image/Player/Player1/ObliqueDown/1.png),loadImage(../Image/Player/Player1/ObliqueDown/2.png),loadImage(../Image/Player/Player1/ObliqueDown/3.png),]self.obliqueDownLeftImages [loadImage(../Image/Player/Player1/ObliqueDown/1.png, True),loadImage(../Image/Player/Player1/ObliqueDown/2.png, True),loadImage(../Image/Player/Player1/ObliqueDown/3.png, True),]# 角色向右的全部图片self.rightImages [loadImage(../Image/Player/Player1/Right/run1.png),loadImage(../Image/Player/Player1/Right/run2.png),loadImage(../Image/Player/Player1/Right/run3.png)]# 角色向左的全部图片self.leftImages [loadImage(../Image/Player/Player1/Left/run1.png),loadImage(../Image/Player/Player1/Left/run2.png),loadImage(../Image/Player/Player1/Left/run3.png)]# 角色跳跃的全部图片self.upRightImages [loadImage(../Image/Player/Player1/Jump/jump1.png),loadImage(../Image/Player/Player1/Jump/jump2.png),loadImage(../Image/Player/Player1/Jump/jump3.png),loadImage(../Image/Player/Player1/Jump/jump4.png),]self.upLeftImages [loadImage(../Image/Player/Player1/Jump/jump1.png, True),loadImage(../Image/Player/Player1/Jump/jump2.png, True),loadImage(../Image/Player/Player1/Jump/jump3.png, True),loadImage(../Image/Player/Player1/Jump/jump4.png, True),]self.rightFireImages [loadImage(../Image/Player/Player1/Right/fire1.png),loadImage(../Image/Player/Player1/Right/fire2.png),loadImage(../Image/Player/Player1/Right/fire3.png),]self.leftFireImages [loadImage(../Image/Player/Player1/Right/fire1.png, True),loadImage(../Image/Player/Player1/Right/fire2.png, True),loadImage(../Image/Player/Player1/Right/fire3.png, True),]图片读取好后我们需要设置一些索引用来记录当前应该加载哪一张图片 举个简单的例子人物向右行走的图片有三张如下图 我们需要在人物跑动的时候循环加载这三张图片所以要设置一个索引用来记录当前加载到了哪一张如果是第三张那么把索引再变为0这样下次就又开始加载第一张图片了循环下去就可以看到人物跑动的动画了 好那我们就来设置索引 def __init__(self, currentTime):...# 角色左右移动下标self.imageIndex 0# 角色跳跃下标self.upImageIndex 0# 角色斜射下标self.obliqueImageIndex 0...有了下标还要考虑加载图片的间隔这个游戏中在前面我们已经设置了游戏的帧率为60就是一秒加载60张图片如果不设置时间间隔玩家移动的时候加载的图片是闪的因为太快了看不清楚所以要设置间隔 首先记录下上次加载的图片的时间然后在显示玩家图片时用当前的时间减去上次加载图片的时间如果相差一定的间隔那么就让索引1超过图片个数就把索引置为0 下面是设置上一次加载图片的时间变量 def __init__(self, currentTime):...# 上一次显示图片的时间self.runLastTimer currentTimeself.fireLastTimer currentTime...这里要区分一下因为玩家移动的时候也可以射击所以移动射击的图片和移动不射击的图片要分开索引防止混淆 之后设置一下玩家的其他属性 # 选择当前要显示的图片self.image self.standRightImage# 获取图片的rectself.rect self.image.get_rect()# 设置角色的状态self.state State.FALL# 角色的方向self.direction Direction.RIGHT# 速度self.xSpeed PLAYER_X_SPEEDself.ySpeed 0self.jumpSpeed -11# 人物当前的状态标志self.isStanding Falseself.isWalking Falseself.isJumping Trueself.isSquating Falseself.isFiring False# 重力加速度self.gravity 0.7# 玩家上下的朝向self.isUp Falseself.isDown False角色一开始是降落的状态是因为开始的时候角色从天而降 # 人物当前的状态标志 self.isStanding False self.isWalking False self.isJumping True self.isSquating False self.isFiring False# 玩家上下的朝向 self.isUp False self.isDown False这两组属性用来画出当前角色的图片 完整的角色类代码 import pygame from Constants import *class PlayerOne(pygame.sprite.Sprite):def __init__(self, currentTime):pygame.sprite.Sprite.__init__(self)# 加载角色图片self.standRightImage loadImage(../Image/Player/Player1/Right/stand.png)self.standLeftImage loadImage(../Image/Player/Player1/Left/stand.png)self.upRightImage loadImage(../Image/Player/Player1/Up/upRight(small).png)self.upLeftImage loadImage(../Image/Player/Player1/Up/upLeft(small).png)self.downRightImage loadImage(../Image/Player/Player1/Down/down.png)self.downLeftImage loadImage(../Image/Player/Player1/Down/down.png, True)self.obliqueUpRightImages [loadImage(../Image/Player/Player1/Up/rightUp1.png),loadImage(../Image/Player/Player1/Up/rightUp2.png),loadImage(../Image/Player/Player1/Up/rightUp3.png),]self.obliqueUpLeftImages [loadImage(../Image/Player/Player1/Up/rightUp1.png, True),loadImage(../Image/Player/Player1/Up/rightUp2.png, True),loadImage(../Image/Player/Player1/Up/rightUp3.png, True),]self.obliqueDownRightImages [loadImage(../Image/Player/Player1/ObliqueDown/1.png),loadImage(../Image/Player/Player1/ObliqueDown/2.png),loadImage(../Image/Player/Player1/ObliqueDown/3.png),]self.obliqueDownLeftImages [loadImage(../Image/Player/Player1/ObliqueDown/1.png, True),loadImage(../Image/Player/Player1/ObliqueDown/2.png, True),loadImage(../Image/Player/Player1/ObliqueDown/3.png, True),]# 角色向右的全部图片self.rightImages [loadImage(../Image/Player/Player1/Right/run1.png),loadImage(../Image/Player/Player1/Right/run2.png),loadImage(../Image/Player/Player1/Right/run3.png)]# 角色向左的全部图片self.leftImages [loadImage(../Image/Player/Player1/Left/run1.png),loadImage(../Image/Player/Player1/Left/run2.png),loadImage(../Image/Player/Player1/Left/run3.png)]# 角色跳跃的全部图片self.upRightImages [loadImage(../Image/Player/Player1/Jump/jump1.png),loadImage(../Image/Player/Player1/Jump/jump2.png),loadImage(../Image/Player/Player1/Jump/jump3.png),loadImage(../Image/Player/Player1/Jump/jump4.png),]self.upLeftImages [loadImage(../Image/Player/Player1/Jump/jump1.png, True),loadImage(../Image/Player/Player1/Jump/jump2.png, True),loadImage(../Image/Player/Player1/Jump/jump3.png, True),loadImage(../Image/Player/Player1/Jump/jump4.png, True),]self.rightFireImages [loadImage(../Image/Player/Player1/Right/fire1.png),loadImage(../Image/Player/Player1/Right/fire2.png),loadImage(../Image/Player/Player1/Right/fire3.png),]self.leftFireImages [loadImage(../Image/Player/Player1/Right/fire1.png, True),loadImage(../Image/Player/Player1/Right/fire2.png, True),loadImage(../Image/Player/Player1/Right/fire3.png, True),]# 角色左右移动下标self.imageIndex 0# 角色跳跃下标self.upImageIndex 0# 角色斜射下标self.obliqueImageIndex 0# 上一次显示图片的时间self.runLastTimer currentTimeself.fireLastTimer currentTime# 选择当前要显示的图片self.image self.standRightImage# 获取图片的rectself.rect self.image.get_rect()# 设置角色的状态self.state State.FALL# 角色的方向self.direction Direction.RIGHT# 速度self.xSpeed PLAYER_X_SPEEDself.ySpeed 0self.jumpSpeed -11# 人物当前的状态标志self.isStanding Falseself.isWalking Falseself.isJumping Trueself.isSquating Falseself.isFiring False# 重力加速度self.gravity 0.7self.isUp Falseself.isDown Falsedef update(self, playerBulletList, keys, currentTime):pass5. 完成角色更新函数 先根据状态读取下一次操作再更新玩家位置再根据方向和状态标志觉得玩家显示的图片 def update(self, keys, currentTime):# 更新站或者走的状态# 根据状态响应按键if self.state State.STAND:self.standing(keys, currentTime)elif self.state State.WALK:self.walking(keys, currentTime)elif self.state State.JUMP:self.jumping(keys, currentTime)elif self.state State.FALL:self.falling(keys, currentTime)# 更新位置# 记录前一次的位置坐标pre self.rect.xself.rect.x self.xSpeedself.rect.y self.ySpeed# 如果x位置小于0了就不能移动防止人物跑到屏幕左边if self.rect.x 0:self.rect.x pre根据状态标志设置角色图片 # 更新动画# 跳跃状态if self.isJumping:# 根据方向if self.direction Direction.RIGHT:# 方向向右角色加载向右跳起的图片self.image self.upRightImages[self.upImageIndex]else:# 否则方向向左角色加载向左跳起的图片self.image self.upLeftImages[self.upImageIndex]# 角色蹲下if self.isSquating:if self.direction Direction.RIGHT:# 加载向右蹲下的图片self.image self.downRightImageelse:# 加载向左蹲下的图片self.image self.downLeftImage# 角色站着if self.isStanding:if self.direction Direction.RIGHT:if self.isUp:# 加载向右朝上的图片self.image self.upRightImageelif self.isDown:# 加载向右蹲下的图片self.image self.downRightImageelse:# 加载向右站着的图片self.image self.standRightImageelse:# 向左也是同样的效果if self.isUp:self.image self.upLeftImageelif self.isDown:self.image self.downLeftImageelse:self.image self.standLeftImage# 角色移动if self.isWalking:if self.direction Direction.RIGHT:if self.isUp:# 加载斜右上的图片self.image self.obliqueUpRightImages[self.obliqueImageIndex]elif self.isDown:# 加载斜右下的图片self.image self.obliqueDownRightImages[self.obliqueImageIndex]else:# 加载向右移动的图片根据开火状态是否加载向右开火移动的图片if self.isFiring:self.image self.rightFireImages[self.imageIndex]else:self.image self.rightImages[self.imageIndex]else:if self.isUp:self.image self.obliqueUpLeftImages[self.obliqueImageIndex]elif self.isDown:self.image self.obliqueDownLeftImages[self.obliqueImageIndex]else:if self.isFiring:self.image self.leftFireImages[self.imageIndex]else:self.image self.leftImages[self.imageIndex]完整的update()函数 def update(self, playerBulletList, keys, currentTime):# 更新站或者走的状态# 根据状态响应按键if self.state State.STAND:self.standing(keys, currentTime, playerBulletList)elif self.state State.WALK:self.walking(keys, currentTime, playerBulletList)elif self.state State.JUMP:self.jumping(keys, currentTime, playerBulletList)elif self.state State.FALL:self.falling(keys, currentTime, playerBulletList)# 更新位置# 记录前一次的位置坐标pre self.rect.xself.rect.x self.xSpeedself.rect.y self.ySpeed# 如果x位置小于0了就不能移动防止人物跑到屏幕左边if self.rect.x 0:self.rect.x pre# 更新动画# 跳跃状态if self.isJumping:# 根据方向if self.direction Direction.RIGHT:# 方向向右角色加载向右跳起的图片self.image self.upRightImages[self.upImageIndex]else:# 否则方向向左角色加载向左跳起的图片self.image self.upLeftImages[self.upImageIndex]# 角色蹲下if self.isSquating:if self.direction Direction.RIGHT:# 加载向右蹲下的图片self.image self.downRightImageelse:# 加载向左蹲下的图片self.image self.downLeftImage# 角色站着if self.isStanding:if self.direction Direction.RIGHT:if self.isUp:# 加载向右朝上的图片self.image self.upRightImageelif self.isDown:# 加载向右蹲下的图片self.image self.downRightImageelse:# 加载向右站着的图片self.image self.standRightImageelse:# 向左也是同样的效果if self.isUp:self.image self.upLeftImageelif self.isDown:self.image self.downLeftImageelse:self.image self.standLeftImage# 角色移动if self.isWalking:if self.direction Direction.RIGHT:if self.isUp:# 加载斜右上的图片self.image self.obliqueUpRightImages[self.obliqueImageIndex]elif self.isDown:# 加载斜右下的图片self.image self.obliqueDownRightImages[self.obliqueImageIndex]else:# 加载向右移动的图片根据开火状态是否加载向右开火移动的图片if self.isFiring:self.image self.rightFireImages[self.imageIndex]else:self.image self.rightImages[self.imageIndex]else:if self.isUp:self.image self.obliqueUpLeftImages[self.obliqueImageIndex]elif self.isDown:self.image self.obliqueDownLeftImages[self.obliqueImageIndex]else:if self.isFiring:self.image self.leftFireImages[self.imageIndex]else:self.image self.leftImages[self.imageIndex]之后就是对四个状态函数进行完善啦
http://www.dnsts.com.cn/news/119968.html

相关文章:

  • 医疗网站跳出率平均是多少江西营销型网站建设
  • 广东企业网站建设公司价格商贸公司网站建设极致发烧
  • 网站开发与维护课程设计查询网站收录
  • 英文seo网站建设查询网站备案号app
  • 网站作业代做网站静态页面访问很快php页面访问非常慢
  • 浙江建设职业技术学院招生网站百度账号安全中心官网
  • 文小库公文写作网站phpstuy wordpress
  • 房地产公司网站建设模板模仿别人的网站
  • 建筑网址大全网站17做网站新塘牛仔城
  • 免费的购物网站源码dedecms仿站
  • 织梦做的网站织梦修改网页怎么给网站添加站点统计
  • 订单网站怎么做简单的app开发案例
  • 如何在网站页面做标注白城seo
  • 代做视频的网站电子商务网站建设 代码
  • 厦门网站制作费用商业空间设计案例
  • 做长直播的房地产网站西安短视频制作公司
  • appcms程序怎么做网站中铁建设集团北京工程有限公司
  • 东莞网站设计制作网站汕头做网站设计
  • 北京网站开发哪家强机械加工外协加工网
  • windows 网站开发环境营销型网站建设报价
  • 贺州市城乡住房建设厅网站深圳 网站建设培训学校
  • 东莞网站建设设计公司哪家好网站职业培训学校
  • 建个网站花钱做百度推广宝安电子厂做网站
  • 做视频背景音乐专用网站莱芜百度推广电话
  • 带论坛的网站模板下载地址便利的聊城网站建设
  • 网站制作模版30天网站建设全程实录 pdf
  • h5建站系统建筑企业办公系统公司
  • 网站推广需求如何修改wordpress的字体
  • 设计通网站建设网站建设基础报告
  • 上海电商网站建设公司排名网站建设竞争大吗