public void AddGotchi(Bitmap image, GotchiState type) { Point pos; switch (type) { default: case GotchiState.Happy: case GotchiState.Dead: case GotchiState.Energetic: case GotchiState.Tired: pos = new Point(150, 140); break; case GotchiState.Sleeping: pos = new Point(250, 140); break; case GotchiState.Hungry: case GotchiState.Eating: pos = new Point(75, 140); break; } AddGotchi(pos.X, pos.Y, image, type); }
private void _drawEmote(Graphics gfx, GotchiState type, int x, int y, int gotchiW, int gotchiH) { string fname = string.Empty; switch (type) { case GotchiState.Happy: fname = "bubble_happy.png"; break; case GotchiState.Hungry: fname = "bubble_hungry.png"; break; case GotchiState.Dead: fname = "bubble_dead.png"; break; case GotchiState.Eating: fname = "bubble_eating.png"; break; case GotchiState.Sleeping: fname = "bubble_sleeping.png"; break; case GotchiState.Energetic: fname = "bubble_energetic.png"; break; case GotchiState.Tired: fname = "bubble_tired.png"; break; case GotchiState.Evolved: fname = "bubble_evolved.png"; break; } if (string.IsNullOrEmpty(fname)) { return; } fname = System.IO.Path.Combine(Global.GotchiImagesDirectory, fname); if (!System.IO.File.Exists(fname)) { return; } using (Bitmap emote = new Bitmap(fname)) gfx.DrawImage(emote, x - (emote.Width / 2), y - emote.Height - 10 - gotchiH / 2); }
// Private methods private GotchiTransform[] _getAnimationTransforms(GotchiState type) { GotchiTransform[] transforms = new GotchiTransform[2]; for (int i = 0; i < transforms.Count(); ++i) { transforms[i] = new GotchiTransform(); } // The emote should bob up and down for all animations. transforms[0].EmoteOffset.Y = 0; transforms[1].EmoteOffset.Y = -2; switch (type) { default: case GotchiState.Hungry: transforms[0].Offset.Y = 0; transforms[1].Offset.Y = 2; break; case GotchiState.Eating: case GotchiState.Happy: transforms[0].Angle = 10; transforms[1].Angle = -10; break; case GotchiState.Sleeping: transforms[0].Angle = 90; transforms[1].Angle = 90; break; case GotchiState.Dead: transforms[0].Angle = 180; transforms[1].Angle = 180; break; case GotchiState.Tired: transforms[0].Offset.Y = 0; transforms[1].Offset.Y = 1; break; case GotchiState.Energetic: transforms[0].Angle = 10; transforms[1].Angle = -10; transforms[0].Offset.Y = 0; transforms[1].Offset.Y = -4; break; } return(transforms); }
// Public methods public void AddGotchi(int x, int y, Bitmap image, GotchiState type) { // Make the background color transparent (if it isn't already). if (!(image is null)) { Color c = image.GetPixel(0, 0); if (c.A > 0) { image.MakeTransparent(image.GetPixel(0, 0)); } } GotchiParams p = new GotchiParams { Position = new Point(x, y), Image = new PossibleOwnershipBitmap(image, false), Type = type }; _gotchi_params.Add(p); }