俄罗斯方块程序中不管怎么改都有下面两个错误

.Net技术 码拜 4年前 (2016-09-26) 356次浏览
using System;
using System.Collections;
using System.Drawing;
namespace Tetris
{
class BlockGroup
{
private InfoArr info;//存放全部砖块样式信息
private Color disapperColor;//背景色
private int rectPix;//单元格像素
public BlockGroup()//构造函数
{
Config config = new Config();
config.LoadFromXmlFile();//读取设置文件
info = new InfoArr();
info = config.Info;
disapperColor = config.BackColor;
rectPix = config.RectPix;
}
public Block GetAblock()
{
Random rd = new Random();//声明一个产生随机数的类
int keyOrder = rd.Next(0, info.Length);//产生一个随机数
BitArray ba = info[keyOrder].Id;//把抽取出的砖块样式赋给BitArray类对象ba
int strNum = 0;//确定这个砖块样式中被填充方块的个数
foreach (bool b in ba)//即需要确定Point数组的长度
{
if (b)
{
strNum++;
}
Point[] structArr = new Point[strNum];//新建一个Point数组,并确定其长度,以创建新的Block
int k = 0;
for (int j = 0; j < ba.Length; j++)//用循环给Point数组structArr赋坐标值
{
if (ba[j])
{
structArr[k].X = j / 5 – 2;
structArr[k].Y = 2 – j % 5;
k++;
}
}
return new Block(structArr, info[keyOrder].BColor, disapperColor, rectPix);//创建一个新砖块
}
}
}
}
错误 CS0161 “BlockGroup.GetAblock()”: 并非全部的代码路径都返回值
==========================================================================================
using System.Drawing;
namespace Tetris
{
class Palette
{
private int _width = 15;//画板高度
private int _height = 25;//画板高度
private Color[,] coorArr;//固定砖块数组
private Graphics disapperColor;//背景色
private Graphics gpPalette;//砖块活动画板
private BlockGroup bGroup;//下一个砖块样式画板
private Block runBlock;//正在活动的砖块
private Block readyBlock;//下一个砖块
private int rectPix;//单元格像素
private Graphics gpReady;
public Palette(int x, int y, int pix, Color dColor, Graphics gp, Graphics gr)
{
_width = x;
_height = y;
coorArr = new Color[_width, _height];
disapperColor = dColor;
gpPalette = gp;
gpReady = gr;
rectPix = pix;
}
}
}
错误 CS0029 无法将类型“System.Drawing.Color”隐式转换为“System.Drawing.Graphics” Tetris
快被气炸了啊
解决方案

50

把 return new Block(structArr, info[keyOrder].BColor, disapperColor, rectPix);放外面,假如foreach内没有执行的话程序就没有返回了

50

disapperColor 为Graphics类型, dColor为Color类型,类型不同不能赋值,得把dColor转换为Graphics类型

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明俄罗斯方块程序中不管怎么改都有下面两个错误
喜欢 (0)
[1034331897@qq.com]
分享 (0)