项目要求:
项目需求分析与个人建议: (仅为建议,请有意者选择性听取)
(简单游戏项目,不劳一定没有干货,加油)
思路千万条,不要让外人左右自己的想法,敢想咱也得敢干。
从题设可见,文章所列内容有以下几个关键点:
1、注册登录(网上教程多此处不提了)
2、游戏本体:自己规划和设计提高能力的关键步骤;难点主要有:图片的拖动,图片接受框(建议做出类似吸附的效果)。本人所制如下:
3、结束部分(成绩统计和其他功能模块),自主万岁。
简单划分三部分后,接着介绍难点:
具体来说,难点在于图片的拖动和图片接受框的制作,其中拖动方式样式较多,主要用坐标的变化来实现拖动,可利用(1)mouseup+mousemove+mousedown(如下)的组合完成拖拽的实现,也可将其附在click事件上,点击后即可移动图片(此过程中可根据26字母图片的共性实现总工作量的缩减)。
对于图片接受框,可以只是一个图片提供坐标,也可制作一个图片吸附的功能,具体就是将图片的定位点到达某个位置范围内即令其坐标直接等同于图片接受框,并将字母图片所代表的内容存到答案中。
private void q_MouseMove(object sender, MouseEventArgs e)
{
if (down == true)
{
q.Left += Convert.ToInt16(e.X - xPos);
q.Top += Convert.ToInt16(e.Y - yPos);
}
//移动中
}
private void q_MouseUp(object sender, MouseEventArgs e)
{
down = false;
if (q.Left >= pic1.Left - 10 && q.Top >= pic1.Top - 10 &&
q.Right <= pic1.Right + 10 && q.Bottom <= pic1.Bottom + 10)
{
pin1.Text = "q";
da[0] = pin1.Text;
}
else if (q.Left >= pic2.Left - 10 && q.Top >= pic2.Top - 10 &&
q.Right <= pic2.Right + 10 && q.Bottom <= pic2.Bottom + 10)
{
pin2.Text = "q";
da[1] = pin2.Text;
}
else if (q.Left >= pic3.Left - 10 && q.Top >= pic3.Top - 10 &&
q.Right <= pic3.Right + 10 && q.Bottom <= pic3.Bottom + 10)
{
pin3.Text = "q";
da[2] = pin3.Text;
}
else if (q.Left >= pic4.Left - 10 && q.Top >= pic4.Top - 10 &&
q.Right <= pic4.Right + 10 && q.Bottom <= pic4.Bottom + 10)
{
pin4.Text = "q";
da[3] = pin4.Text;
}
else if (q.Left >= pic5.Left - 10 && q.Top >= pic5.Top - 10 &&
q.Right <= pic5.Right + 10 && q.Bottom <= pic5.Bottom + 10)
{
pin5.Text = "q";
da[4] = pin6.Text;
}
else if (q.Left >= pic6.Left - 10 && q.Top >= pic6.Top - 10 &&
q.Right <= pic6.Right + 10 && q.Bottom <= pic6.Bottom + 10)
{
pin6.Text = "q";
da[5] = pin6.Text;
}
q.Left = Convert.ToInt16(x0);
q.Top = Convert.ToInt16(y0);
}
private void q_MouseDown(object sender, MouseEventArgs e)
{
down = true;
q = (PictureBox)sender;//获取准确坐标
xPos = e.X;//设置鼠标坐标,移动用
yPos = e.Y;
x0 = q.Left;y0 = q.Top;//设置初始坐标,回到初始位置用
}
对于字库:字库文件可以自制一个比较简单的,以分隔符的方式将其存到文本文档中即可,在抽题读取时用分隔符的方式将题目各部分存在数组中进行读取,也可从网上下载,只要自己能懂一切都不是问题,自己思考后能懂即可。
对于抽题部分,我们生成一个随机数并根据所用字库文件中的题量限制随即数的范围,一个arrylist就可以解决存储问题,再加上分隔符即可实现抽题。
答案部分可由拼音和音标构成,以字库文件的选择为依据,将答案与所选题对比进行作答的正误判断,也可有自己的创新,无论是以验证的方式还是提交后自动跳转下一题的方式,均可对需求进行完善和解决,同时依据需求,对所选的成绩可进行统计,以多种形式对作品进行完善,以求更加完美。各种功能的附加等也应依据游戏本体等进行添加和完善。
对于答案组成,个人可以凭借自己的想法进行,对于过程中所出现的各种情况,我们均可对其进行分类和整理,存到成绩内,能够查看处理好细节即可。
项目的过程是需要自己思索的,估计作此项目也只会出现在大一阶段,这是一个提升自己能力的好机会,思路如上仅供参考,希望能有帮助。