首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何存储信息以正确显示构成单个游戏字符/对象/NPC的多个图像?

如何存储信息以正确显示构成单个游戏字符/对象/NPC的多个图像?
EN

Stack Overflow用户
提问于 2014-06-11 21:23:50
回答 1查看 50关注 0票数 0

抱歉,标题太混乱了,我不太确定该怎么说。

我刚刚进入2D游戏开发后,最近发现HTML5 5的画布元素的力量。我的第一个基本项目是学习诀窍。这个游戏将允许玩家加入一个游戏,基本上在一个单一的地图上与坦克战斗。他们杀得越多,他们能解锁和使用的坦克就越高。

但是,我被困在如何吸引坦克进入游戏(至少是正确的)。每个坦克有三个图像:坦克的身体,炮塔,和一个坦克的外壳,将吸引游戏时坦克开火。当然,当游戏加载一个坦克,它需要知道正确的位置,以放置这些图像。所有的坦克都有不同的大小,所以我根本不能告诉游戏加载的身体和炮塔在相同的地点,每次。当坦克的主体被画到画布上时,炮塔当然需要相对于这个相应的物体来绘制。

那我该怎么保存这些信息呢?我是否在包含每个坦克的炮塔偏移列表的代码中添加了一个硬编码对象?

我希望我能清楚地解释我的问题。如果你有什么问题,请问。::)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-11 22:13:22

处理多个大小精灵的一种方法是使用中心点而不是通常的左上角定义每个精灵的位置。

这样,每个坦克的大小在定位时都是无关紧要的。

要实现中点定位,您可以:

  • 翻译成地图上想要的位置
  • 然后是drawImage,偏移量为-宽度/2和-高/2.

一个例子,

假设您的tankBase雪碧宽38 is,高59 is。

然后,要绘制以x/y=100,100为中心的tankBase,可以这样做:

代码语言:javascript
复制
ctx.translate(100,100);
ctx.drawImage(tankBase,-38/2,-59/2);

这里有一个演示:http://jsfiddle.net/m1erickson/V9uEr/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24172825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档