键盘拼图游戏制作心得
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
键盘拼图游戏制作心得
为了提高学生键盘盲打的兴趣,我做了个flash键盘拼图的小游戏。其中尝试用了hit()触发命令,发现效果不错,它可以解决交互中很多问题。
先来看看我的制作过程吧!
设计思路:
目的:让学生能够拖动散落在地上的“键盘子”,并将它们放入到键盘相应的位置,如果正确靠近触碰就吸附,如果不正确就返回原来位置。当全部正确就显示表扬。
设计步骤:
一、故事情景导入:灰太狼追逐喜羊羊们,碰撞键盘,散落了一些“键盘子”。这些简单动过就不详细了。如图所示
二、用鼠标能拖动或放下“键盘子”。这里我用了startDrag和stopDrag
首先将每一个掉下来的“键盘子”都设置为影片剪辑,并多复制一个(将多复制的影片剪辑设为完全透明,并潜伏在各自正确的位置,备用)。
然后在这些影片剪辑上加上actionscript命令
onClipEvent (mouseDown){
if(hitTest(_root._xmouse,_root._ymouse,false)){
startDrag("",true);
x=this._x;
y=this._y;
}
}
表示任意拖动某个“键盘子”。
在写入这个命令
onClipEvent (mouseUp){
stopDrag();
}
}
表示放下这个“键盘子”
三、判断是否正确碰触,并确定位置。
onClipEvent (mouseUp){ //鼠标放下
stopDrag(); //释放元件
if(!hitTest(_root.p1)){ //如果没有碰到p1(p1这个键盘子对应的隐形元件) this._x=x; //返回到原来的位置的x坐标
this._y=y; //返回到原来的位置的y坐标
}else{ //否则,如果碰到p1
this._x=_root.p1._x; //和P1的x坐标重合
this._y=_root.p1._y; //和P1的y坐标重合
}
}
四、统计正确触碰的次数
设定一个计数变量jieguo,没正确一次就加1。Jieguo=jieguo+1 if(hitTest(_root._xmouse,_root._ymouse,false)){
//如果鼠标指针的坐标位置与当前的影片剪辑实例重叠
_root.jieguo = _root.jieguo+1;
//用变量"jieguo"统计正确拖动图像块的次数
五、显示表扬语句“你好棒哦”
在主界面制作一个动态文本框,设定其变量为xianshi
再加入命令
if(_root.jieguo==8){
_root.xianshi="你好棒哦!";
//给输出文本框变量赋值
通过类似的方法制作其它几个“键盘子”的actionScript命令,就可以完成。
整合一下如下:
onClipEvent (mouseDown){
//按下鼠标
if(hitTest(_root._xmouse,_root._ymouse,false)){
startDrag("",true); //拖动当前的“键盘子”
x=this._x;
y=this._y;
}
}
onClipEvent (mouseUp){ //鼠标放下
stopDrag(); //释放元件
if(!hitTest(_root.p1)){ //如果没有碰到p1(p1这个键盘子对应的隐形元件) this._x=x; //返回到原来的位置的x坐标
this._y=y; //返回到原来的位置的y坐标
}else{ //否则,如果碰到p1
this._x=_root.p1._x; //和P1的x坐标重合
this._y=_root.p1._y; //和P1的y坐标重合
if(hitTest(_root._xmouse,_root._ymouse,false)){
//如果鼠标指针的坐标位置与当前的影片剪辑实例重叠
_root.jieguo = _root.jieguo+1;
//用变量"jieguo"统计正确拖动图像块的次数
}
}
if(_root.jieguo==8){
_root.xianshi="你好棒哦!";
//给输出文本框变量赋值
}
在这个游戏中,hit()命令很重要,原理是通过隐身的元件1来固定位置A,然后用鼠标拖动元件2,直到元件2碰撞到元件1,则使得位置变化的元件2有了正确的位置A。
这种放法的灵活性在于隐身元件1的位置、形状、大小可以变化无常,比起我以前用的固定坐标法要先进很多,固定坐标法是指,通过数值固定一个矩形的区域,当鼠标的坐标在这个区域里面的时候就吸附,所以这个区域永远是矩形的,固定的范围,变化起来相当复杂。而通过隐身元件事情就变得简单了,元件是什么形状,触碰区域就是什么形状,元件是什么位置触碰点就在什么位置。有了这个hit()以后还可以制作打气球,填颜色,敲地鼠,配衣服等等小游戏了。感觉收获很大。