我的应用程序通过在我的视图onDraw()方法中调用以下内容来实现自己的精灵:
canvas.drawBitmap(sprite.getBitmap(), sprite.getX(), sprite.getY(), null);
Run Code Online (Sandbox Code Playgroud)
该应用程序是一个物理模拟,到目前为止,这已经很好了.但是现在我想通过在某些事件发生时为精灵变换图像来增强动画效果.
例如,当发生碰撞时,我想播放一个爆炸动画.我的想法是将普通的精灵位图替换为爆炸PNG,并使用Android"补间动画"使爆炸变大.
但Android 补间动画示例假定您ImageView在XML配置中静态定义了某个地方.
有没有办法在onDraw()使用补间动画时绘制位图动画?或者我需要转换我的精灵使用某种ImageView?如果是后者,你能指点一下Android中适当的精灵动画的例子吗?
谢谢
我正在制作精灵,它的高度达到了约4000像素.在图形设计社区中使用的最大精灵高度是否有一般尺寸?
我写了一个2D跳转和运行引擎,产生320x224(320x240)的图像.为了保持旧学校"像素化" - 感觉它,我想根据用户的分辨率将得到的图像缩放2或3或4.
我不想缩放每一个精灵,而是生成的图像!
提前致谢 :)
更新:我上传了一个显示口吃的视频:http://intninety.co.uk/xnastutter.mp4如果你没有在1920x1080观看它,你可能需要仔细查看视频,但你会看到那里我每隔2秒左右移动一次是一个相当明显的口吃,我建议在Windows Media Player而不是你的网络浏览器中查看它,以确保视频本身没有波动,从而阻止你看到实际的口吃
我最近刚开始接受一个我刚刚开始的项目,但是我仍然在努力解决我留下的问题!
目前我有一个非常简单的应用程序,它只在屏幕上有一个精灵,并使用方向键移动.问题是每两秒左右,游戏口吃,精灵似乎向后跳,然后很快回来.
精灵本身是一个55x33位图,所以没有任何大的,并且使用的代码如下.希望这足以让人们了解可能出现问题的一些想法,如果要求视频确切地看到口吃的样子我可以把它放在一起并在需要时将其上传到某个地方.
正如你在代码中看到的那样,它确实可以弥补帧之间的时间损失,如果它发生了更大的移动,那么这种下降在时间上非常一致地发生,这让我相信我在某处做错了.
我已经尝试了几台不同的机器,但问题仍然存在于所有这些机器上,如果有人有任何想法或者可以看到它在哪里我搞砸了它会非常感激,如果你能指出它.
谢谢 :)
游戏的构造器设置图形设备管理器
graphics = new GraphicsDeviceManager(this);
graphics.IsFullScreen = true;
graphics.SynchronizeWithVerticalRetrace = false;
graphics.PreferredBackBufferWidth = 1920;
graphics.PreferredBackBufferHeight = 1080;
Content.RootDirectory = "Content";
this.IsFixedTimeStep = false;
Run Code Online (Sandbox Code Playgroud)
游戏更新方法中的代码
KeyboardState keyboard = Keyboard.GetState();
GamePadState gamePad = GamePad.GetState(PlayerIndex.One);
if (keyboard.IsKeyDown(Keys.Escape)) {
this.Exit();
}
if ((keyboard.IsKeyDown(Keys.Left)) || (gamePad.DPad.Left == ButtonState.Pressed))
{
this.player.MoveLeft((float)gameTime.ElapsedGameTime.TotalMilliseconds);
} else if ((keyboard.IsKeyDown(Keys.Right)) || (gamePad.DPad.Right == ButtonState.Pressed))
{
this.player.MoveRight((float)gameTime.ElapsedGameTime.TotalMilliseconds);
}
if ((keyboard.IsKeyDown(Keys.Up)) || (gamePad.DPad.Up == ButtonState.Pressed))
{
this.player.MoveUp((float)gameTime.ElapsedGameTime.TotalMilliseconds); …Run Code Online (Sandbox Code Playgroud) 现在我正在开发一款在线游戏,并且出于性能原因决定使用webgl而不是HTML5的画布.我正在使用three.js框架,我的目的是移动动画精灵.精灵本身放在spritesheets上,我使用UVOffset和UVScale来使用正确的艺术,并在经过时间内切换Sprite的艺术.我想知道是否有办法改善这段代码的性能,因为现在它同时开始在场上大约300名"玩家"减速.
问候
以下是我的代码中最重要的部分:
var image = THREE.ImageUtils.loadTexture( "img/idlew.png" );
function addPlayer(){
var mesh = new THREE.Sprite({map:image});//, affectedByDistance: false, useScreenCoordinates: false});
images.push(mesh);
mesh.position.set(Math.floor(Math.random() * 500), Math.floor(Math.random() * 500), 10);
scene.add(mesh);
mesh.uvScale.x = 96/1152;
mesh.scale.x = 0.1;
mesh.scale.y = 0.1;
}
var imgBackground = new THREE.MeshLambertMaterial({
map:THREE.ImageUtils.loadTexture('img/grass.jpg')
});
var background = new THREE.Mesh(new THREE.PlaneGeometry(1000, 1000),imgBackground);
scene.add(background);
scene.add(camera);
camera.rotation.x = -(Math.PI/2);
scene.add(new THREE.AmbientLight(0xFFFFFF));
addPlayer();
renderer.render(scene, camera);
var moveUp = false;
tick();
var ticker = 0;
var usedOne = 0;
function tick(){
ticker++;
if(ticker%10==0){ …Run Code Online (Sandbox Code Playgroud) 我想通过按左箭头键或右箭头键来旋转场景中的精灵(想想小行星中的宇宙飞船).
我已经在场景中放置了精灵并创建了一个脚本,但我不确定从那里去哪里.
我当前的脚本如下所示:
using UnityEngine;
using System.Collections;
public class RotateLeftRight : MonoBehaviour {
public float speed = 1.0f;
public string axisName = "Horizontal";
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if(Input.GetKeyDown(KeyCode.LeftArrow)) {
// left
transform.Rotate(-1.0f, 0.0f, 0.0f); // does nothing, just a bad guess
}
if(Input.GetKeyDown(KeyCode.RightArrow)) {
// right
transform.Rotate(1.0f, 0.0f, 0.0f); // does nothing, just a bad guess
}
}
}
Run Code Online (Sandbox Code Playgroud)
我只是在不知道将会发生什么的情况下对上述内容进行编码(并且,毫不奇怪,根本没有任何事情发生).
任何关于如何旋转精灵和控制旋转速度的建议都将非常感激.
我是LIBGDX的新手,我为"英雄跑"精灵制作了40帧,我不知道使用spritesheet或单个图像是否更好.Spritesheet非常大,因为即使在1080p设备上我也想要很高的重量.你能告诉我在哪种情况下(spritesheet或个人图片)表现会更好吗?

我之前因为篇幅很大而道歉,但是每个试图制作某种通用应用程序的人都知道这是非常有问题的东西,所以请对我很轻松......
目标
我想要实现的目标(如上图所示)是在iPhone 5和6上使用@ 2x资源,并保持应用程序的外观相同.并且如果可能的话,在没有基于检测到的设备手动计算节点的比例和位置属性的情况下完成所有这些...简而言之,如何实现该应用程序自动约束元素(和场景)之间的比例?另外,我想在iPhone 6+上使用@ 3x资产看一眼应用,但由于简单,我只专注于iPhone 5和6.
我在网上发现的是有些人说这个(下采样)是由iOS自动完成的,例如他们建议:
"为iPhone 6制作大小为@ 2x的资产,然后iOS将自动为iPhone 5进行缩减".
但是当谈到Spritekit场景时,这显然不是真的,或者我遗漏了一些东西.
问题
即使iPhone 6和iPhone 5具有相同的宽高比和相同的PPI,使用相同的资产与场景尺寸(第1和第2图像上的外观菜单精灵与场景尺寸相比)看起来也不一样,因为PPI与像素密度,iPhone 6有更多的空间(更大的对角线,更大的英寸),这意味着它有比iPhone 5更多的像素.这是我的问题的来源,我不知道什么是一个有效的方法来处理它.
到目前为止我做了什么
第二个图像不是GUI的问题,但对于游戏玩法,在我的情况下是,因为我想在不同的设备上具有相同的外观和感觉.只看第一和第三张图片.
感谢Skyler Lauren的建议,我已经设法在7.1或8.1系统以及iPhone 6上的所有iPhone 5设备上看到相同的应用程序.所以现在,问题是如何使这个代码适用于iPhone 6 +使用@ 3x纹理,以及iPhone 4s.这是iPhone 5和6的解决方案:
查看controller.m
GameScene *scene = [GameScene sceneWithSize:CGSizeMake(375,677)];//fixed instead of view.bounds.size
scene.scaleMode = SKSceneScaleModeAspectFill;
Run Code Online (Sandbox Code Playgroud)
所以场景总是在iPhone 6尺寸上具有固定尺寸,并且视图尺寸根据设备而变化.我正在使用资产目录来启动图像而不是xib文件.图像尺寸为推荐尺寸 - 640x960px 4s,640x1136px 5,750x1334px 6和1242x2208 6 +型号.资产的大小适合iPhone 6,因此对于该型号,根本没有缩放.
与4s模型相关,当我使用上述方法时,每侧有两个黑条......
到目前为止,我只在模拟器和iPhone 6设备上测试了这一点(我看到在设备或模拟器上的第一张图像上看起来像).
题
就目前我所说的一切都适用于iPhone 4s(由于不同的宽高比而有两个黑条),5,6使用@ 2x资产,但如何使用@ 3x资产使iPhone 6+一切正常?如果我使用375x667尺寸的场景,那么一切都正确定位并具有良好的比例,但质量受损(因为升级@ 2x)
在 Unity (2019.2.0f1) 中,可以通过转到 Inspector -> Sprite Renderer -> Sprite,然后单击圆形符号(参见屏幕截图)来为游戏对象选择精灵。
这将打开“精灵选择窗口”,您可以从资源中选择一个精灵。通过单击右上角的眼睛,您可以隐藏某些精灵(参见屏幕截图)。
对我来说,默认情况下有 16 个隐藏包。我的问题是:
我怎样才能隐藏一些我自己的精灵/包(?),这样精灵选择窗口就不会挤满我永远不会从这里选择的精灵?
我正在开发一款 2D 自顶向下视图游戏(更具体地说,是异星工厂 mod,而不是独立游戏)。我需要几个带有简单动画的建筑物模型,表明它们 \xe2\x80\x9cdo stuff\xe2\x80\x9d (以下是原始游戏中的一些示例:https ://cdn.factorio.com/assets/img/blog /fff-351-beacon-loop.mp4,https://www.youtube.com/watch?v =J8SBp4SyvLc )。是否有 AI 图像生成器(如 Midjourney 或 Dall-E)可以生成此类动画精灵?
\n我同意付费订阅,但我希望生成的图像不受繁琐的法律限制。
\n