有对C#做小游戏有兴趣的吗?最近一直在研究...

tubixue tubixue 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
研究成果如下:
首先是游戏图片的分割问题...

(这个图只是举例,不太好看,一般图的都是一个动作接一个动作的,这样看起来就像是在动)

以下方法可以将上图可以分割为,一个一个小人物,背景为透明,然后返回一个人物的图片数组

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方法,



不知道这样的代码是否规范,我想做一个类似泡泡堂的游戏,我有图片,但是遇到很多问题,不知道怎么做,比如泡泡的爆炸,爆炸的检测,人物被炸,障碍物的制作也没有思绪,

好难啊 , 前辈们有 类似游戏的代码吗? 我搜索不到啊
...全文
评论 21
收藏 已收藏
分享
返回顶部
tubixue
C# 111,129 成员 642,539 内容