如果你已经完成了Animate sprite教程,那么现在是时候看看Tweens了。
Tweens
作为一个游戏开发者,一个最普通的事情是移动某个东西。通常是通过改变Entity的坐标实现的,但是有时你有不同的需求,想象一下玩家按照不同的规则改变速度。MarteEngine为开发者提供了几个类(和扩展这种机制的能力)来改变Entity的位置的能力:所有这些都集成到Entity本身。
An Example
运行这个例子,只创建World,并加入下面这个EntityWithTween:
public class EntityWithTween extends Entity {
private Tweener tweener;
public EntityWithTween(float x, float y) {
super(x, y);
setGraphic(ResourceManager.getImage("image"));
// add to this entity a tweener
tweener = new Tweener();
// add a new Tween to tweener
tweener.add(new Tween(new LinearMotion(x, y, 400,
400, 100, Ease.BOUNCE_IN), true));
// start tweens into tweener
tweener.start();
}
@Override
public void update(GameContainer container, int delta)
throws SlickException {
super.update(container, delta);
// update player position according to tween
setPosition(tweener.apply(this));
}
}
private Tweener tweener;
public EntityWithTween(float x, float y) {
super(x, y);
setGraphic(ResourceManager.getImage("image"));
// add to this entity a tweener
tweener = new Tweener();
// add a new Tween to tweener
tweener.add(new Tween(new LinearMotion(x, y, 400,
400, 100, Ease.BOUNCE_IN), true));
// start tweens into tweener
tweener.start();
}
@Override
public void update(GameContainer container, int delta)
throws SlickException {
super.update(container, delta);
// update player position according to tween
setPosition(tweener.apply(this));
}
}
上面这些代码是不是很熟悉?新的东西有:
Tweener类:不要慌!它只是所有Tween的容器。是的,你可以选择将不同的Tween加入到你的Entity中,然后Tweener负责按顺序处理它们。
Tween类:in this example we declare a basic type of with linear motion from current position of entity (x,y) to (400,400) using an ease function,在这种情况下,BOUNCE_IN. Easing方法提供模拟一个弹跳实体的计算。
自己动手试一下代码,很简单,很有趣!
——————————————————————————————————
傲轩游戏网
傲轩游戏网
分类:
Game Development
, MarteEngine
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用