public void UpdateDisplay(float dt) { var val = OwnAnimation.Frames[frame]; if (LastPixels != null) { for (int i = 0; i < LastPixels.Length; i++) { if (LastPixels[i] == null) { continue; } SetPixel(LastPixels[i].X, LastPixels[i].Y, ColorUtil.ToRgba(255, 0, 0, 0)); } } LastPixels = new Vec2i[val.Length]; for (int i = 0; i < val.Length; i++) { LastPixels[i] = new Vec2i(); LastPixels[i].X = GameMath.Clamp((int)(val[i].X * resolution.X), 0, resolution.X - 1); LastPixels[i].Y = GameMath.Clamp((int)(val[i].Y * resolution.Y), 0, resolution.Y - 1); int colorR = (int)(OwnAnimation.Colors[frame][i].R * 255); int colorG = (int)(OwnAnimation.Colors[frame][i].G * 255); int colorB = (int)(OwnAnimation.Colors[frame][i].B * 255); SetPixel(LastPixels[i].X, LastPixels[i].Y, ColorUtil.ToRgba(255, colorR, colorG, colorB)); } if (frame < OwnAnimation.Frames.Length - 1) { frame++; } else { frame = 0; } ownRenderer.MarkDirty(); }
public void UpdateDisplay(float dt) { if (DemoMode) { lastX = demoX; lastY = demoY; SetPixels(lastX, lastY, clearCol, clearing); demoX += (int)(velocity.X * 8); demoY += (int)(velocity.Y * 8); if (demoX >= resolution.X - 8 || demoY >= resolution.Y - 8) { velocity = new Vec2d(-capi.World.Rand.NextDouble(), -capi.World.Rand.NextDouble()); demoX = demoX >= resolution.X - 8 ? resolution.X - 8 : demoX; demoY = demoY >= resolution.Y - 8 ? resolution.Y - 8 : demoY; SetNewDemoCol(); } if (demoX <= 0 || demoY <= 0) { velocity = new Vec2d(capi.World.Rand.NextDouble(), capi.World.Rand.NextDouble()); demoX = demoX <= 0 ? 0 : demoX; demoY = demoY <= 0 ? 0 : demoY; SetNewDemoCol(); } SetPixels(demoX, demoY, demoCol, Charsets8x8.Box); MarkDisplayDirty(); } if (DisplayDirty) { DisplayDirty = false; ownRenderer.MarkDirty(); } }