阅读下面的最终编辑!
是否可以使用CSS3动画而不在帧之间补间动画?
例如,我有一个图像,我有两个角色动画精灵.它们的间距均匀为50px.当我使用下面的动画时,我仍然得到一个补间(尽管非常快的补间,所以它看起来像闪烁).
#ball .animated{
-webkit-animation-name: animate;
-webkit-animation-duration: .5s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-direction: alternate;
-webkit-animation-timing-function: linear;}
@-webkit-keyframes animate{
0%{-webkit-transform: translate3d(0,0,0);}
49%{-webkit-transform: translate3d(0,0,0);}
50%{-webkit-transform: translate3d(-50px,0,0);}
100%{-webkit-transform: translate3d(-50px,0,0);}
Run Code Online (Sandbox Code Playgroud)
因此,基于上述情况,精灵帧应保持在图像的第一部分(x = 0px)持续时间的前0-49%,然后跳转到图像的第二部分(x = -50px)为50-100%.但是,1%的差异仍然足以在视觉上看到从0到-50px的补间.
思考?
编辑:
-webkit-animation-timing-function: cubic-bezier(1,0,1,0);
Run Code Online (Sandbox Code Playgroud)
上面似乎有点理顺了一段时间,但过了一会儿,它又回到了闪烁状态.
编辑:我没有意识到你可以使用百分比的小数.将间隙从1%缩小到0.1%会产生更快的补间,这几乎是不可见的(-webkit-animation-duration:<1s;)
0%{-webkit-transform: translate3d(0,0,0);}
49.9%{-webkit-transform: translate3d(0,0,0);}
50%{-webkit-transform: translate3d(-50px,0,0);}
100%{-webkit-transform: translate3d(-50px,0,0);}
Run Code Online (Sandbox Code Playgroud)
最终编辑!: 好的,所以从我发现的web-kit动画百分比将接受小数到百万分之一(即0.0001).在相对较快的动画计时器上将导致瞬时翻译.我猜想有点黑客攻击,但它确实可以解决问题.
例:
@-webkit-keyframes sprite {
0% {
-webkit-transform: translate3d(0,0,0);
}
50% {
-webkit-transform: translate3d(0,0,0);
}
50.0001%{
-webkit-transform: translate3d(-50px,0,0);
}
100%{
-webkit-transform: translate3d(-50px,0,0);
}
}
Run Code Online (Sandbox Code Playgroud)
上面的例子是一个100px的图像(图像上的每个sprite是50px宽),在一个容器div中,width: 50px并且overflow:hidden每次只显示一个精灵.
注意:我使用的是translate3d,因为它在移动浏览器中是硬件加速的,其中translateX,translateY,translateZ尚未加速硬件.
我正在制作一个滑板游戏,你必须使用box2D和AndEngine跳过障碍物.我试图这样做,以便当玩家与一个物体碰撞时,物体被移除并且物体旧位置会发生爆炸,但是精灵移除代码中的某些内容会冻结我的程序导致它结束(甚至不是强制关闭消息它只是关闭自己并进入我的主屏幕)并且没有错误/异常信息出现在logcat中所以我不知道是什么导致它!以下是一些代码片段 -
当我创建精灵/边界时,我将JSONObject附加到包含精灵和精灵类型的主体,并将类似的JSONOBject附加到具有正文和类型的精灵:
/** method to construct our player (takes an x and y position)*/
private void constructPlayer(final float pX, final float pY) {
final Body body;
/* construct the sprite of our player and set the animation */
this.player = new AnimatedSprite(pX, pY, this.mSkaterTextureRegion);
long[] frameDurations = {100, 100};
player.animate(frameDurations, 4, 5, true);
body = PhysicsFactory.createBoxBody(this.mPhysicsWorld, player, BodyType.DynamicBody, PLAYER_FIXTURE_DEF);
this.mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(player, body, true, false));
body.setUserData(makeUserDataForBody(PLAYER_TYPE,player));
player.setUserData(makeUserDataForSprite(PLAYER_TYPE,body));
this.mScene.registerTouchArea(player);
//attach our player to the scene
this.mScene.attachChild(player);
}
private JSONObject makeUserDataForBody(int type, …Run Code Online (Sandbox Code Playgroud) 我正在尝试将放大镜作为输入元素的背景.放大镜图标是CSS精灵的一部分,如下所示:

为了定位它,我使用了以下属性:
#search-form input[type="text"] {
background: url('../images/icons.png') no-repeat left center;
background-position: 0px -30px;
border: 1px solid #a9e2ff;
padding: 3px;
width: 200px;
font-size: 1em;
padding-left: 20px;
}
Run Code Online (Sandbox Code Playgroud)
但背景仍然出现在输入框的顶部,而不是在垂直中间和左边对齐.我也尝试过:
background: url('../images/icons.png') no-repeat left middle;
但这也不起作用.
如果它很重要,虽然我猜它没有,这是我的表单标记:
<form action="/search" method="get" id="search-form">
<input type="text" placeholder="Search..." name="s">
</form>
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
出于某种原因,我无法得到pyglet来绘制精灵.这是我的代码:
import pyglet
game = pyglet.window.Window(640, 480, "I'm a window")
batch = pyglet.graphics.Batch()
pyglet.resource.path = ["."]
pyglet.resource.reindex()
image = pyglet.resource.image("hextile.png")
pyglet.sprite.Sprite(image, x=200, y=300, batch=batch)
pyglet.text.Label('DING', font_name='Arial', font_size=24, x=100, y=100, batch=batch)
@game.event
def on_draw():
game.clear()
batch.draw()
#image.blit(0, 0)
pyglet.app.run()
Run Code Online (Sandbox Code Playgroud)
现在,当我绘制批处理时,文本标签会正确显示.我在窗户上看到"DING".但是,未显示图像"hextile.png".我尝试独立绘制精灵,但这也不起作用.然而,模糊图像(如注释行中所示)似乎工作得很好,但显然这不是我在此之后的功能.我无法想出这个.我错过了什么?
我想在Unity3D中为2D精灵设置动画.这样做的最好(最简单)方法是什么?
我有几个图像,我想循环创建动画.什么是最简单的代码和设置?
即时通讯试图让我的形象(鸟)在屏幕上上下移动,但我无法弄清楚如何做到这里是我试图确定它的方式,但我试图找出来,如果有人可以帮助那将是大!
import pygame
import os
screen = pygame.display.set_mode((640, 400))
running = 1
while running:
event = pygame.event.poll()
if event.type == pygame.QUIT:
running = 0
screen.fill([255, 255, 255])
clock = pygame.time.Clock()
clock.tick(0.5)
pygame.display.flip()
bird = pygame.image.load(os.path.join('C:\Python27', 'player.png'))
screen.blit( bird, ( 0, 0 ) )
pygame.display.update()
class game(object):
def move(self, x, y):
self.player.center[0] += x
self.player.center[1] += y
if event.key == K_UP:
player.move(0,5)
if event.key == K_DOWN:
player.move(0,-5)
game()
Run Code Online (Sandbox Code Playgroud)
我试图让它按下向下按钮按下向上按UP按键
假设我的2D级别是由2D块构建的.其中一些是盒子.
盒子看起来一样.没有不同!如何将一个盒子的图形"复制"或克隆到另一个盒子?该唯一的区别盒子将是sprite.x与sprite.y具有不同的值.我可能会那样:
public static function drawBox(graphics:Graphics):void
{
graphics.clear();
// draw box
}
drawBox(box1.graphics);
drawBox(box2.graphics);
drawBox(box3.graphics);
Run Code Online (Sandbox Code Playgroud)
不会使用纹理,只有矢量绘图!
这是一个好习惯吗?还有另一种方法可以达到同样的目的吗?
因为目前这是不可能的颜色设置的SKScene对clearColor,做
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
self.backgroundColor = [SKColor clearColor];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
如下所示:LINK
那么如何设置背景图像SKScene呢?请尽可能具体,示例代码会很棒!
如何为已添加到组中的精灵设置动画?
这是我的spritesheet:
game.load.spritesheet('enemyBullet', 'assets/games/invaders/enemy-bullet.png', 11, 19);
Run Code Online (Sandbox Code Playgroud)
这是小组:
// The enemy's bullets
enemyBullets = game.add.group();
enemyBullets.enableBody = true;
enemyBullets.physicsBodyType = Phaser.Physics.ARCADE;
enemyBullets.createMultiple(30, 'enemyBullet');
enemyBullets.setAll('anchor.x', 0.5);
enemyBullets.setAll('anchor.y', 1);
enemyBullets.setAll('outOfBoundsKill', true);
enemyBullets.setAll('checkWorldBounds', true);
Run Code Online (Sandbox Code Playgroud)
这是我认为我应该添加的代码.
enemyBullets.animations.add('fly3', [ 0, 1, 2, 3], 20, true);
enemyBullets.play('fly3');
Run Code Online (Sandbox Code Playgroud)
但是,如果我在上面的组代码块中的任何地方添加它,我会收到错误'enemyBullets.animations'.undefined'.
有任何想法吗?