article search result of 'nui' : 1

  1. 2010.12.18 [XNA on TUIO] CCV 1.4 <- TUIO -> XNA (128)

[XNA on TUIO] CCV 1.4 <- TUIO -> XNA


.


CCV1.4 가 업데이트 됬다길래 , 성능도 시험 해볼겸사 , 해서 보니, 집에 있는 대충의 물건만으로도 멀티터치를 구현할수 있겠거니 하는 생각이 들었다.

웹캠이 필요했는데 , 마침 , 세계최강의 가정용 웹캠 마이크로 소프트 시네마 ! 를 ,, 적외선캠으로 만들기에는 너무 아까웠다 ,
그래서 적외선 말고도 강력하게 대비를 줄수 있는 물건을 생각하다가, 한번도 열어보지 않았던 연봉계약서, 검은 봉투와 대충 공책 짤라서 만든 흰색 종이 사각형으로 카메라 설정 조금 만져주고 하니, 별 손색업는 멀티포인트 테스트 장비가 되었다.






c# TUIO 라이브러리 :

간단한 tuio 클라이언트 사용법은 ..



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TUIO;
using Microsoft.Xna.Framework;
/*
 * CCV 에서 넘어온 좌표를 리턴하는 클래스 ;
 * 작성자 : superSc , Yamecoder , jjongun 
*/

namespace TEST_XNA_TUIO
{
    //TuioListener 를 상속하고 , ,
    public class XNATuioListener : TuioListener
    {
        //TuioClient 를 사용한다;.
        private TuioClient clinet;
        private Point point;
        private int stageWidth;
        private int stageHeight;

        public XNATuioListener(int _stageWidht , int _stageHeight)
            :base()
        {
            clinet = new TuioClient();
            //클라이언트와 리스너를 연결하고 ; ,
            clinet.addTuioListener(this);
            //접속을 한다.
            clinet.connect();

            stageWidth = _stageWidht;
            stageHeight = _stageHeight;
            point = new Point();
        }



        #region TuioListener &#47716;&#48260;
        void TuioListener.addTuioObject(TuioObject tobj)
        {
        }

        void TuioListener.updateTuioObject(TuioObject tobj)
        {
        }

        void TuioListener.removeTuioObject(TuioObject tobj)
        {
        }

        void TuioListener.addTuioCursor(TuioCursor tcur)
        {
        }

        void TuioListener.updateTuioCursor(TuioCursor tcur)
        {
            point.X = tcur.getScreenX(stageWidth);
            point.Y = tcur.getScreenY(stageHeight);
        }

        void TuioListener.removeTuioCursor(TuioCursor tcur)
        {
        }

        void TuioListener.refresh(TuioTime ftime)
        {
        }
        #endregion

        public void disconnect()
        {
            clinet.disconnect();
        }

        public Point getPoint
        {
            get { return point; }
        }
    }
}
 
상속 구현된 인터페이스를 보면 알겠지만 , tuio 정보들을 모두 수집할수 있다 ,

이를 비동기적으로 컨트롤 할 구조만 완성되면 XNA 를 이용하요 멀티터치 컨텐츠를 쉽고 강력하게 만들수 있다.

참고 : 네이버 XNA 카페

//

스케일 구현이나, 다중 포인터 생성은 , 다음에 , .. 금요일엔 한없이 한가하고 개을러 지다가  , 일요일저녁만 되면 주말을 알차게 활용못한 내자신이 부끄러워 지고 ,이제서야 조급해 지지만 이미 시계는 월요일 새벽 - - ;
또한 , 그것은 break 업는 무한 while 루프 .
Yamecoder 야매코더_
tags : , , , ,
XNA 2010.12.18 21:13
Powerd by Tistory, designed by criuce
rss