2.3 可以移動的方塊
2.31 物理模型和面向對象
運行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
2.311 這個模型很簡單: 物體的屬性:速度(包含 x 分量和 y 分量,這里設置為一個0-5的隨機數) 物體的方法:運動 環(huán)境屬性:運動阻尼 f, 和窗口邊緣碰撞彈性系數 k, 重力加速度 g
2.312 注意 obj.move 那個方法(函數)的寫法
2.32 讓方塊動起來
運行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
代碼開始變難了啊,呵呵。請仔細閱讀注釋。
2.321 說到底只不過是個物理過程的算法表達而已。其中移動的實現和前面 2.22 節(jié)的拖動是類似的。
2.322 注意感覺這里代碼中 this 的使用。我在 Obj.move 中使用 this 的時候,this指的就是 Obj
2.323 注意我把 Obj 放在了函數外面。這時候它就是一個全局變量。這是為了后面使用 setInterval 而準備的。很多菜鳥在用定時器的時候常常發(fā)現“找不到對象”的錯誤,請注意一下變量的定義域問題。
2.324 菜鳥注意學習內置對象 Math 的方法
2.33 讓方塊停下來
運行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
在方塊上按下鼠標,它會停下來,彈起鼠標,它就繼續(xù)跑了,呵呵。
2.331 沒人注意到 2.211 綁定事件 - 回字的四種寫法只舉出了三種綁定事件的方法嗎?呵呵,這里是第四種: obj.onmousedown=function(){ this.stop(); }
2.332 我把 setInterval 改成了 setTimeout, 并且將定時器的句柄保存在了 obj 的屬性里。這種使用定時器的做法是值得菜鳥借鑒的。
2.4 大結局 - 可以拋出的方塊
運行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
用鼠標按住方塊,然后移動鼠標,同時松開鼠標,看看效果吧,呵呵
這個例子算結束了,哈哈。不作講解了,各位自己看吧。
經典論壇討論: http://bbs.blueidea.com/thread-2708979-1-2.html
出處:藍色理想
責任編輯:blue
上一頁 網頁制作前臺之javascript [2] 下一頁
◎進入論壇網頁制作、網站綜合版塊參加討論
|