?

Alice

2016-06-14 00:28吳佳潔王師艷全媛虹
電腦知識與技術 2016年12期
關鍵詞:代碼小鳥編程

吳佳潔+王師艷+全媛虹

摘要:Alice是一個在3D環境下編寫程序的軟件,使學生在利用信息技術分析和解決問題等方面的能力得到很好的提升,讓學生在學習編程的過程中多一些探索和樂趣,能夠幫助學生在實踐中培養計算機思維方式,為以后程序設計課程的挑戰做好準備。

關鍵詞:Alice;3D環境;思維方式

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)12-0158-02

1 Alice簡介

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

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

Alice是一個免費的工具,它可以讓學生學習到最基本的編程概念,即使學生是第一次接觸面向對象編程,也能很快學會創建動畫電影和簡單的視頻游戲。

2 Alice的基本功能

Alice提供了一個可拖動的圖形界面,它由場景區、對象樹、代碼編輯區、對象列表、方函數方法細節區等六個部分組成。使用Alice編程你不需要自己寫類和對象,它自身就提供了大量的對象庫,只用根據提供的類創建對象即可。同樣的,使用Alice也不需要寫任何代碼,只需要拖動對象的方法、函數塊到代碼區,Alice會根據提示自動生成代碼,如圖1:

2.1 創建一個項目

1)Alice創建一個項目,首先要進行場景的選擇,再次就是進行人物的選擇,最后在procedures區拖動功能塊對人物動作進行程序設計;

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

3)每一個對象(人、動植物等等)都有不同的關節、部位,就像java中一個類的數據成員,可以改變這些部位的位置或者對部位添加運動方法,即用類的函數成員對數據成員進行訪問和修改。

2.2 高級功能

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

2)在initializeEventListners的視圖里可以添加視聽,鍵盤、鼠標的響應就是在這里添加的。

3 Alice動畫具體實現

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

3.1 動畫的基本實現

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

在Bird旁邊添加虛擬相機camera1,用于之后鏡頭的轉換。

2)將添加的對象移動調整到適合的位置、方向和大小,借助場景界面的相機視圖和右邊菜單欄的handle style。將城堡圍城一個區域,這個區域的內部以及周圍就是動畫場景,然后把設置好人物以及其他對象的位置和狀態,并把主相機對準adultPerson。

3)添加Alice提供的方法塊,讓動畫動起來。拖動左邊的Person方法塊MoveToward到代碼區,設置移動目標和距離,讓人物移動到距離桌子一定距離的地方。用同樣的方法實現椅子的拉開,鏡頭的轉換,小鳥的啄食動作,小鳥的飛行動作。

3.2 動畫的高級實現

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

1)為Person類添加行走(Walking)方法:選中Person類,轉到類視圖下,將測試完成的方法塊復制到Walking方法中,將方法的參數修改為P_SCamera,Obstacle,time,Reference。方法的作用:當Person距離參照物Reference距離小于2.0就不斷向目標Obstacle走,同時P_Camera的鏡頭一直對準Person,運動時間由傳入參數time控制。其中關鍵偽代碼如下:

2)用同樣方式給Person添加Sitting方法。方法參數修改為Chair,LR_Distance。因為Alice提供的腿部關節轉動沒有以膝蓋為支撐點的轉動,所以不能真正實現“坐下”這個動作,只能通過do together制造假象。

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

4)使用自定義的方法和類本身就有的函數、方法實現動畫。注意動作的順序、時間,比如相機的移動要跟隨主要對象。

4 結束語

用Alice編程,讓編程變得更有趣,它避免了一些傳統編程方式下會產生的語法錯誤以及編譯連接等等錯誤引起的困擾。運用Alice已有的對象庫和已經寫好的步驟編寫一個動畫或者游戲,即快捷方便又能直觀地表現出來。當然,如果想要制作更逼真復雜的動畫,也可以自己創建新的步驟??偨Y來說,Alice是一個很好的,能提起人們對編程興趣的可視化編程軟件。

參考文獻:

[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學編程[M]. 付永剛,譯. 北京: 機械工業出版社, 2009.

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

[4] 鄭歡, 陳勇. 視覺化程序設計軟件的應用與發展[J]. 電腦知識與技術, 2015,6(17): 92.

猜你喜歡
代碼小鳥編程
編程,是一種態度
編程小能手
紡織機上誕生的編程
創世代碼
創世代碼
創世代碼
創世代碼
小鳥
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合