Having a little trouble with bitmaps...
Ok, here goes... I got my little rpg man walking around in a grass maze
and everything. That's cool and all except for the fact that my little
guy has a white border all around him from the original JPG. Any tips
on how to get rid of that white border so I can just see the green
grass tile under him the way it's supposed to be?
Here is the part of the program that concerns the Hero sprite.
Can someone please give me advice on what I should do?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;
namespace WindowsFormsApplication6
{
public class Hero
{
public Point Position;
static Bitmap HeroImage = null;
static Bitmap HeroImage2 = null;
int inc = 3;
int LastPositionX = 0;
int LastPositionY = 0;
public Hero()
{
Position.X = 30;
Position.Y = 35;
if (HeroImage == null)
{
HeroImage = new Bitmap("Hero.jpg");
}
if (HeroImage2 == null)
{
HeroImage2 = new Bitmap("Hero2.jpg");
}
}
public Hero(int x, int y)
{
Position.X = x;
Position.Y = y;
if (HeroImage == null)
{
HeroImage = new Bitmap("Hero.jpg");
}
if (HeroImage2 == null)
{
HeroImage2 = new Bitmap("Hero2.jpg");
}
}
public Rectangle GetFrame()
{
Rectangle myRect = new Rectangle(Position.X, Position.Y, HeroImage.Width, HeroImage.Height);
return myRect;
}
public void Draw(Graphics g)
{
Rectangle destR = new Rectangle(Position.X, Position.Y, HeroImage.Width, HeroImage.Height);
Rectangle srcR = new Rectangle(0, 0, HeroImage.Width, HeroImage.Height);
// make it look like the legs are moving
if (((Position.X % 2 == 1) && ((Position.X - LastPositionX) != 0)) ||
((Position.Y % 2 == 1) && ((Position.Y - LastPositionY) != 0))
)
g.DrawImage(HeroImage, destR, srcR, GraphicsUnit.Pixel);
else
g.DrawImage(HeroImage2, destR, srcR, GraphicsUnit.Pixel);
LastPositionX = Position.X;
LastPositionY = Position.Y;
}
public void MoveLeft(Rectangle r)
{
if (Position.X <= 0)
return; // precondition
Position.X -= inc;
}
public void MoveRight(Rectangle r)
{
if (Position.X >= r.Width - HeroImage.Width)
return; // precondition
Position.X += inc;
}
public void MoveUp(Rectangle r)
{
if (Position.Y <= 0)
return; // precondition
Position.Y -= inc;
}
public void MoveDown(Rectangle r)
{
if (Position.Y >= r.Height - HeroImage.Height)
return; // precondition
Position.Y += inc;
}
}
}