flash as3.0代码做个小游戏:把物体拖到对应的区域,正确则放下,错误回到原位,都正确后跳出表扬动画
求大神在【】中补充完整代码圆形.__x=圆形.x;圆形.__y=圆形.y;圆形.addEventListener(MouseEvent.MOUSE_DOWN,onDown...
求大神在【】中补充完整代码
圆形.__x = 圆形.x;
圆形.__y = 圆形.y;
圆形.addEventListener(MouseEvent.MOUSE_DOWN, onDown_圆形)
function onDown_圆形(_evt:MouseEvent):void{
圆形.startDrag(false);
}
圆形.addEventListener(MouseEvent.MOUSE_UP, onUp_圆形)
function onUp_圆形(_evt:MouseEvent):void{
圆形.stopDrag();
if(圆形.hitTestObject(圆形框)){
【?】//圆形放下
} else {
圆形.x = 圆形.__x;
圆形.y = 圆形.__y;
}
}
方形.__x = 方形.x;
方形.__y = 方形.y;
方形.addEventListener(MouseEvent.MOUSE_DOWN, onDown_方形)
function onDown_方形(_evt:MouseEvent):void{
方形.startDrag(false);
}
方形.addEventListener(MouseEvent.MOUSE_UP, onUp_方形)
function onUp_方形(_evt:MouseEvent):void{
方形.stopDrag();
if(方形.hitTestObject(方形框)){
【?】//方形放下
} else {
方形.x = 方形.__x;
方形.y = 方形.__y;
}
}
【?】//当圆形和方形都正确放在对应的框后弹出一段影片剪辑动画
其实放下的代码可以为圆形.x=圆形.x,现在的问题是最后的代码,怎么判断所有物体都正确放在对应的框中了,然后跳出完成的动画(圆形方形不只有一个,我只是简化了) 展开
圆形.__x = 圆形.x;
圆形.__y = 圆形.y;
圆形.addEventListener(MouseEvent.MOUSE_DOWN, onDown_圆形)
function onDown_圆形(_evt:MouseEvent):void{
圆形.startDrag(false);
}
圆形.addEventListener(MouseEvent.MOUSE_UP, onUp_圆形)
function onUp_圆形(_evt:MouseEvent):void{
圆形.stopDrag();
if(圆形.hitTestObject(圆形框)){
【?】//圆形放下
} else {
圆形.x = 圆形.__x;
圆形.y = 圆形.__y;
}
}
方形.__x = 方形.x;
方形.__y = 方形.y;
方形.addEventListener(MouseEvent.MOUSE_DOWN, onDown_方形)
function onDown_方形(_evt:MouseEvent):void{
方形.startDrag(false);
}
方形.addEventListener(MouseEvent.MOUSE_UP, onUp_方形)
function onUp_方形(_evt:MouseEvent):void{
方形.stopDrag();
if(方形.hitTestObject(方形框)){
【?】//方形放下
} else {
方形.x = 方形.__x;
方形.y = 方形.__y;
}
}
【?】//当圆形和方形都正确放在对应的框后弹出一段影片剪辑动画
其实放下的代码可以为圆形.x=圆形.x,现在的问题是最后的代码,怎么判断所有物体都正确放在对应的框中了,然后跳出完成的动画(圆形方形不只有一个,我只是简化了) 展开
2个回答
展开全部
那你就需要加一个变量, 比如
var right:int = 0;
还有一个判断的函数;
function judgeRight():void{
right++;
if(right >= 所有形状的个数){
//弹出影片剪辑动画
}
}
在每个正确位置的地方加一句:
judgeRight();
圆形.x = 圆形框.x + px;
圆形.y = 圆形框.y + py;
如果圆形框为容器.
可以直接将圆形加到圆形框内;
圆形.x = 0 + px;
圆形.y = 0 + py;
圆形框.addChild(圆形);
方形.x = 方形框.x + px;
方形.y = 方形框.y + py;
如果方形框为容器.
可以直接将方形加到方形框内;
方形.x = 0 + px;
方形.y = 0 + py;
方形框.addChild(方形);
上述表达式中的px/py表示偏移量(目的是为了中心对齐的), 这个要你根据你的设置自己计算
比如圆形和圆形框
圆形和圆形框的中心点
如果都是圆心, 则py=px=0;
如果都在左上角, 则 py=px= 圆形框.半径-圆形.半径;
你根据实际情况 自己计算
var right:int = 0;
还有一个判断的函数;
function judgeRight():void{
right++;
if(right >= 所有形状的个数){
//弹出影片剪辑动画
}
}
在每个正确位置的地方加一句:
judgeRight();
圆形.x = 圆形框.x + px;
圆形.y = 圆形框.y + py;
如果圆形框为容器.
可以直接将圆形加到圆形框内;
圆形.x = 0 + px;
圆形.y = 0 + py;
圆形框.addChild(圆形);
方形.x = 方形框.x + px;
方形.y = 方形框.y + py;
如果方形框为容器.
可以直接将方形加到方形框内;
方形.x = 0 + px;
方形.y = 0 + py;
方形框.addChild(方形);
上述表达式中的px/py表示偏移量(目的是为了中心对齐的), 这个要你根据你的设置自己计算
比如圆形和圆形框
圆形和圆形框的中心点
如果都是圆心, 则py=px=0;
如果都在左上角, 则 py=px= 圆形框.半径-圆形.半径;
你根据实际情况 自己计算
追问
代码是可以的,但有漏洞,比如我有2圆2方,四次正确后出现影片剪辑,我拖一个圆到圆框时记录了一次,接下来我还是拖这个圆在圆框里其他位置,它还是记录正确,我拖四次这个圆到圆框其它不动影片剪辑也会出来,但这显然是不对的,所以问题是不仅要记录正确的次数,还要判断每个物体都正确了
追答
那就在拖动正确位置以后,
移除拖动事件(注意侦听方法的不同 要做相应修改)
_evt.target.removeEventListener(MouseEvent.MOUSE_DOWN, onDown_圆形);
_evt.target.removeEventListener(MouseEvent.MOUSE_UP, onUp_圆形);
或者直接禁用鼠标事件
_evt.target.mouseEnabled = false; //禁用鼠标监听
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,你这个游戏是怎么做啊具体😂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询