Articles of 尺度

在给定方向上缩放旋转的矩形

尝试在给定方向上缩放旋转的矩形时遇到问题。 在我的上下文中,矩形的宽度和高度基于纹理尺寸乘以比例因子(一个用于X水平,另一个用于Y垂直)。 基本上,如果纹理宽度是100,scale-X因子是“2”,则计算的宽度是200,这是双倍。 同样的高度。 现在,如果我想将矩形缩放到左侧,我正在应用一个缩放值,同时我正在修改X位置来补偿增加的缩放因子(以保持矩形的右侧位于相同的位置)。 如果没有旋转应用,这个方法很好地工作,但是当我旋转矩形(在下面的例子中是45º)时,事情变得复杂: 从我所了解的情况来看,这次我不得不补偿Y的位置,因为斜率,但我无法弄清楚应用可接受的值的正确关系。 有任何想法吗? 谢谢!

MonoGame – 从中​​间缩小一个精灵

我想animation纹理的比例。 首先它被放大到10,然后它逐渐下降到1.然而纹理绘制在Vector2(0, 0)所以它不会像我想象的那样生成animation – 它应该从质地。 我确信origin与它有关,但我无法弄清楚我需要使用的math。 所以纹理是1366×768像素,就像整个屏幕一样。 所以这是我的尝试: private Texture2D texture; private Vector2 origin; private float scale = 10.0f; public void Update(GameTime gameTime) { scale -= 0.05f; if (scale <= 1.0f) { scale = 1.0f; } origin = new Vector2(texture.Width * scale / 2, texture.Height * scale / 2); } public void Draw(SpriteBatch spriteBatch) { […]

让精灵在不同的设备上完全相同

背景 当沿着X轴移动精灵时,这是我的代码: spriteXReal = spriteXReal + (spriteXVel * dt); //.5 would be halfway point of, 1 would be right hand side screen etc… spriteXScreen=spriteXReal*deviceWidth; 上面的spriteXVel值是按照下面的公式计算出来的: spriteXVel = 1/spriteXTime; 所以我会设置spriteXTime为10,如果我想让我的精灵在10秒内穿过屏幕。 我的代码: 使用固定的增量时间 每秒的抽动上限为60(所以我的三角洲是1/60) 问题 这是伟大的,运作良好,但是,我得到奇怪的结果,在不同的设备上运行(具有不同的屏幕资源)。 比较这两款设备时(只需在两款设备上同时启动游戏,除了速度差异很小外,它们几乎完全相同。 游戏世界是基于瓦片的。 假设我的开发设备上的游戏区域是16个宽度。 16块瓷砖完全适合这个设备所以,如果我在8块瓷砖之间移动,我实际上穿过屏幕的1/2。 最初,精灵似乎在两个设备上移动相同(在第一个“正确”瓦片和第八个“正确”瓦片之间来回移动),但是在约25秒之后,它们显然不同步。 在这个设备上,瓷砖看起来像这样: 所以,我正在用上面的设备宽度来计算我的精灵动作。 但是,如果瓷砖不能完全贴合,我会将原始瓷砖居中,并将“填充”瓷砖添加到播放区域,如下所示: 所以,我的困惑在于我应该如何制定我的精灵的新职位。 因为现在8块瓷砖实际上不到设备屏幕的1/2。 所以我应该仍然使用上面的代码或类似的东西: spriteXScreen = spriteXReal *(Block18X – Block2X); 我实际上已经尝试过,而且当我这样做时,问题仍然很明显,所以我不确定我应该使用哪一个。 奇怪的是,当我将精灵的时间variables设置为一定数量时,看起来这两个设备之间的一切都保持完美同步,所以我完全被困住了 – 这就是我迄今为止所观察到的。 […]

什么是新的视网膜显示器ipad完美的精灵尺寸

平面devise师发给我巨大的精灵,手绘宽度为3000px。 而现在,该公司正在聘请一名专业画家为其他级别的游戏画出巨大的油画。 没有数字。 我收到PNG。 游戏是一个点击游戏,你发现隐藏的东西,谜题。 所以最细微的细节很重要。 一切都必须看起来很完美。 主要设备是与视网膜显示器的iPad,但游戏必须是跨平台的。 我应该请画家画什么尺寸? 和平面devise师画? 什么是背景PNG的最佳尺寸? 这些物品的尺寸是多less? 目前我调整到600 * 400的背景和项目是100px无论高度的Photoshop认为是好的。 即使在技术上我应该能够做到,但我恐怕比这还小。 另一位正在从事游戏的程序员,调整了他们的这么多,他们被拉长了。

如何在保留边框厚度的同时缩放矩形图像?

我想创建一个可编程的可缩放图像,像这样: 缩放到 。 两者都有一个像素边框。 如果我在Paint.NET中从第一个缩放到第二个,将会有一个两个像素的水平边框,但我希望它保持单像素。

从笛卡尔转换为等距时精度损失

我的目标是在等轴测投影中显示瓷砖地图。 该瓦片地图具有25个瓦片和25个瓦片。 每个瓷砖是32×32。 见下面我如何完成这一点。 世界空间 世界空间屏幕空间旋转(45度) 使用2D旋转matrix,我使用以下内容: double rotation = Math.PI / 4; double rotatedX = ((tileWorldX * Math.Cos(rotation)) – ((tileWorldY * Math.Sin(rotation))); double rotatedY = ((tileWorldX * Math.Sin(rotation)) + (tileWorldY * Math.Cos(rotation))); 世界空间屏幕空间尺度(Y轴减less50%) 在这里,我简单地将Y值缩小0.5倍。 问题 它的作品,有点。 渲染时,某些图块之间会有一些微小的1px-2px的空白。 我认为在某个地方有一些精度损失,或者我不了解如何使这些瓷砖完美地配合在一起。 我不截断或将我的值转换为非十进制types,直到我绝对必须(当我传递给渲染方法,只有整数)。 我不确定如何保证像素旋转时的完美渲染精度,并且在更高精度的水平上进行缩放。 有什么建议? 我需要提供信息吗?

什么是良好水平导航的标准楼梯尺寸?

我正在努力建立一个水平的一些规模标准。 我一直在遵循这个指南: http : //www.worldofleveldesign.com/categories/ue4/ue4-guide-to-scale-dimensions.php 到目前为止,我的墙高3米,门2.1米1.1米,人物长度为1.82米×0.6米。 我现在正在努力制定一个“好”的楼梯尺寸。 我已经尝试了以上指南的建议0.15米高,0.3米深的每一步。 要达到3米,需要20个步骤,这意味着一个单独的楼梯将是6米长! 从视觉上来说,我认为这看起来很愚蠢。 如果我使用下面的计算器将其与现实生活进行比较: http : //www.calculator.net/stair-calculator.html ,使用逼真的步高和深度,可以在不到4米的长度上实现相同的楼梯。 这对我来说似乎更为现实。 我主要关心的不仅仅是楼梯的外观,而是给定建筑物占用多less空间。 如果在每一个较小的建筑物中,楼梯占据了大部分的建筑面积,这对于更重要的要素来说不会太多。 同时,我担心的是,如果我把楼梯陡峭的话,会对游戏和导航产生负面影响。 我知道每个级别都是不同的,但是有没有一个好的经验来开始呢?

如何将3×3变换matrix分解为旋转和缩放matrix?

我有一个转换matrix,可以旋转和缩放。 有没有简单的方法将其拆分成原始的旋转和缩放matrix? 例如: M = R * S; // I need f and h such that R = f(M); S = h(M);