- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C俄罗斯方块(附代码)
C#俄罗斯方块程序设计
姓 名: 杨林
学 号: 2010115010518
专 业:计算机科学与技术学院
班 级: 10 级 1005 班
时 间:2013-6-16
该实验制作的是小游戏----俄罗斯方块
1.可实现以下基本功能:
用户可自定义添加或删除方块样式及颜色;
用户可自定义修改游戏背景颜色及按键设置。
2.另增加了几个功能:
按键设置改变后点击保存,会弹出对话框提示“保存成功” ;
点击“开始”运行游戏,背景音乐自动播放,点击暂停后,背景音乐也随之停止;
每消除一行,会有特效声音提示消除成功;
根据消行多少会自动加分并显示。
游戏界面效果图如下:
配置窗体效果图如下:
砖块样式配置效果图如下:
游戏设计分为如下九个部分:
新建窗体“配置窗体”(TrmConfig)
添加TabControl控件
砖块样式配置
I.abel控件(lblMode)
点击“事件”,选择“Paint”
Graphics gp=e.Graphics;
gp.Clear(Color.Black);
Pen p=new Pen(Color.White);
for (int i=31;i155;i=i+31)
gp.DrawLine(p,1,i,155,i);
for (int i=31;i155;i=i+31)
gp.DrawLine(p,i,1,i,155);
SolidBrush s=new SolidBrush(blockColor);
for (int x=0;x5;x++)
{
for(int y=0;y5;y++)
{
if(struArr[x,y])
{
gp.FillRectangle(s,31*x+1,31*y+1,30,30);
}
}
}
点击“事件”,选择“MouseClick”
private bool[,] struArr=new bool[5,5];
private Color blockColor=Color.Red;
--------------------------------------------------------
if (e.Button!=MouseButtons.Left)
return;
int xPos,yPos;
xPos=e.X/31;
yPos=e.Y/31;
struArr[xPos,yPos]=!struArr[xPos,yPos];
bool b=struArr[xPos,yPos];
Graphics gp=lblMode.CreateGraphics();
SolidBrush s=new SolidBrush(b ? blockColor:Color.Black);
gp.FillRectangle(s,31*xPos+1,31*yPos+1,30,30);
gp.Dispose();
II.添加ColorDialog控件
添加label(lblColor)控件
点击“事件”,选择“click”
colorDialog1.ShowDialog();
blockColor=colorDialog1.Color;
lblColor.BackColor=colorDialog1.Color;
lblMode.Invalidate();
III.添加listView控件(lsvBlockSet)
点击“事件”,选择“ItemSelectionChanged”
if (e.IsSelected)
{
blockColor=Color.FromArgb(int.Parse(e.Item.SubItems[1].Text));
lblColor.BackColor=blockColor;
string s=e.Item.SubItems[0].Text;
for(int i=0;is.Length;i++)
{
struArr[i/5,i%5]=(s[i]==1)?true:false;
}
lblMode.Invalidate();
}
IV.“添加”按钮(btnAdd)bool isEmpty=false;
foreach (bool i in struArr)
{
if(i)
{
isEmpty=true;
break;
}
}
if (!isEmpty)
{
MessageBox.Show(图案为空,请先用鼠标点击左边窗口绘制图案!,提示窗口,
MessageBoxButtons.OK,
MessageBoxIcon.Information);
return;
}
StringBuilder sb=new StringBuilder(25);
foreach (bool i in stru
文档评论(0)