【小倫出品】Tom & Jerry 貓抓老鼠 (VB小遊戲-1)
Tom & Jerry 貓抓老鼠
這是我大一的時候寫過的程式,記得當時分數是 100%。多年以後,重寫此程式,從鍵盤控制,變成滑鼠點擊。證明我的程式能力有在進步。
- 界面介紹
圖面一開始便有一隻老鼠叫 Jerry, 一隻貓咪叫 Tom,當然還有一隻狗(完全抄襲著名動畫TOM&JERRY啊~)。
- 玩法介紹
每次遊戲30秒,看玩家能吃到多少的起司,碰到貓和狗都會提前結束遊戲,必須用滑鼠點擊來控制老鼠,3 秒後貓咪出來捕捉老鼠,5 秒後狗也會出來打貓,貓鼠狗的大亂鬥。
順帶一提,老鼠因為吃了起司會越跑越慢,要小心。
- 程式介紹
1. 判定碰撞發生。
正常來說,會把照片放入 Picturebox 裡面,且都是用 New Point 控制角色的移動。
而程式會以 Picturebox 的左上角為點位。( X, Y)
建議,計算角色中心與坐標的差別數字,在從圓心算出一個圓線,以此為碰撞臨界點。
本次程式使用正方形為準,因此玩起來會不太準確,但已經不錯了。
2. 移動角色。
一開始時,找出兩點的 X, Y 差距,然後再使用 Timer,不斷減少兩邊差距,直到兩點吻合。
但這看起來怪,因為角色可能會把 X 走完,然後走 Y。變成開始走斜線,後尾走直線。但相對寫法最簡單。
因此稍微改良一下,走法看起來比較正常。
假設,初始坐標:( x1, y1 ) -----> 目標坐標 ( x2, y2 )
首先,X = x1 - x2, Y = y1 - y1
需要移動的總數 S = X + Y
每次給予的移動量 T = 10(假設)
(下一步往 X 方向的距離) sX = ( X / S ) * T
(下一步往 Y 方向的距離) sY = ( Y / S ) * T
例:若 x1 = x2 , X = 0, sX = 0,則只會走 Y 軸,反之。
a. 此算法不怕正負值, x1 , x2 排前後無所謂。
b. T 值越大,每次走越遠,且 T = sX + sY。
3. 角色的走位。
每個角色賦予一個 Timer。每次移動前獲得自己坐標,及目標坐標。計算下次移動的 sX & sY 。
4.更改移動定值。
更改移動定值,或更改 Timer 的 Interval。可使角色步伐變快。
例如,老鼠跑最快,貓咪第二,狗最慢。
其中,老鼠吃到起司後,越跑越慢;貓咪越來越生氣,所以越跑越快。
這些都是可以自行變化的。
- 結尾
VB.net 對於刷新畫面的頻率真的不太行。像 Timer 的 Interval 最低差不多到 10 已經極限了。
而且,移動時看起來也不是很順。所以,就將就一點好了。
- 下載
---檔案過大可能會被誤判為病毒,此檔案保證無毒,請儘管放心---
查看原文 >>