Noah Petherbridge
ba6892aa95
* Refactor texture caching in render.Engine: * New interface method: NewTexture(filename string, image.Image) * WASM immediately encodes the image to PNG and generates a JavaScript `Image()` object to load it with a data URI and keep it in memory. * SDL2 saves the bitmap to disk as it did before. * WASM: deprecate the sessionStorage for holding image data. Session storage methods panic if called. The image data is directly kept in Go memory as a js.Value holding an Image(). * Shared Memory workaround: the level.Chunk.ToBitmap() function is where chunk textures get cached, but it had no access to the render.Engine used in the game. The `pkg/shmem` package holds global pointers to common structures like the CurrentRenderEngine as a work-around. * Also shmem.Flash() so Doodle can make its d.Flash() function globally available, any sub-package can now flash text to the screen regardless of source code location. * JavaScript API for Doodads now has a global Flash() function available. * WASM: Handle window resize so Doodle can recompute its dimensions instead of scaling/shrinking the view.
39 lines
855 B
JavaScript
39 lines
855 B
JavaScript
function main() {
|
|
Flash("Azulian '%s' initialized!", Self.Doodad.Title);
|
|
|
|
var playerSpeed = 12;
|
|
var gravity = 4;
|
|
var Vx = Vy = 0;
|
|
|
|
var animating = false;
|
|
var animStart = animEnd = 0;
|
|
var animFrame = animStart;
|
|
|
|
Self.SetGravity(true);
|
|
Self.SetHitbox(7, 4, 17, 28);
|
|
Self.AddAnimation("walk-left", 100, ["blu-wl1", "blu-wl2", "blu-wl3", "blu-wl4"]);
|
|
Self.AddAnimation("walk-right", 100, ["blu-wr1", "blu-wr2", "blu-wr3", "blu-wr4"]);
|
|
|
|
Events.OnKeypress(function(ev) {
|
|
Vx = 0;
|
|
Vy = 0;
|
|
|
|
if (ev.Right.Now) {
|
|
if (!Self.IsAnimating()) {
|
|
Self.PlayAnimation("walk-right", null);
|
|
}
|
|
Vx = playerSpeed;
|
|
} else if (ev.Left.Now) {
|
|
if (!Self.IsAnimating()) {
|
|
Self.PlayAnimation("walk-left", null);
|
|
}
|
|
Vx = -playerSpeed;
|
|
} else {
|
|
Self.StopAnimation();
|
|
animating = false;
|
|
}
|
|
|
|
// Self.SetVelocity(Point(Vx, Vy));
|
|
})
|
|
}
|