用鼠标在屏幕上拖动多张图片


以前看过一段代码,说的是用鼠标在屏幕上拖动图片,但这段代码的扩展性不是很好,拖动任何位置,图片都会移动,且只能拖动一张图片。代码如下:


var Tu : Texture2D;
private var first = Vector2.zero;
private var second = Vector2.zero;
private var tempx : float = 0;
private var tempy : float = 0;
function OnGUI () {
GUI.DrawTexture (Rect (tempx, tempy, 50, 50),Tu);
   if(Event.current.type == EventType.MouseDown){
first = Event.current.mousePosition ;
}
  
if(Event.current.type == EventType.MouseDrag){
second = Event.current.mousePosition ;
tempx += (second.x-first.x);
tempy += (second.y-first.y);
first = second;
}
}
function Update ()
{
}


  下面贴一段我修改后的代码,这段代码可以实现鼠标必须点击在图片上才能拖动图片,且可以拖动多张图片。拖动某一张图片时,其他图片不会收影响。利用这个思想,你可以实现其他的很多功能,不仅仅是拖动图片,例如可以实现判断图片是否拖入某一正确区域等等(拼图游戏可以用上述方法实现)。


var Tu : Texture2D;
var Tu1 : Texture2D;
private var first = Vector2.zero;
private var second = Vector2.zero;
private var tempx : float = 0;
private var temp1x : float = 500;
private var tempy : float = 0;
private var temp1y : float = 0;
var IsTu : int = 0;
var IsTu1 : int = 0;
function Update () {
}
function OnGUI ()
{
GUI.DrawTexture (Rect (tempx, tempy, 50,
50),Tu);
GUI.DrawTexture (Rect (temp1x, temp1y,
50, 50),Tu1);
if(Event.current.type ==
EventType.MouseDown){
first =
Event.current.mousePosition ;
}
if(first.x > tempx && first.x <
(tempx+50) && first.y > tempy && first.y < (tempy+50)
){
IsTu = 1;
}
if(first.x > temp1x && first.x <
(temp1x+50) && first.y > temp1y && first.y < (temp1y+50)
){
IsTu1 = 1;
}
if(Event.current.type == EventType.MouseDrag
&& IsTu == 1){
second =
Event.current.mousePosition ;
tempx +=
(second.x-first.x);
tempy +=
(second.y-first.y);
first = second;
IsTu = 0;
}
if(Event.current.type == EventType.MouseDrag
&& IsTu1 == 1){
second =
Event.current.mousePosition ;
temp1x +=
(second.x-first.x);
temp1y +=
(second.y-first.y);
first = second;
IsTu1 = 0;
}
}
//~ function Update
() {
//~ }

转载于:https://my.oschina.net/jieshu/blog/134516

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值