一个简单的多点触摸


进来在研究touchlib,和大家分享一下:
这是一个简单的多点触摸程序,实现对一个方块的缩放和旋转。
需要的软件:
1,Simulator,请到这里下载
2,touchlib,请参照我的上一篇教程《如何用SVN下载touchlib》

好,准备完毕,开工:
1,打开Flash CS3,建立一个AS3文件,保存到   ../touchlib/as3/int文件夹下,起名叫做 MTTest.fla。

2, 新建一个as3文件,起名为MTTest.as,同样保存到 ../touchlib/as3/int文件夹下。

3,在as3文件里,输入下面的代码,建议你最好自己敲进去,不要直接复制。

package{
     import flash.display.Sprite;
     import flash.events.TUIO;
     import flash.events.Event;
     import flash.events.TouchEvent;
     import flash.display.Graphics;
     import app.core.action.RotatableScalable;
   
public class MTTest extends Sprite{
 
    private var mc:RotatableScalable=new RotatableScalable();
 
    public function MTTest(){
  
    TUIO.init(this."localhost",3000,"",true);
           init();
     }
    private function init():void{
    mc.graphics.beginFill(0x99cc00);
    mc.graphics.drawRect(-50,-50,100,100);
    mc.graphics.endFill;
    addChild(mc);
    mc.x=200;
    mc.y=200;
    }
  }
}

4,在MTTest.fla文档类里输入MTTest, 注意大小写。

5,打开Flosc.rar, 并点击“Start”按钮,再打开Simulator.jar。

6,回答Flash CS3界面,Ctrl+Enter,发布Flash。这时,应该会看到一个绿色的方块。

7,回到Simulator界面,就可以缩放和移动那个绿色方块了。注意位置要对应好,要不点不到方块上。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Unity中,可以通过多点触摸来实现模型的旋转。以下是一种实现方式: 1. 首先,确保你的设备支持多点触摸功能。 2. 创建一个3D模型,并将其添加到场景中。 3. 在脚本中,使用`Input.touchCount`来获取当前屏幕上的触摸点数量。 4. 使用`Input.GetTouch(index)`来获取每个触摸点的信息,其中`index`表示触摸点的索引。 5. 使用`Touch.phase`来判断触摸的状态,例如`Began`表示触摸开始,`Moved`表示触摸移动,`Ended`表示触摸结束。 6. 在触摸移动状态下,可以使用`Touch.deltaPosition`来获取触摸点的位移量。 7. 将触摸点的位移量映射到模型的旋转角度上,可以使用`Transform.Rotate`方法来实现模型的旋转。 8. 在脚本中更新模型的旋转角度,并将其应用到模型的Transform组件上。 下面是一个简单的示例代码: ```csharp using UnityEngine; public class RotateModel : MonoBehaviour { private Vector2 previousTouchPos; void Update() { if (Input.touchCount == 2) { Touch touch1 = Input.GetTouch(0); Touch touch2 = Input.GetTouch(1); if (touch2.phase == TouchPhase.Began) { previousTouchPos = touch2.position - touch1.position; } else if (touch1.phase == TouchPhase.Moved && touch2.phase == TouchPhase.Moved) { Vector2 currentTouchPos = touch2.position - touch1.position; Vector2 deltaPos = currentTouchPos - previousTouchPos; float rotationSpeed = 0.5f; // 调整旋转速度 transform.Rotate(Vector3.up, -deltaPos.x * rotationSpeed, Space.World); transform.Rotate(Vector3.right, deltaPos.y * rotationSpeed, Space.World); previousTouchPos = currentTouchPos; } } } } ``` 这段代码会在有两个触摸点且触摸点移动时,根据触摸点的位移量来旋转模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值