diff --git a/dev-assets/doodads/azulian/azulian-red.js b/dev-assets/doodads/azulian/azulian-red.js new file mode 100644 index 0000000..4ff17bc --- /dev/null +++ b/dev-assets/doodads/azulian/azulian-red.js @@ -0,0 +1,45 @@ +function main() { + log.Info("Azulian '%s' initialized!", Self.Doodad.Title); + + var playerSpeed = 4; + var gravity = 4; + var Vx = Vy = 0; + + var direction = "right"; + + Self.SetGravity(true); + Self.AddAnimation("walk-left", 100, ["red-wl1", "red-wl2", "red-wl3", "red-wl4"]); + Self.AddAnimation("walk-right", 100, ["red-wr1", "red-wr2", "red-wr3", "red-wr4"]); + + // var nextTurn = time.Add(time.Now(), 2500); + + // Sample our X position every few frames and detect if we've hit a solid wall. + var sampleTick = 0; + var sampleRate = 5; + var lastSampledX = 0; + + setInterval(function() { + // if (time.Now().After(nextTurn)) { + // direction = direction === "right" ? "left" : "right"; + // nextTurn = time.Add(time.Now(), 2500); + // } + + if (sampleTick % sampleRate === 0) { + var curX = Self.Position().X; + var delta = Math.abs(curX - lastSampledX); + if (delta < 5) { + log.Error("flip red azulian"); + direction = direction === "right" ? "left" : "right"; + } + lastSampledX = curX; + } + sampleTick++; + + var Vx = playerSpeed * (direction === "left" ? -1 : 1); + Self.SetVelocity(Point(Vx, 0)); + + if (!Self.IsAnimating()) { + Self.PlayAnimation("walk-"+direction, null); + } + }, 100); +} diff --git a/dev-assets/doodads/azulian/azulian.js b/dev-assets/doodads/azulian/azulian.js index 25ff361..69bf9c8 100644 --- a/dev-assets/doodads/azulian/azulian.js +++ b/dev-assets/doodads/azulian/azulian.js @@ -9,44 +9,29 @@ function main() { var animStart = animEnd = 0; var animFrame = animStart; - setInterval(function() { - if (animating) { - if (animFrame < animStart || animFrame > animEnd) { - animFrame = animStart; - } - - animFrame++; - if (animFrame === animEnd) { - animFrame = animStart; - } - Self.ShowLayer(animFrame); - } else { - Self.ShowLayer(animStart); - } - }, 100); + Self.SetGravity(true); + 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) { - animStart = 2; - animEnd = animStart+4; - animating = true; + if (!Self.IsAnimating()) { + Self.PlayAnimation("walk-right", null); + } Vx = playerSpeed; } else if (ev.Left.Now) { - animStart = 6; - animEnd = animStart+4; - animating = true; + if (!Self.IsAnimating()) { + Self.PlayAnimation("walk-left", null); + } Vx = -playerSpeed; } else { + Self.StopAnimation(); animating = false; } - if (!Self.Grounded()) { - Vy += gravity; - } - // Self.SetVelocity(Point(Vx, Vy)); }) } diff --git a/dev-assets/doodads/azulian/red-back.png b/dev-assets/doodads/azulian/red-back.png new file mode 100644 index 0000000..2f5d2ef Binary files /dev/null and b/dev-assets/doodads/azulian/red-back.png differ diff --git a/dev-assets/doodads/azulian/red-front.png b/dev-assets/doodads/azulian/red-front.png new file mode 100644 index 0000000..8e7b797 Binary files /dev/null and b/dev-assets/doodads/azulian/red-front.png differ diff --git a/dev-assets/doodads/azulian/red-wl1.png b/dev-assets/doodads/azulian/red-wl1.png new file mode 100644 index 0000000..a05f987 Binary files /dev/null and b/dev-assets/doodads/azulian/red-wl1.png differ diff --git a/dev-assets/doodads/azulian/red-wl2.png b/dev-assets/doodads/azulian/red-wl2.png new file mode 100644 index 0000000..a4f7468 Binary files /dev/null and b/dev-assets/doodads/azulian/red-wl2.png differ diff --git a/dev-assets/doodads/azulian/red-wl3.png b/dev-assets/doodads/azulian/red-wl3.png new file mode 100644 index 0000000..00c776d Binary files /dev/null and b/dev-assets/doodads/azulian/red-wl3.png differ diff --git a/dev-assets/doodads/azulian/red-wl4.png b/dev-assets/doodads/azulian/red-wl4.png new file mode 100644 index 0000000..9b0c599 Binary files /dev/null and b/dev-assets/doodads/azulian/red-wl4.png differ diff --git a/dev-assets/doodads/azulian/red-wr1.png b/dev-assets/doodads/azulian/red-wr1.png new file mode 100644 index 0000000..dfcfffe Binary files /dev/null and b/dev-assets/doodads/azulian/red-wr1.png differ diff --git a/dev-assets/doodads/azulian/red-wr2.png b/dev-assets/doodads/azulian/red-wr2.png new file mode 100644 index 0000000..a79f3a3 Binary files /dev/null and b/dev-assets/doodads/azulian/red-wr2.png differ diff --git a/dev-assets/doodads/azulian/red-wr3.png b/dev-assets/doodads/azulian/red-wr3.png new file mode 100644 index 0000000..5e79c36 Binary files /dev/null and b/dev-assets/doodads/azulian/red-wr3.png differ diff --git a/dev-assets/doodads/azulian/red-wr4.png b/dev-assets/doodads/azulian/red-wr4.png new file mode 100644 index 0000000..219ec34 Binary files /dev/null and b/dev-assets/doodads/azulian/red-wr4.png differ