研究成果如下:
首先是游戏图片的分割问题...(这个图只是举例,不太好看,一般图的都是一个动作接一个动作的,这样看起来就像是在动)以下方法可以将上图可以分割为,一个一个小人物,背景为透明,然后返回一个人物的图片数组public static Bitmap[] getPics(Image img,int picRows,int picCols)
{
//初始化次图片个数
int imgCount =picRows*picCols;
Bitmap[] allImgs =new Bitmap[imgCount]; //处理图片
Bitmap srcImg = new Bitmap(img);
srcImg.MakeTransparent(Color.FromArgb(255,0,255)); //剪切器
Rectangle sourceRectangle ;
//每个图片高宽
int picWidth=srcImg.Width/picCols;
int picHeight =srcImg.Height/picRows; //剪切位置
int x = 0;
int y = 0; for (int i = 0; i < imgCount; i++)
{ sourceRectangle = new Rectangle(x,y,picWidth,picHeight);
allImgs[i] = srcImg.Clone(sourceRectangle,System.Drawing.Imaging.PixelFormat.DontCare); if(x<srcImg.Width-picWidth)
{
x =x +picWidth;
}
else
{
x = 0;
y = y +picHeight;
}
}
return allImgs; }
然后有一个 角色对象类,里面储存对象的坐标 和 图片 还有一个画 自己的方法 private int i = 0; public override void drawSelf(Graphics g)
{
g.DrawImage(this.ElementPics[i], this.X, this.Y);
if (i < this.ElementPics.Length - 1)
{ i++;
}
else
{
i = 0;
}
}
最后在窗体上 用线程,或Timer控件调用对象drawSelf方法,不知道这样的代码是否规范,我想做一个类似泡泡堂的游戏,我有图片,但是遇到很多问题,不知道怎么做,比如泡泡的爆炸,爆炸的检测,人物被炸,障碍物的制作也没有思绪,好难啊 , 前辈们有 类似游戏的代码吗? 我搜索不到啊
首先是游戏图片的分割问题...(这个图只是举例,不太好看,一般图的都是一个动作接一个动作的,这样看起来就像是在动)以下方法可以将上图可以分割为,一个一个小人物,背景为透明,然后返回一个人物的图片数组public static Bitmap[] getPics(Image img,int picRows,int picCols)
{
//初始化次图片个数
int imgCount =picRows*picCols;
Bitmap[] allImgs =new Bitmap[imgCount]; //处理图片
Bitmap srcImg = new Bitmap(img);
srcImg.MakeTransparent(Color.FromArgb(255,0,255)); //剪切器
Rectangle sourceRectangle ;
//每个图片高宽
int picWidth=srcImg.Width/picCols;
int picHeight =srcImg.Height/picRows; //剪切位置
int x = 0;
int y = 0; for (int i = 0; i < imgCount; i++)
{ sourceRectangle = new Rectangle(x,y,picWidth,picHeight);
allImgs[i] = srcImg.Clone(sourceRectangle,System.Drawing.Imaging.PixelFormat.DontCare); if(x<srcImg.Width-picWidth)
{
x =x +picWidth;
}
else
{
x = 0;
y = y +picHeight;
}
}
return allImgs; }
然后有一个 角色对象类,里面储存对象的坐标 和 图片 还有一个画 自己的方法 private int i = 0; public override void drawSelf(Graphics g)
{
g.DrawImage(this.ElementPics[i], this.X, this.Y);
if (i < this.ElementPics.Length - 1)
{ i++;
}
else
{
i = 0;
}
}
最后在窗体上 用线程,或Timer控件调用对象drawSelf方法,不知道这样的代码是否规范,我想做一个类似泡泡堂的游戏,我有图片,但是遇到很多问题,不知道怎么做,比如泡泡的爆炸,爆炸的检测,人物被炸,障碍物的制作也没有思绪,好难啊 , 前辈们有 类似游戏的代码吗? 我搜索不到啊
解决方案 »
- MeshGeometry3D的Normals属性是什么意思,看了MSDN后,还是不理解。
- c#写的windows服务启动时出现错误 1503:服务并未及时响应启动或控制请求.
- 请问PathGradientBrush可以用来填充一个区域吗,好像我只有填充路径才有效果?
- marshal.PtrtoStructure访问结构数组的INTPTR时出错
- 寻找listview
- C#应用程序,窗体如何自动适应不同的分辨率?
- 求一算法,各位大侠帮帮忙!
- C# 中截取字符串的问题
- C# winform程序调用exe程序,输入用户名和密码登陆
- 请教CLS-compliant问题。
- 对 ADO.NET 的两点认识,请指教请确认
- +=在这里什么意思啊?如何理解?
贪吃蛇http://heyant.com/html/Download46.html
坦克大战http://heyant.com/html/Download52.html
XNA的2D特垃圾的,
我觉得主要就是绘画方面,和文字支持方面,撮的一塌糊涂
与WPF相距甚远啊
我试过除了内存用得较多(因为没有使用动态加载),
CPU超少的
很兴趣看看具体差距WPF我很少用,不太懂学习,不过好象WPF的图形处理使用的是DX封装,XNA2D处理真有你说那么差吗?测试下吧,搞几个例子。有兴趣了解下。13楼的朋友能不能设计个把测试?
另外 LZ不要是用自己的算法 来透明
你可以使用位传送,这样对图片处理比较好