Comments (1)
Hi @spustlik, I agree the current parallel actions is a bit clunky to use. I definitely think there is a better api here. Your proposal is interesting I'd like to play with it more 👍
myactor.actions
.paralel(ctx=>[
ctx.moveTo(...),
ctx.scaleTo(...),
]);
In the near term coroutines are a nice way to do more complicated animation simultaneously https://excaliburjs.com/docs/coroutines/
Here is an example doing some scaling on different axes at the same time
var newScaleBy = (actor: ex.Actor, scaleChange: ex.Vector, durationSeconds: number) => {
// coroutines start automatically
ex.coroutine(function* () {
let duration = durationSeconds * 1000; // milliseconds
let xScaleChangeRate = scaleChange.x / duration;
let yScaleChangeRate = scaleChange.y / duration;
let targetScale = actor.scale.add(scaleChange);
while (duration > 0) {
const elapsed = yield;
duration -= elapsed;
actor.scale.x += xScaleChangeRate * elapsed;
actor.scale.y += yScaleChangeRate * elapsed;
}
actor.scale = targetScale;
});
};
actor.onInitialize = () => {
newScaleBy(actor, ex.vec(-0.5, -0.25), 2);
};
from excalibur.
Related Issues (20)
- Pause/unpause Actors and Entities feature
- scaleTo/scaleBy doesn't work with simultaneous axes
- lastWorldPos should update when camera moves under pointer
- The native pointer cancel event does not seem to bubble into excalibur
- Support mouseOut/pointerOut style event when the cursor leaves the game canvas
- Improving custom event DX HOT 1
- Children of entity doesn't inherit z or opacity HOT 3
- Docs: fix and/or update GraphicsGroup documentation HOT 1
- Support Uniform Buffer Objects in Materials and Postprocessors
- Transition `blockInput: true` only works on input events
- Add option to ActionsComponent to cancel currently executing actions on collision
- docs: Actions with collisions
- Fast fadeBy action doesn't sometimes complete (probably under stress) HOT 1
- issue with trySetUniformFloatColor() in shader.ts HOT 1
- precollision event inconsistencies between Actor hook and ColliderComponent event HOT 2
- Customize default systems for all scenes HOT 2
- Change "priority" on System to be a static member HOT 2
- Align onXYZ method signatures to match event payloads HOT 1
- Bad background color in _DEFAULT_ENGINE_OPTIONS
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from excalibur.