首页上一页 1 下一页尾页 1 条记录 1/1页
一个关于俄罗斯方块的问题!!
发表在C#图书答疑
2012-04-20
是否精华
是
否
版块置顶:
是
否
问题来自C#编程全能词典的入门模式》入门训练》第5课》俄罗斯方块例子上,在实际按照步骤操作时遇到问题了。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace 俄罗斯方块
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
[font color=#FF0000] Class1 [/font]MyRussia = new [font color=#FF0000]Class1() [/font];//实例化Class1类,用于操作游戏
[font color=#FF0000] Class1[/font] TemRussia = new[font color=] Class1(); [/font]//实例化Class1类,用于生成下一个方块样式
public bool ispause = true;//判断是否暂停游戏
public Timer timer = new Timer();//定义计时器对象
}
private[font color=#FF0000] void [/font]button1_Click()
{
MyRussia.ConvertorClear();//清空整个控件
MyRussia.firstPoi = new [font color=#FF0000]Point[/font](140, 20);//设置方块的起始位置
label3.Text = "0";//显示去除的行数
label4.Text = "0";//显示分数
MyRussia.Label_Linage = label3;//将label3控件加载到Russia类中
MyRussia.Label_Fraction = label4;//将label4控件加载到Russia类中
timer1.Interval = 500;//下移的速度
timer1.Enabled = false;//停止计时
timer1.Enabled = true;//开始计时
Random rand = new[font color=#FF0000] Random[/font]();//实例化Random
MyRussia.CakeNO = rand.Next(1, 8);//获取随机数
MyRussia.CakeMode(MyRussia.CakeNO);//设置方块的样式
MyRussia.Protract(panel1);//绘制组合方块
beforehand();//生成下一个方块的样式
MyRussia.PlaceInitialization();//初始化Random类中的信息
MyRussia.isbegin = true;//判断是否开始
ispause = true;
MyRussia.timer = timer1;
button2.Text = "暂停";
ispause = true;
textBox1.Focus();//获取焦点
}
private [font color=#FF0000]void[/font] timer1_Tick(object sender, EventArgs e)
{
MyRussia.ConvertorMove(0);//方块下移
if (MyRussia.become)//如果显示新的方块
{
beforehand();//生成下一个方块
MyRussia.become = false;
}
textBox1.Focus();//获取焦点
}
public void beforehand()
{
Graphics P3 = panel3.CreateGraphics();
P3.FillRectangle(new [font color=#FF0000]SolidBrush[/font](Color.Black), 0, 0, panel3.Width, panel3.Height);
Random rand = new [font color=#FF0000]Random[/font]();//实例化Random
MyRussia.CakeNO = rand.Next(1, 8);//获取随机数
TemRussia.firstPoi = new [font color=#FF0000]Point[/font](50, 30);//设置方块的起始位置
TemRussia.CakeMode(MyRussia.CakeNO);//设置方块的样式
TemRussia.Protract(panel3);//绘制组合方块
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (!MyRussia.isbegin)//如果没有开始游戏
return;
if (!ispause)//如果游戏暂停
return;
if (e.KeyCode == Keys.Up)//如果当前按下的是↑键
MyRussia.MyConvertorMode();//变换当前方块的样式
if (e.KeyCode == Keys.Down)//如果当前按下的是↓键
{
timer1.Interval = 300;//增加下移的速度
MyRussia.ConvertorMove(0);//方块下移
}
if (e.KeyCode == Keys.Left)//如果当前按下的是←键
MyRussia.ConvertorMove(1);//方块左移
if (e.KeyCode == Keys.Right)//如果当前按下的是→键
MyRussia.ConvertorMove(2);//方块右移
}
}
}
Class1类也添加了!但RussiaFKClass.dll添加不了,只是把它放在debug文件夹里。我特意标有红色的地方它都报错!!求解
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace 俄罗斯方块
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
[font color=#FF0000] Class1 [/font]MyRussia = new [font color=#FF0000]Class1() [/font];//实例化Class1类,用于操作游戏
[font color=#FF0000] Class1[/font] TemRussia = new[font color=] Class1(); [/font]//实例化Class1类,用于生成下一个方块样式
public bool ispause = true;//判断是否暂停游戏
public Timer timer = new Timer();//定义计时器对象
}
private[font color=#FF0000] void [/font]button1_Click()
{
MyRussia.ConvertorClear();//清空整个控件
MyRussia.firstPoi = new [font color=#FF0000]Point[/font](140, 20);//设置方块的起始位置
label3.Text = "0";//显示去除的行数
label4.Text = "0";//显示分数
MyRussia.Label_Linage = label3;//将label3控件加载到Russia类中
MyRussia.Label_Fraction = label4;//将label4控件加载到Russia类中
timer1.Interval = 500;//下移的速度
timer1.Enabled = false;//停止计时
timer1.Enabled = true;//开始计时
Random rand = new[font color=#FF0000] Random[/font]();//实例化Random
MyRussia.CakeNO = rand.Next(1, 8);//获取随机数
MyRussia.CakeMode(MyRussia.CakeNO);//设置方块的样式
MyRussia.Protract(panel1);//绘制组合方块
beforehand();//生成下一个方块的样式
MyRussia.PlaceInitialization();//初始化Random类中的信息
MyRussia.isbegin = true;//判断是否开始
ispause = true;
MyRussia.timer = timer1;
button2.Text = "暂停";
ispause = true;
textBox1.Focus();//获取焦点
}
private [font color=#FF0000]void[/font] timer1_Tick(object sender, EventArgs e)
{
MyRussia.ConvertorMove(0);//方块下移
if (MyRussia.become)//如果显示新的方块
{
beforehand();//生成下一个方块
MyRussia.become = false;
}
textBox1.Focus();//获取焦点
}
public void beforehand()
{
Graphics P3 = panel3.CreateGraphics();
P3.FillRectangle(new [font color=#FF0000]SolidBrush[/font](Color.Black), 0, 0, panel3.Width, panel3.Height);
Random rand = new [font color=#FF0000]Random[/font]();//实例化Random
MyRussia.CakeNO = rand.Next(1, 8);//获取随机数
TemRussia.firstPoi = new [font color=#FF0000]Point[/font](50, 30);//设置方块的起始位置
TemRussia.CakeMode(MyRussia.CakeNO);//设置方块的样式
TemRussia.Protract(panel3);//绘制组合方块
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (!MyRussia.isbegin)//如果没有开始游戏
return;
if (!ispause)//如果游戏暂停
return;
if (e.KeyCode == Keys.Up)//如果当前按下的是↑键
MyRussia.MyConvertorMode();//变换当前方块的样式
if (e.KeyCode == Keys.Down)//如果当前按下的是↓键
{
timer1.Interval = 300;//增加下移的速度
MyRussia.ConvertorMove(0);//方块下移
}
if (e.KeyCode == Keys.Left)//如果当前按下的是←键
MyRussia.ConvertorMove(1);//方块左移
if (e.KeyCode == Keys.Right)//如果当前按下的是→键
MyRussia.ConvertorMove(2);//方块右移
}
}
}
Class1类也添加了!但RussiaFKClass.dll添加不了,只是把它放在debug文件夹里。我特意标有红色的地方它都报错!!求解