如何存储信息以正确显示构成单个游戏角色/对象/NPC的多个图像
How to store information to properly display multiple images that makeup a single game character/object/NPC?
很抱歉,我不太确定如何表达。
我是在最近发现HTML5 Canvas元素的强大功能后才开始接触2D游戏开发的。这是我的第一个基本项目,我要学习其中的诀窍。这款游戏将允许玩家加入游戏,并在一张地图上与坦克战斗。他们击杀的越多,他们可以解锁和使用的高级坦克就越多。但是,我有点纠结于如何在游戏中绘制坦克(至少是正确的)。每辆坦克都有三个图像:坦克的车身,炮塔,以及坦克开火时将被吸引到游戏中的坦克炮弹。当然,当游戏加载坦克时,它需要知道放置这些图像的正确位置。所有的坦克都有不同的尺寸,所以我不能让游戏每次都把车体和炮塔装在相同的位置。当坦克的身体被绘制到画布上时,炮塔当然需要相对于这个相应的身体来绘制。
那么我应该如何存储这些信息呢?我是否应该在代码中添加一个硬编码对象,其中包含每个坦克的炮塔偏移列表?
我希望我解释清楚了我的问题。如果有什么问题,请问我。:)
处理多个大小精灵的一种方法是使用中心点而不是通常的左上角来定义每个精灵的位置。
这样定位时,每个水箱的大小就无关紧要了。
要实现中心点定位,您可以:
- 转换到地图上所需的位置
- ,然后用偏移量-width/2和-height/2绘制图像。
,
假设你的tankBase精灵是38px宽,59px高。
然后绘制以x/y==[100,100]为中心的tankBase,你可以这样做:
ctx.translate(100,100);
ctx.drawImage(tankBase,-38/2,-59/2);
这里有一个演示:http://jsfiddle.net/m1erickson/V9uEr/
相关文章:
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- 是否可以禁用jquery中的单个单选按钮
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 如何有效地将游戏数据存储在URL查询字符串中
- 使用jquery选中/取消选中单个复选框
- Javascript游戏输入失去焦点
- 如何在p5.js中管理多智力竞赛游戏的多个屏幕
- 单个页面上有多个标记表单
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 用于多个类事件Jquery的单个函数
- 逃脱了单一角色的介绍人,而不是实际角色
- 角色扮演游戏,如何滑动世界(场景)
- 井字游戏玩家的角色选择选项
- JavaScript:任何创建X轴网格的方法,并在放置角色的游戏中使用它
- 为什么我的游戏角色在不同电脑上的速度不同?
- jQuery .animate()改变游戏角色的面向位置
- 如何存储信息以正确显示构成单个游戏角色/对象/NPC的多个图像
- 在画布游戏中使用键盘控制平滑的角色移动