• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Alice

      2016-06-14 00:28:39吳佳潔王師艷全媛虹
      電腦知識(shí)與技術(shù) 2016年12期
      關(guān)鍵詞:代碼小鳥編程

      吳佳潔+王師艷+全媛虹

      摘要:Alice是一個(gè)在3D環(huán)境下編寫程序的軟件,使學(xué)生在利用信息技術(shù)分析和解決問題等方面的能力得到很好的提升,讓學(xué)生在學(xué)習(xí)編程的過程中多一些探索和樂趣,能夠幫助學(xué)生在實(shí)踐中培養(yǎng)計(jì)算機(jī)思維方式,為以后程序設(shè)計(jì)課程的挑戰(zhàn)做好準(zhǔn)備。

      關(guān)鍵詞:Alice;3D環(huán)境;思維方式

      中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)12-0158-02

      1 Alice簡介

      Alice項(xiàng)目是美國卡耐基梅隆大學(xué)的一個(gè)學(xué)術(shù)性的項(xiàng)目,Randy Pausch教授是該項(xiàng)目的創(chuàng)建人,他希望通過此項(xiàng)目教會(huì)青少年如何在3D環(huán)境下編寫計(jì)算機(jī)程序,它是一種全新的學(xué)習(xí)編程的方法,只要用日常的語言,就可以讓屏幕上的一切三維物體在虛擬世界里服從你的命令,你就可以自己導(dǎo)演電影和創(chuàng)作計(jì)算機(jī)游戲了。學(xué)生可以把圖片貼到一個(gè)物體上,還可以給物體增加各種簡單的動(dòng)作和腳本,讓虛擬世界里的物體具有靈活性。

      Alice是為初學(xué)者設(shè)計(jì)的一種直觀式的3D繪圖軟件,里面有許多事先設(shè)計(jì)好的繪圖物件、檢視工具和控制物件的工具,它不必學(xué)習(xí)復(fù)雜的程序語言就能掌握計(jì)算機(jī)繪圖,就算是剛開始學(xué)3D繪圖的人也能輕松學(xué)會(huì)。許多美國大學(xué)把Alice作為計(jì)算機(jī)專業(yè)的入門課程開設(shè),很多學(xué)生在學(xué)習(xí)了Alice之后對(duì)計(jì)算機(jī)專業(yè)產(chǎn)生興趣。Alice的使用非常容易,用它繪制出來的圖形可以直接儲(chǔ)存成網(wǎng)頁,甚至還可以直接導(dǎo)演一部動(dòng)畫!

      Alice是一個(gè)免費(fèi)的工具,它可以讓學(xué)生學(xué)習(xí)到最基本的編程概念,即使學(xué)生是第一次接觸面向?qū)ο缶幊蹋材芎芸鞂W(xué)會(huì)創(chuàng)建動(dòng)畫電影和簡單的視頻游戲。

      2 Alice的基本功能

      Alice提供了一個(gè)可拖動(dòng)的圖形界面,它由場(chǎng)景區(qū)、對(duì)象樹、代碼編輯區(qū)、對(duì)象列表、方函數(shù)方法細(xì)節(jié)區(qū)等六個(gè)部分組成。使用Alice編程你不需要自己寫類和對(duì)象,它自身就提供了大量的對(duì)象庫,只用根據(jù)提供的類創(chuàng)建對(duì)象即可。同樣的,使用Alice也不需要寫任何代碼,只需要拖動(dòng)對(duì)象的方法、函數(shù)塊到代碼區(qū),Alice會(huì)根據(jù)提示自動(dòng)生成代碼,如圖1:

      2.1 創(chuàng)建一個(gè)項(xiàng)目

      1)Alice創(chuàng)建一個(gè)項(xiàng)目,首先要進(jìn)行場(chǎng)景的選擇,再次就是進(jìn)行人物的選擇,最后在procedures區(qū)拖動(dòng)功能塊對(duì)人物動(dòng)作進(jìn)行程序設(shè)計(jì);

      2)選中要編輯的人物,對(duì)它進(jìn)行動(dòng)作設(shè)計(jì),Alice是在3D環(huán)境下編輯的,它就像人一樣,可以坐可以跳,只要你能想到的動(dòng)作,就可以拖動(dòng)程序塊,對(duì)它進(jìn)行控制,創(chuàng)造屬于你自己設(shè)計(jì)的動(dòng)畫視頻;

      3)每一個(gè)對(duì)象(人、動(dòng)植物等等)都有不同的關(guān)節(jié)、部位,就像java中一個(gè)類的數(shù)據(jù)成員,可以改變這些部位的位置或者對(duì)部位添加運(yùn)動(dòng)方法,即用類的函數(shù)成員對(duì)數(shù)據(jù)成員進(jìn)行訪問和修改。

      2.2 高級(jí)功能

      1)Alice除了它提供的屬性、方法、函數(shù),還可以自定義屬性、方法和函數(shù)。在窗口右邊頂上的白色矩形按鈕那里選擇不同的類,對(duì)其添加自定義的procedures、function、properties。

      2)在initializeEventListners的視圖里可以添加視聽,鍵盤、鼠標(biāo)的響應(yīng)就是在這里添加的。

      3 Alice動(dòng)畫具體實(shí)現(xiàn)

      Alice常用來制作3D動(dòng)畫和3D游戲,通過一個(gè)具體的動(dòng)畫實(shí)現(xiàn),我們能很直觀地看到Alice使用的方便、智能。做一個(gè)以“舉辦生日”為背景的動(dòng)畫,動(dòng)畫主要內(nèi)容:主人公生日,邀請(qǐng)惟一的好友來城堡參加自己的生日宴。生日宴上食物的香味吸引了城堡外小鳥,小鳥飛到橡樹上,它看到香蕉樹下的香蕉,于是飛到香蕉樹下,一跳一啄地到香蕉旁邊。通過Alice自身帶有的對(duì)象庫和方法塊,生成所需的對(duì)象,拖動(dòng)方法函數(shù)塊搭建動(dòng)畫,如圖2:

      3.1 動(dòng)畫的基本實(shí)現(xiàn)

      1)在Setup Scene 界面中使用Alice提供的類庫向草地場(chǎng)景添加必要的對(duì)象。主要人物三人:adultPerson、elderPerson、teenPerson,構(gòu)成城堡的十面墻CastleWall,桌子、椅子、蛋糕、碟子、樹、鳥等等。

      在Bird旁邊添加虛擬相機(jī)camera1,用于之后鏡頭的轉(zhuǎn)換。

      2)將添加的對(duì)象移動(dòng)調(diào)整到適合的位置、方向和大小,借助場(chǎng)景界面的相機(jī)視圖和右邊菜單欄的handle style。將城堡圍城一個(gè)區(qū)域,這個(gè)區(qū)域的內(nèi)部以及周圍就是動(dòng)畫場(chǎng)景,然后把設(shè)置好人物以及其他對(duì)象的位置和狀態(tài),并把主相機(jī)對(duì)準(zhǔn)adultPerson。

      3)添加Alice提供的方法塊,讓動(dòng)畫動(dòng)起來。拖動(dòng)左邊的Person方法塊MoveToward到代碼區(qū),設(shè)置移動(dòng)目標(biāo)和距離,讓人物移動(dòng)到距離桌子一定距離的地方。用同樣的方法實(shí)現(xiàn)椅子的拉開,鏡頭的轉(zhuǎn)換,小鳥的啄食動(dòng)作,小鳥的飛行動(dòng)作。

      3.2 動(dòng)畫的高級(jí)實(shí)現(xiàn)

      通過Alice提供的方法塊我們無法直接實(shí)現(xiàn)逼真的動(dòng)畫,即使成功實(shí)現(xiàn)了,這些動(dòng)作也不能運(yùn)用到其他項(xiàng)目里。為了解決這個(gè)問題,我們需要給人物、小鳥單獨(dú)建立一個(gè)測(cè)試項(xiàng)目,測(cè)試人物的走動(dòng)、坐下、拉椅子,小鳥的飛行、啄食等等方法。測(cè)試完畢后,將這些方法塊自定義成一個(gè)新的方法塊,并裝入各自的類中,就像java中不同類有不同的函數(shù)成員。

      1)為Person類添加行走(Walking)方法:選中Person類,轉(zhuǎn)到類視圖下,將測(cè)試完成的方法塊復(fù)制到Walking方法中,將方法的參數(shù)修改為P_SCamera,Obstacle,time,Reference。方法的作用:當(dāng)Person距離參照物Reference距離小于2.0就不斷向目標(biāo)Obstacle走,同時(shí)P_Camera的鏡頭一直對(duì)準(zhǔn)Person,運(yùn)動(dòng)時(shí)間由傳入?yún)?shù)time控制。其中關(guān)鍵偽代碼如下:

      2)用同樣方式給Person添加Sitting方法。方法參數(shù)修改為Chair,LR_Distance。因?yàn)锳lice提供的腿部關(guān)節(jié)轉(zhuǎn)動(dòng)沒有以膝蓋為支撐點(diǎn)的轉(zhuǎn)動(dòng),所以不能真正實(shí)現(xiàn)“坐下”這個(gè)動(dòng)作,只能通過do together制造假象。

      3)選中Flyer這個(gè)類,添加Jump和GoFly兩個(gè)方法。Jump函數(shù)實(shí)現(xiàn)Flyer向MoveDirection方向移動(dòng),并一邊跳躍一邊啄食。GoFly函數(shù)實(shí)現(xiàn)Flyer向Obstacle飛行的動(dòng)作。相關(guān)代碼如下圖,其中通過Flyer的函數(shù)(function)isCollidingWith設(shè)置循環(huán)(while)揮動(dòng)翅膀的條件,關(guān)鍵代碼如圖3:

      4)使用自定義的方法和類本身就有的函數(shù)、方法實(shí)現(xiàn)動(dòng)畫。注意動(dòng)作的順序、時(shí)間,比如相機(jī)的移動(dòng)要跟隨主要對(duì)象。

      4 結(jié)束語

      用Alice編程,讓編程變得更有趣,它避免了一些傳統(tǒng)編程方式下會(huì)產(chǎn)生的語法錯(cuò)誤以及編譯連接等等錯(cuò)誤引起的困擾。運(yùn)用Alice已有的對(duì)象庫和已經(jīng)寫好的步驟編寫一個(gè)動(dòng)畫或者游戲,即快捷方便又能直觀地表現(xiàn)出來。當(dāng)然,如果想要制作更逼真復(fù)雜的動(dòng)畫,也可以自己創(chuàng)建新的步驟。總結(jié)來說,Alice是一個(gè)很好的,能提起人們對(duì)編程興趣的可視化編程軟件。

      參考文獻(xiàn):

      [1] 新浪科技.11月TIOBE編程語言排行榜[EB/OL]. (2008-11-20)[2016-03-29].http://tech.sina.com.cn/s/2008-11-20/1137881896.shtml.

      [2] Dann W P, Stephen Cooper, Randy Pausch. 用Alice學(xué)編程[M]. 付永剛,譯. 北京: 機(jī)械工業(yè)出版社, 2009.

      [3] 徐志紅, 尹祿, 趙生慧, 等. 基于Alice 培養(yǎng)女大學(xué)生計(jì)算機(jī)編程能力的教學(xué)改革探索[J]. 蚌埠學(xué)院學(xué)報(bào), 2014, 10(3): 5.

      [4] 鄭歡, 陳勇. 視覺化程序設(shè)計(jì)軟件的應(yīng)用與發(fā)展[J]. 電腦知識(shí)與技術(shù), 2015,6(17): 92.

      猜你喜歡
      代碼小鳥編程
      我家有只編程貓
      我家有只編程貓
      我家有只編程貓
      我家有只編程貓
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      小鳥
      憤怒的小鳥
      南涧| 巴马| 宝丰县| 祁东县| 和平县| 沈丘县| 泸定县| 油尖旺区| 彰武县| 错那县| 石柱| 石棉县| 东乌| 松溪县| 齐齐哈尔市| 屏东市| 柳州市| 即墨市| 昌图县| 隆尧县| 奉新县| 嘉鱼县| 太谷县| 兴海县| 桐庐县| 和政县| 含山县| 嘉义县| 华亭县| 嘉荫县| 边坝县| 乌拉特前旗| 连山| 曲沃县| 浪卡子县| 通渭县| 绿春县| 称多县| 比如县| 巴楚县| 五大连池市|