亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        用Scratch玩手勢控制(下)

        2015-07-20 23:42:52謝作如
        中國信息技術(shù)教育 2015年11期
        關(guān)鍵詞:插件手勢剪刀

        謝作如

        毫無疑問,Leap Motion是一款很有趣的體感控制器。借助于斯蒂芬·豪威爾“Scratch 2.0 Plug-in for Leap Motion”插件,中小學(xué)生用Scratch2.0,就能編寫出很酷的手勢控制方面的應(yīng)用來。在上期的文章中,我借助“用手‘抓’住小貓”和“深海捕魚”兩個范例,初步介紹了手勢控制方面的編程。在這期的文章中,我們繼續(xù)研究稍微復(fù)雜的手勢識別功能的實現(xiàn)。

        需要提示的是,Scratch2.0的文件能夠保存其原先使用的第三方插件信息。你只要打開原來保存的手勢控制程序,就不需要再次去載入“LeapMotion.json”腳本文件了。這樣一來,我們編寫需要第三方插件的Scratch程序就比較方便了。

        用手勢實現(xiàn)放大和縮小功能

        通過手勢控制圖片或者網(wǎng)頁的放大和縮小,是手機觸控屏上的常見應(yīng)用。這一功能雖然常見,但在普通的觸控屏上實現(xiàn)起來并不容易,因為這涉及多點觸控。Leap Motion可以識別雙手,剛好可以讓我們體驗這一好玩的功能。

        以下是一個通過手勢控制小魚大小的程序,具體功能為:雙手握拳,然后改變雙手之間的距離,屏幕上的小魚也就根據(jù)距離的變化,自行放大或者縮小,其界面如圖1所示。

        程序功能分析:

        ①首先我們需要判斷雙手是否握拳,用“Hand-1 Open?”和“Hand-2 Open?”不成立就可以判斷。原理很好理解,但代碼拼接起來有點長,這也是圖形化編程語言的最大不足。

        ②而后要判斷雙手之間有沒有改變距離。我使用d1和d2兩個變量,d1記錄的是上一次的距離,d2記錄的是當(dāng)前的距離。然后將d2除以d1的值與角色的原大小相乘,并設(shè)定角色大小。這樣就能夠用動態(tài)的雙手距離控制角色大小了。

        需要注意的是,如果雙手不處于“握拳”狀態(tài)時,d1的值需要初始化為0。不然,這會導(dǎo)致你無法連續(xù)做縮放角色的操作。完整的代碼如圖2所示。

        和電腦玩“石頭剪刀布”

        “石頭剪刀布”是大家最熟悉的猜拳游戲了,和電腦玩“石頭剪刀布”游戲的程序也多如牛毛。但是,那些程序無非是用鼠標(biāo)鍵盤選擇一個按鈕,然后和電腦出的隨機數(shù)進行比較,無趣得很。你甚至不知道電腦是不是耍了什么手段,畢竟電腦永遠是在你選擇后才暗中“出拳”。你見過有誰真正用劃拳的形式和電腦玩“石頭剪刀布”嗎?

        我們可以借助Leap Motion,做一個玩家和電腦可以“公平”玩猜拳的手勢游戲。游戲設(shè)定為:當(dāng)?shù)褂嫊r結(jié)束,玩家和電腦同時“出拳”,然后電腦識別出玩家的手勢,根據(jù)自己的出拳結(jié)果,判斷輸贏。

        游戲的核心功能并不復(fù)雜。首先要讓電腦能夠判斷玩家出的拳(手勢)是石頭還是剪刀或者布。這三個手勢中,比較麻煩的是“剪刀”,這需要進行多次測試,看Leap Motion的識別結(jié)果是否準(zhǔn)確。比如我就用下頁圖3的代碼,分別判斷當(dāng)玩家出“剪刀”的時候,五個手指的狀態(tài)分別是處于什么情況,記錄并分析。

        也許是插件的BUG或者是Leap Motion的識別存在某些不足,“剪刀”這一手勢,插件反饋的往往不是“食指和中指”可見,反而是“大拇指和食指”可見。經(jīng)過多次測試,我發(fā)現(xiàn)如下表所示的規(guī)律:

        可能有人會問,對于“石頭”的判斷,為什么不直接用“‘hand-1 Open’不成立”呢?其實,對于Leap Motion來說,“剪刀”也是“‘hand-1 Open’不成立”的。既然我們僅僅是為了區(qū)分三種手勢,也可以更簡單點,將三種情況合并起來判斷,如圖4。

        需要注意的是,玩家出拳前最好要先把手勢做標(biāo)準(zhǔn),然后展示在Leap Motion的上方,不要太靠近。尤其不能等手到了固定的位置再做出手勢,這樣容易導(dǎo)致Leap Motion誤判。在實際的測試中,Leap Motion還是能讓我滿意的,識別的準(zhǔn)確率能達到90%。

        好了,既然三種手勢都能正確識別,這個程序的核心功能就實現(xiàn)了。我們可以優(yōu)化一下程序,把其他功能完善起來。限于篇幅,具體的代碼就不再贅述了。具體界面如圖5-圖9所示。

        看到“后出”提示了嗎?在這個游戲中,我們再也不用擔(dān)心電腦作弊了,因為它甚至?xí)饶阆瘸?。?dāng)然,如果你不及時出拳,程序會判定你“后出”的。總之,誰也別想耍賴。

        借助這兩個范例,我們初步實現(xiàn)了一些有趣的手勢識別功能,但是也發(fā)現(xiàn)“Scratch 2.0 Plug-in for Leap Motion”插件存在很多不足。如果你具有一定的編程能力,還可以下載插件源碼,增加相應(yīng)的功能,讓Scratch2.0的手勢控制更加強大。我們希望有更多的高手,在他人的開源代碼基礎(chǔ)上,增加新的功能后再開源出去。如果你用Leap Motion識別出更多的手勢,請別忘了分享你的代碼。

        如果對相關(guān)內(nèi)容感興趣,請關(guān)注主持人博客。

        猜你喜歡
        插件手勢剪刀
        鈍剪刀
        家教世界(2020年31期)2020-12-02 01:14:06
        自編插件完善App Inventor與樂高機器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        挑戰(zhàn)!神秘手勢
        風(fēng)有一把剪刀
        V字手勢的由來
        大剪刀,小剪刀
        幼兒園(2018年6期)2018-06-19 17:11:38
        勝利的手勢
        小小金剪刀
        小主人報(2016年19期)2016-02-24 03:25:50
        MapWindowGIS插件機制及應(yīng)用
        基于Revit MEP的插件制作探討
        亚洲av无码一区二区二三区| 亚洲一二三四区免费视频| 亚洲视频在线视频在线视频 | 亚洲国产AV无码男人的天堂| 亚洲中文字幕在线爆乳| 国产精品日本一区二区三区| 精品国产精品久久一区免费式| 激情综合色综合久久综合| 日本巨大的奶头在线观看| 粉嫩高中生无码视频在线观看| 日本免费精品免费视频| 亚洲精品乱码久久久久蜜桃| 射死你天天日| 亚洲综合欧美在线| 亚洲无码毛片免费视频在线观看| 国产av三级精品车模| 亚洲精品无码av人在线观看国产 | 四虎影视永久在线精品| 中日无码精品一区二区三区| 日本顶级片一区二区三区| 欲香欲色天天天综合和网| 国产午夜精品一区二区三区| 亚洲av无码一区二区三区在线| 国产在线看不卡一区二区| 男女性行为免费视频网站| 在线中文字幕乱码英文字幕正常| 在线亚洲人成电影网站色www| 欧美亚洲尤物久久综合精品| 亚州中文热码在线视频| 亚洲va国产va天堂va久久| 亚洲综合久久成人a片| 久久99久久99精品观看| 精品国产一区二区三区av免费| 天天综合网在线观看视频| 自拍偷自拍亚洲精品播放| 一品二品三品中文字幕| 老女老肥熟女一区二区| 毛片内射久久久一区| 久久AV中文一区二区三区| 亚洲妓女综合网99| 中国少妇和黑人做爰视频|