'西門子COMOS軟件開發定製學習4-小遊戲'

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

西門子COMOS軟件開發定製學習4-小遊戲

新建“老鷹捉小雞”選項卡

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

西門子COMOS軟件開發定製學習4-小遊戲

新建“老鷹捉小雞”選項卡

西門子COMOS軟件開發定製學習4-小遊戲

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

西門子COMOS軟件開發定製學習4-小遊戲

新建“老鷹捉小雞”選項卡

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

在選項卡中新建屬性

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

西門子COMOS軟件開發定製學習4-小遊戲

新建“老鷹捉小雞”選項卡

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

在選項卡中新建屬性

西門子COMOS軟件開發定製學習4-小遊戲

依次創建背景圖片參數、分數參數、遊戲說明參數、開始按鈕、公雞按鈕、母雞按鈕、小雞按鈕、獵狗按鈕。

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

西門子COMOS軟件開發定製學習4-小遊戲

新建“老鷹捉小雞”選項卡

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

在選項卡中新建屬性

西門子COMOS軟件開發定製學習4-小遊戲

依次創建背景圖片參數、分數參數、遊戲說明參數、開始按鈕、公雞按鈕、母雞按鈕、小雞按鈕、獵狗按鈕。

西門子COMOS軟件開發定製學習4-小遊戲

參數如下,注意角色的命名規則為A1~4,按得分排序,便於後續調整隨機係數。

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

西門子COMOS軟件開發定製學習4-小遊戲

新建“老鷹捉小雞”選項卡

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

在選項卡中新建屬性

西門子COMOS軟件開發定製學習4-小遊戲

依次創建背景圖片參數、分數參數、遊戲說明參數、開始按鈕、公雞按鈕、母雞按鈕、小雞按鈕、獵狗按鈕。

西門子COMOS軟件開發定製學習4-小遊戲

參數如下,注意角色的命名規則為A1~4,按得分排序,便於後續調整隨機係數。

西門子COMOS軟件開發定製學習4-小遊戲

初始界面佈局

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

西門子COMOS軟件開發定製學習4-小遊戲

新建“老鷹捉小雞”選項卡

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

在選項卡中新建屬性

西門子COMOS軟件開發定製學習4-小遊戲

依次創建背景圖片參數、分數參數、遊戲說明參數、開始按鈕、公雞按鈕、母雞按鈕、小雞按鈕、獵狗按鈕。

西門子COMOS軟件開發定製學習4-小遊戲

參數如下,注意角色的命名規則為A1~4,按得分排序,便於後續調整隨機係數。

西門子COMOS軟件開發定製學習4-小遊戲

初始界面佈局

西門子COMOS軟件開發定製學習4-小遊戲

雙擊“公雞”按鈕,編輯腳本。

此處用到的關鍵語句

  • 角色座標

att.Workset.lib.sui.CtrlProperty (27,Att)=X1 'x1座標

att.Workset.lib.sui.CtrlProperty (28,Att)=y1 'y1座標

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1 ‘x2座標

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2 'y2座標

  • 角色隱藏和顯示

att.Layers="~" '隱藏

att.layers="F" ‘顯示

關於工作區域Layers的詳細用法暫不介紹

  • 隨機數

‘----隨機座標----‘

Randomize‘初始化隨機數發生器,否則隨機數會不變化

x1=rnd(1)*25+3 ‘x1為角色座標,25+3為允許角色出現的最大x位置,3為角色允許出現的最小座標。

‘----隨機座標----‘

‘----隨機隱藏----‘

If rnd (1)<0.15*i Then

‘角色的隱藏係數,得分越高的角色隱藏概率越高,本程序取0.15*i,比如公雞隱藏概率為0.15*4=0.6。

Att.Layers="~" '隱藏

Else

Att.Layers="F" ‘顯示

End If

‘----隨機隱藏----‘

公雞按鈕腳本如下:

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

startTime=owner.spec("StartTime").DisplayValue

Set ScoreAtt=owner.spec("Score")

ScoreAtt.InheritCheckIn

Score=ScoreAtt.Description

Set HistoryScoreAtt=owner.spec("HistoryScore")

HistoryScoreAtt.InheritCheckIn

HistoryScore=HistoryScoreAtt.Description

If startTime<>"" Then

diffVal= DateDiff("s",cdate(startTime),now) '30秒

owner.spec("Note").SetXValue 0,diffVal

If cdbl(diffVal)>30 Then

If cdbl(Score)>cdbl(HistoryScore) Then

HistoryScore=Score

HistoryScoreAtt.Description=HistoryScore

End If

msgbox "遊戲結束!"&vbcrlf&"得分:"&Score&vbcrlf&"歷史最高:"&HistoryScore

owner.spec("StartTime").value=""

ScoreAtt.Description="0"

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

att.Layers="~" '隱藏所有角色

Next

owner.spec("StartGame").InheritCheckIn

owner.spec("StartGame").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

Exit Sub

End If

Else

owner.spec("StartTime").value=now

End If

For i=1 To 4

X1=10

y1=10

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.15*i Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

rnd(1)

Randomize

x1=rnd(1)*25+3 '防止位置超出邊界8.5 29.5

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界6 28

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

att.SaveAll

Next

owner.spec("A1").Layers="F" '獵狗始終可見

Score=ScoreAtt.Description

Select Case right(me.Name,1)

Case 1

Score=cdbl(Score)-5

Case 2

Score=cdbl(Score)+1

Case 3

Score=cdbl(Score)+2

Case 4

Score=cdbl(Score)+4

End Select

ScoreAtt.Description=Score

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

End Sub

‘---------------’

依次將母雞、小雞、獵狗按鈕繼承公雞按鈕腳本。將公雞按鈕參數拖拽至獵狗等角色按鈕目錄屬性中,如下圖所示

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

西門子COMOS軟件開發定製學習4-小遊戲

新建“老鷹捉小雞”選項卡

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

在選項卡中新建屬性

西門子COMOS軟件開發定製學習4-小遊戲

依次創建背景圖片參數、分數參數、遊戲說明參數、開始按鈕、公雞按鈕、母雞按鈕、小雞按鈕、獵狗按鈕。

西門子COMOS軟件開發定製學習4-小遊戲

參數如下,注意角色的命名規則為A1~4,按得分排序,便於後續調整隨機係數。

西門子COMOS軟件開發定製學習4-小遊戲

初始界面佈局

西門子COMOS軟件開發定製學習4-小遊戲

雙擊“公雞”按鈕,編輯腳本。

此處用到的關鍵語句

  • 角色座標

att.Workset.lib.sui.CtrlProperty (27,Att)=X1 'x1座標

att.Workset.lib.sui.CtrlProperty (28,Att)=y1 'y1座標

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1 ‘x2座標

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2 'y2座標

  • 角色隱藏和顯示

att.Layers="~" '隱藏

att.layers="F" ‘顯示

關於工作區域Layers的詳細用法暫不介紹

  • 隨機數

‘----隨機座標----‘

Randomize‘初始化隨機數發生器,否則隨機數會不變化

x1=rnd(1)*25+3 ‘x1為角色座標,25+3為允許角色出現的最大x位置,3為角色允許出現的最小座標。

‘----隨機座標----‘

‘----隨機隱藏----‘

If rnd (1)<0.15*i Then

‘角色的隱藏係數,得分越高的角色隱藏概率越高,本程序取0.15*i,比如公雞隱藏概率為0.15*4=0.6。

Att.Layers="~" '隱藏

Else

Att.Layers="F" ‘顯示

End If

‘----隨機隱藏----‘

公雞按鈕腳本如下:

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

startTime=owner.spec("StartTime").DisplayValue

Set ScoreAtt=owner.spec("Score")

ScoreAtt.InheritCheckIn

Score=ScoreAtt.Description

Set HistoryScoreAtt=owner.spec("HistoryScore")

HistoryScoreAtt.InheritCheckIn

HistoryScore=HistoryScoreAtt.Description

If startTime<>"" Then

diffVal= DateDiff("s",cdate(startTime),now) '30秒

owner.spec("Note").SetXValue 0,diffVal

If cdbl(diffVal)>30 Then

If cdbl(Score)>cdbl(HistoryScore) Then

HistoryScore=Score

HistoryScoreAtt.Description=HistoryScore

End If

msgbox "遊戲結束!"&vbcrlf&"得分:"&Score&vbcrlf&"歷史最高:"&HistoryScore

owner.spec("StartTime").value=""

ScoreAtt.Description="0"

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

att.Layers="~" '隱藏所有角色

Next

owner.spec("StartGame").InheritCheckIn

owner.spec("StartGame").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

Exit Sub

End If

Else

owner.spec("StartTime").value=now

End If

For i=1 To 4

X1=10

y1=10

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.15*i Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

rnd(1)

Randomize

x1=rnd(1)*25+3 '防止位置超出邊界8.5 29.5

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界6 28

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

att.SaveAll

Next

owner.spec("A1").Layers="F" '獵狗始終可見

Score=ScoreAtt.Description

Select Case right(me.Name,1)

Case 1

Score=cdbl(Score)-5

Case 2

Score=cdbl(Score)+1

Case 3

Score=cdbl(Score)+2

Case 4

Score=cdbl(Score)+4

End Select

ScoreAtt.Description=Score

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

End Sub

‘---------------’

依次將母雞、小雞、獵狗按鈕繼承公雞按鈕腳本。將公雞按鈕參數拖拽至獵狗等角色按鈕目錄屬性中,如下圖所示

西門子COMOS軟件開發定製學習4-小遊戲

點擊右下角應用按鈕,在彈出的提醒消息中選擇“否”

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

西門子COMOS軟件開發定製學習4-小遊戲

新建“老鷹捉小雞”選項卡

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

在選項卡中新建屬性

西門子COMOS軟件開發定製學習4-小遊戲

依次創建背景圖片參數、分數參數、遊戲說明參數、開始按鈕、公雞按鈕、母雞按鈕、小雞按鈕、獵狗按鈕。

西門子COMOS軟件開發定製學習4-小遊戲

參數如下,注意角色的命名規則為A1~4,按得分排序,便於後續調整隨機係數。

西門子COMOS軟件開發定製學習4-小遊戲

初始界面佈局

西門子COMOS軟件開發定製學習4-小遊戲

雙擊“公雞”按鈕,編輯腳本。

此處用到的關鍵語句

  • 角色座標

att.Workset.lib.sui.CtrlProperty (27,Att)=X1 'x1座標

att.Workset.lib.sui.CtrlProperty (28,Att)=y1 'y1座標

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1 ‘x2座標

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2 'y2座標

  • 角色隱藏和顯示

att.Layers="~" '隱藏

att.layers="F" ‘顯示

關於工作區域Layers的詳細用法暫不介紹

  • 隨機數

‘----隨機座標----‘

Randomize‘初始化隨機數發生器,否則隨機數會不變化

x1=rnd(1)*25+3 ‘x1為角色座標,25+3為允許角色出現的最大x位置,3為角色允許出現的最小座標。

‘----隨機座標----‘

‘----隨機隱藏----‘

If rnd (1)<0.15*i Then

‘角色的隱藏係數,得分越高的角色隱藏概率越高,本程序取0.15*i,比如公雞隱藏概率為0.15*4=0.6。

Att.Layers="~" '隱藏

Else

Att.Layers="F" ‘顯示

End If

‘----隨機隱藏----‘

公雞按鈕腳本如下:

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

startTime=owner.spec("StartTime").DisplayValue

Set ScoreAtt=owner.spec("Score")

ScoreAtt.InheritCheckIn

Score=ScoreAtt.Description

Set HistoryScoreAtt=owner.spec("HistoryScore")

HistoryScoreAtt.InheritCheckIn

HistoryScore=HistoryScoreAtt.Description

If startTime<>"" Then

diffVal= DateDiff("s",cdate(startTime),now) '30秒

owner.spec("Note").SetXValue 0,diffVal

If cdbl(diffVal)>30 Then

If cdbl(Score)>cdbl(HistoryScore) Then

HistoryScore=Score

HistoryScoreAtt.Description=HistoryScore

End If

msgbox "遊戲結束!"&vbcrlf&"得分:"&Score&vbcrlf&"歷史最高:"&HistoryScore

owner.spec("StartTime").value=""

ScoreAtt.Description="0"

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

att.Layers="~" '隱藏所有角色

Next

owner.spec("StartGame").InheritCheckIn

owner.spec("StartGame").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

Exit Sub

End If

Else

owner.spec("StartTime").value=now

End If

For i=1 To 4

X1=10

y1=10

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.15*i Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

rnd(1)

Randomize

x1=rnd(1)*25+3 '防止位置超出邊界8.5 29.5

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界6 28

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

att.SaveAll

Next

owner.spec("A1").Layers="F" '獵狗始終可見

Score=ScoreAtt.Description

Select Case right(me.Name,1)

Case 1

Score=cdbl(Score)-5

Case 2

Score=cdbl(Score)+1

Case 3

Score=cdbl(Score)+2

Case 4

Score=cdbl(Score)+4

End Select

ScoreAtt.Description=Score

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

End Sub

‘---------------’

依次將母雞、小雞、獵狗按鈕繼承公雞按鈕腳本。將公雞按鈕參數拖拽至獵狗等角色按鈕目錄屬性中,如下圖所示

西門子COMOS軟件開發定製學習4-小遊戲

點擊右下角應用按鈕,在彈出的提醒消息中選擇“否”

西門子COMOS軟件開發定製學習4-小遊戲

查看母雞等角色按鈕的腳本,將看到其繼承了公雞中的腳本,呈斜體表示。如公雞按鈕腳本修改,此處自動修改。

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

西門子COMOS軟件開發定製學習4-小遊戲

新建“老鷹捉小雞”選項卡

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

在選項卡中新建屬性

西門子COMOS軟件開發定製學習4-小遊戲

依次創建背景圖片參數、分數參數、遊戲說明參數、開始按鈕、公雞按鈕、母雞按鈕、小雞按鈕、獵狗按鈕。

西門子COMOS軟件開發定製學習4-小遊戲

參數如下,注意角色的命名規則為A1~4,按得分排序,便於後續調整隨機係數。

西門子COMOS軟件開發定製學習4-小遊戲

初始界面佈局

西門子COMOS軟件開發定製學習4-小遊戲

雙擊“公雞”按鈕,編輯腳本。

此處用到的關鍵語句

  • 角色座標

att.Workset.lib.sui.CtrlProperty (27,Att)=X1 'x1座標

att.Workset.lib.sui.CtrlProperty (28,Att)=y1 'y1座標

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1 ‘x2座標

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2 'y2座標

  • 角色隱藏和顯示

att.Layers="~" '隱藏

att.layers="F" ‘顯示

關於工作區域Layers的詳細用法暫不介紹

  • 隨機數

‘----隨機座標----‘

Randomize‘初始化隨機數發生器,否則隨機數會不變化

x1=rnd(1)*25+3 ‘x1為角色座標,25+3為允許角色出現的最大x位置,3為角色允許出現的最小座標。

‘----隨機座標----‘

‘----隨機隱藏----‘

If rnd (1)<0.15*i Then

‘角色的隱藏係數,得分越高的角色隱藏概率越高,本程序取0.15*i,比如公雞隱藏概率為0.15*4=0.6。

Att.Layers="~" '隱藏

Else

Att.Layers="F" ‘顯示

End If

‘----隨機隱藏----‘

公雞按鈕腳本如下:

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

startTime=owner.spec("StartTime").DisplayValue

Set ScoreAtt=owner.spec("Score")

ScoreAtt.InheritCheckIn

Score=ScoreAtt.Description

Set HistoryScoreAtt=owner.spec("HistoryScore")

HistoryScoreAtt.InheritCheckIn

HistoryScore=HistoryScoreAtt.Description

If startTime<>"" Then

diffVal= DateDiff("s",cdate(startTime),now) '30秒

owner.spec("Note").SetXValue 0,diffVal

If cdbl(diffVal)>30 Then

If cdbl(Score)>cdbl(HistoryScore) Then

HistoryScore=Score

HistoryScoreAtt.Description=HistoryScore

End If

msgbox "遊戲結束!"&vbcrlf&"得分:"&Score&vbcrlf&"歷史最高:"&HistoryScore

owner.spec("StartTime").value=""

ScoreAtt.Description="0"

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

att.Layers="~" '隱藏所有角色

Next

owner.spec("StartGame").InheritCheckIn

owner.spec("StartGame").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

Exit Sub

End If

Else

owner.spec("StartTime").value=now

End If

For i=1 To 4

X1=10

y1=10

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.15*i Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

rnd(1)

Randomize

x1=rnd(1)*25+3 '防止位置超出邊界8.5 29.5

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界6 28

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

att.SaveAll

Next

owner.spec("A1").Layers="F" '獵狗始終可見

Score=ScoreAtt.Description

Select Case right(me.Name,1)

Case 1

Score=cdbl(Score)-5

Case 2

Score=cdbl(Score)+1

Case 3

Score=cdbl(Score)+2

Case 4

Score=cdbl(Score)+4

End Select

ScoreAtt.Description=Score

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

End Sub

‘---------------’

依次將母雞、小雞、獵狗按鈕繼承公雞按鈕腳本。將公雞按鈕參數拖拽至獵狗等角色按鈕目錄屬性中,如下圖所示

西門子COMOS軟件開發定製學習4-小遊戲

點擊右下角應用按鈕,在彈出的提醒消息中選擇“否”

西門子COMOS軟件開發定製學習4-小遊戲

查看母雞等角色按鈕的腳本,將看到其繼承了公雞中的腳本,呈斜體表示。如公雞按鈕腳本修改,此處自動修改。

西門子COMOS軟件開發定製學習4-小遊戲

定製“開始遊戲”按鈕腳本

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

me.InheritCheckIn

me.Layers="~"

'owner.spec("A4").ScriptEngine.scriptObject.onclick

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.1*(i+2) Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

x1=rnd(1)*25+2 '防止位置超出邊界

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=3+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+1.5

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

Next

owner.spec("A1").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner '刷新

End Sub

‘---------------’

設置基礎對象對象配置

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

西門子COMOS軟件開發定製學習4-小遊戲

新建“老鷹捉小雞”選項卡

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

在選項卡中新建屬性

西門子COMOS軟件開發定製學習4-小遊戲

依次創建背景圖片參數、分數參數、遊戲說明參數、開始按鈕、公雞按鈕、母雞按鈕、小雞按鈕、獵狗按鈕。

西門子COMOS軟件開發定製學習4-小遊戲

參數如下,注意角色的命名規則為A1~4,按得分排序,便於後續調整隨機係數。

西門子COMOS軟件開發定製學習4-小遊戲

初始界面佈局

西門子COMOS軟件開發定製學習4-小遊戲

雙擊“公雞”按鈕,編輯腳本。

此處用到的關鍵語句

  • 角色座標

att.Workset.lib.sui.CtrlProperty (27,Att)=X1 'x1座標

att.Workset.lib.sui.CtrlProperty (28,Att)=y1 'y1座標

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1 ‘x2座標

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2 'y2座標

  • 角色隱藏和顯示

att.Layers="~" '隱藏

att.layers="F" ‘顯示

關於工作區域Layers的詳細用法暫不介紹

  • 隨機數

‘----隨機座標----‘

Randomize‘初始化隨機數發生器,否則隨機數會不變化

x1=rnd(1)*25+3 ‘x1為角色座標,25+3為允許角色出現的最大x位置,3為角色允許出現的最小座標。

‘----隨機座標----‘

‘----隨機隱藏----‘

If rnd (1)<0.15*i Then

‘角色的隱藏係數,得分越高的角色隱藏概率越高,本程序取0.15*i,比如公雞隱藏概率為0.15*4=0.6。

Att.Layers="~" '隱藏

Else

Att.Layers="F" ‘顯示

End If

‘----隨機隱藏----‘

公雞按鈕腳本如下:

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

startTime=owner.spec("StartTime").DisplayValue

Set ScoreAtt=owner.spec("Score")

ScoreAtt.InheritCheckIn

Score=ScoreAtt.Description

Set HistoryScoreAtt=owner.spec("HistoryScore")

HistoryScoreAtt.InheritCheckIn

HistoryScore=HistoryScoreAtt.Description

If startTime<>"" Then

diffVal= DateDiff("s",cdate(startTime),now) '30秒

owner.spec("Note").SetXValue 0,diffVal

If cdbl(diffVal)>30 Then

If cdbl(Score)>cdbl(HistoryScore) Then

HistoryScore=Score

HistoryScoreAtt.Description=HistoryScore

End If

msgbox "遊戲結束!"&vbcrlf&"得分:"&Score&vbcrlf&"歷史最高:"&HistoryScore

owner.spec("StartTime").value=""

ScoreAtt.Description="0"

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

att.Layers="~" '隱藏所有角色

Next

owner.spec("StartGame").InheritCheckIn

owner.spec("StartGame").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

Exit Sub

End If

Else

owner.spec("StartTime").value=now

End If

For i=1 To 4

X1=10

y1=10

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.15*i Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

rnd(1)

Randomize

x1=rnd(1)*25+3 '防止位置超出邊界8.5 29.5

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界6 28

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

att.SaveAll

Next

owner.spec("A1").Layers="F" '獵狗始終可見

Score=ScoreAtt.Description

Select Case right(me.Name,1)

Case 1

Score=cdbl(Score)-5

Case 2

Score=cdbl(Score)+1

Case 3

Score=cdbl(Score)+2

Case 4

Score=cdbl(Score)+4

End Select

ScoreAtt.Description=Score

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

End Sub

‘---------------’

依次將母雞、小雞、獵狗按鈕繼承公雞按鈕腳本。將公雞按鈕參數拖拽至獵狗等角色按鈕目錄屬性中,如下圖所示

西門子COMOS軟件開發定製學習4-小遊戲

點擊右下角應用按鈕,在彈出的提醒消息中選擇“否”

西門子COMOS軟件開發定製學習4-小遊戲

查看母雞等角色按鈕的腳本,將看到其繼承了公雞中的腳本,呈斜體表示。如公雞按鈕腳本修改,此處自動修改。

西門子COMOS軟件開發定製學習4-小遊戲

定製“開始遊戲”按鈕腳本

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

me.InheritCheckIn

me.Layers="~"

'owner.spec("A4").ScriptEngine.scriptObject.onclick

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.1*(i+2) Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

x1=rnd(1)*25+2 '防止位置超出邊界

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=3+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+1.5

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

Next

owner.spec("A1").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner '刷新

End Sub

‘---------------’

設置基礎對象對象配置

西門子COMOS軟件開發定製學習4-小遊戲

在單元選項卡,新建對象

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

西門子COMOS軟件開發定製學習4-小遊戲

新建“老鷹捉小雞”選項卡

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

在選項卡中新建屬性

西門子COMOS軟件開發定製學習4-小遊戲

依次創建背景圖片參數、分數參數、遊戲說明參數、開始按鈕、公雞按鈕、母雞按鈕、小雞按鈕、獵狗按鈕。

西門子COMOS軟件開發定製學習4-小遊戲

參數如下,注意角色的命名規則為A1~4,按得分排序,便於後續調整隨機係數。

西門子COMOS軟件開發定製學習4-小遊戲

初始界面佈局

西門子COMOS軟件開發定製學習4-小遊戲

雙擊“公雞”按鈕,編輯腳本。

此處用到的關鍵語句

  • 角色座標

att.Workset.lib.sui.CtrlProperty (27,Att)=X1 'x1座標

att.Workset.lib.sui.CtrlProperty (28,Att)=y1 'y1座標

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1 ‘x2座標

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2 'y2座標

  • 角色隱藏和顯示

att.Layers="~" '隱藏

att.layers="F" ‘顯示

關於工作區域Layers的詳細用法暫不介紹

  • 隨機數

‘----隨機座標----‘

Randomize‘初始化隨機數發生器,否則隨機數會不變化

x1=rnd(1)*25+3 ‘x1為角色座標,25+3為允許角色出現的最大x位置,3為角色允許出現的最小座標。

‘----隨機座標----‘

‘----隨機隱藏----‘

If rnd (1)<0.15*i Then

‘角色的隱藏係數,得分越高的角色隱藏概率越高,本程序取0.15*i,比如公雞隱藏概率為0.15*4=0.6。

Att.Layers="~" '隱藏

Else

Att.Layers="F" ‘顯示

End If

‘----隨機隱藏----‘

公雞按鈕腳本如下:

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

startTime=owner.spec("StartTime").DisplayValue

Set ScoreAtt=owner.spec("Score")

ScoreAtt.InheritCheckIn

Score=ScoreAtt.Description

Set HistoryScoreAtt=owner.spec("HistoryScore")

HistoryScoreAtt.InheritCheckIn

HistoryScore=HistoryScoreAtt.Description

If startTime<>"" Then

diffVal= DateDiff("s",cdate(startTime),now) '30秒

owner.spec("Note").SetXValue 0,diffVal

If cdbl(diffVal)>30 Then

If cdbl(Score)>cdbl(HistoryScore) Then

HistoryScore=Score

HistoryScoreAtt.Description=HistoryScore

End If

msgbox "遊戲結束!"&vbcrlf&"得分:"&Score&vbcrlf&"歷史最高:"&HistoryScore

owner.spec("StartTime").value=""

ScoreAtt.Description="0"

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

att.Layers="~" '隱藏所有角色

Next

owner.spec("StartGame").InheritCheckIn

owner.spec("StartGame").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

Exit Sub

End If

Else

owner.spec("StartTime").value=now

End If

For i=1 To 4

X1=10

y1=10

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.15*i Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

rnd(1)

Randomize

x1=rnd(1)*25+3 '防止位置超出邊界8.5 29.5

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界6 28

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

att.SaveAll

Next

owner.spec("A1").Layers="F" '獵狗始終可見

Score=ScoreAtt.Description

Select Case right(me.Name,1)

Case 1

Score=cdbl(Score)-5

Case 2

Score=cdbl(Score)+1

Case 3

Score=cdbl(Score)+2

Case 4

Score=cdbl(Score)+4

End Select

ScoreAtt.Description=Score

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

End Sub

‘---------------’

依次將母雞、小雞、獵狗按鈕繼承公雞按鈕腳本。將公雞按鈕參數拖拽至獵狗等角色按鈕目錄屬性中,如下圖所示

西門子COMOS軟件開發定製學習4-小遊戲

點擊右下角應用按鈕,在彈出的提醒消息中選擇“否”

西門子COMOS軟件開發定製學習4-小遊戲

查看母雞等角色按鈕的腳本,將看到其繼承了公雞中的腳本,呈斜體表示。如公雞按鈕腳本修改,此處自動修改。

西門子COMOS軟件開發定製學習4-小遊戲

定製“開始遊戲”按鈕腳本

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

me.InheritCheckIn

me.Layers="~"

'owner.spec("A4").ScriptEngine.scriptObject.onclick

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.1*(i+2) Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

x1=rnd(1)*25+2 '防止位置超出邊界

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=3+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+1.5

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

Next

owner.spec("A1").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner '刷新

End Sub

‘---------------’

設置基礎對象對象配置

西門子COMOS軟件開發定製學習4-小遊戲

在單元選項卡,新建對象

西門子COMOS軟件開發定製學習4-小遊戲

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

西門子COMOS軟件開發定製學習4-小遊戲

新建“老鷹捉小雞”選項卡

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

在選項卡中新建屬性

西門子COMOS軟件開發定製學習4-小遊戲

依次創建背景圖片參數、分數參數、遊戲說明參數、開始按鈕、公雞按鈕、母雞按鈕、小雞按鈕、獵狗按鈕。

西門子COMOS軟件開發定製學習4-小遊戲

參數如下,注意角色的命名規則為A1~4,按得分排序,便於後續調整隨機係數。

西門子COMOS軟件開發定製學習4-小遊戲

初始界面佈局

西門子COMOS軟件開發定製學習4-小遊戲

雙擊“公雞”按鈕,編輯腳本。

此處用到的關鍵語句

  • 角色座標

att.Workset.lib.sui.CtrlProperty (27,Att)=X1 'x1座標

att.Workset.lib.sui.CtrlProperty (28,Att)=y1 'y1座標

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1 ‘x2座標

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2 'y2座標

  • 角色隱藏和顯示

att.Layers="~" '隱藏

att.layers="F" ‘顯示

關於工作區域Layers的詳細用法暫不介紹

  • 隨機數

‘----隨機座標----‘

Randomize‘初始化隨機數發生器,否則隨機數會不變化

x1=rnd(1)*25+3 ‘x1為角色座標,25+3為允許角色出現的最大x位置,3為角色允許出現的最小座標。

‘----隨機座標----‘

‘----隨機隱藏----‘

If rnd (1)<0.15*i Then

‘角色的隱藏係數,得分越高的角色隱藏概率越高,本程序取0.15*i,比如公雞隱藏概率為0.15*4=0.6。

Att.Layers="~" '隱藏

Else

Att.Layers="F" ‘顯示

End If

‘----隨機隱藏----‘

公雞按鈕腳本如下:

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

startTime=owner.spec("StartTime").DisplayValue

Set ScoreAtt=owner.spec("Score")

ScoreAtt.InheritCheckIn

Score=ScoreAtt.Description

Set HistoryScoreAtt=owner.spec("HistoryScore")

HistoryScoreAtt.InheritCheckIn

HistoryScore=HistoryScoreAtt.Description

If startTime<>"" Then

diffVal= DateDiff("s",cdate(startTime),now) '30秒

owner.spec("Note").SetXValue 0,diffVal

If cdbl(diffVal)>30 Then

If cdbl(Score)>cdbl(HistoryScore) Then

HistoryScore=Score

HistoryScoreAtt.Description=HistoryScore

End If

msgbox "遊戲結束!"&vbcrlf&"得分:"&Score&vbcrlf&"歷史最高:"&HistoryScore

owner.spec("StartTime").value=""

ScoreAtt.Description="0"

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

att.Layers="~" '隱藏所有角色

Next

owner.spec("StartGame").InheritCheckIn

owner.spec("StartGame").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

Exit Sub

End If

Else

owner.spec("StartTime").value=now

End If

For i=1 To 4

X1=10

y1=10

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.15*i Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

rnd(1)

Randomize

x1=rnd(1)*25+3 '防止位置超出邊界8.5 29.5

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界6 28

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

att.SaveAll

Next

owner.spec("A1").Layers="F" '獵狗始終可見

Score=ScoreAtt.Description

Select Case right(me.Name,1)

Case 1

Score=cdbl(Score)-5

Case 2

Score=cdbl(Score)+1

Case 3

Score=cdbl(Score)+2

Case 4

Score=cdbl(Score)+4

End Select

ScoreAtt.Description=Score

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

End Sub

‘---------------’

依次將母雞、小雞、獵狗按鈕繼承公雞按鈕腳本。將公雞按鈕參數拖拽至獵狗等角色按鈕目錄屬性中,如下圖所示

西門子COMOS軟件開發定製學習4-小遊戲

點擊右下角應用按鈕,在彈出的提醒消息中選擇“否”

西門子COMOS軟件開發定製學習4-小遊戲

查看母雞等角色按鈕的腳本,將看到其繼承了公雞中的腳本,呈斜體表示。如公雞按鈕腳本修改,此處自動修改。

西門子COMOS軟件開發定製學習4-小遊戲

定製“開始遊戲”按鈕腳本

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

me.InheritCheckIn

me.Layers="~"

'owner.spec("A4").ScriptEngine.scriptObject.onclick

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.1*(i+2) Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

x1=rnd(1)*25+2 '防止位置超出邊界

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=3+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+1.5

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

Next

owner.spec("A1").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner '刷新

End Sub

‘---------------’

設置基礎對象對象配置

西門子COMOS軟件開發定製學習4-小遊戲

在單元選項卡,新建對象

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲


最後進行遊戲測試

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

西門子COMOS軟件開發定製學習4-小遊戲

新建“老鷹捉小雞”選項卡

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

在選項卡中新建屬性

西門子COMOS軟件開發定製學習4-小遊戲

依次創建背景圖片參數、分數參數、遊戲說明參數、開始按鈕、公雞按鈕、母雞按鈕、小雞按鈕、獵狗按鈕。

西門子COMOS軟件開發定製學習4-小遊戲

參數如下,注意角色的命名規則為A1~4,按得分排序,便於後續調整隨機係數。

西門子COMOS軟件開發定製學習4-小遊戲

初始界面佈局

西門子COMOS軟件開發定製學習4-小遊戲

雙擊“公雞”按鈕,編輯腳本。

此處用到的關鍵語句

  • 角色座標

att.Workset.lib.sui.CtrlProperty (27,Att)=X1 'x1座標

att.Workset.lib.sui.CtrlProperty (28,Att)=y1 'y1座標

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1 ‘x2座標

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2 'y2座標

  • 角色隱藏和顯示

att.Layers="~" '隱藏

att.layers="F" ‘顯示

關於工作區域Layers的詳細用法暫不介紹

  • 隨機數

‘----隨機座標----‘

Randomize‘初始化隨機數發生器,否則隨機數會不變化

x1=rnd(1)*25+3 ‘x1為角色座標,25+3為允許角色出現的最大x位置,3為角色允許出現的最小座標。

‘----隨機座標----‘

‘----隨機隱藏----‘

If rnd (1)<0.15*i Then

‘角色的隱藏係數,得分越高的角色隱藏概率越高,本程序取0.15*i,比如公雞隱藏概率為0.15*4=0.6。

Att.Layers="~" '隱藏

Else

Att.Layers="F" ‘顯示

End If

‘----隨機隱藏----‘

公雞按鈕腳本如下:

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

startTime=owner.spec("StartTime").DisplayValue

Set ScoreAtt=owner.spec("Score")

ScoreAtt.InheritCheckIn

Score=ScoreAtt.Description

Set HistoryScoreAtt=owner.spec("HistoryScore")

HistoryScoreAtt.InheritCheckIn

HistoryScore=HistoryScoreAtt.Description

If startTime<>"" Then

diffVal= DateDiff("s",cdate(startTime),now) '30秒

owner.spec("Note").SetXValue 0,diffVal

If cdbl(diffVal)>30 Then

If cdbl(Score)>cdbl(HistoryScore) Then

HistoryScore=Score

HistoryScoreAtt.Description=HistoryScore

End If

msgbox "遊戲結束!"&vbcrlf&"得分:"&Score&vbcrlf&"歷史最高:"&HistoryScore

owner.spec("StartTime").value=""

ScoreAtt.Description="0"

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

att.Layers="~" '隱藏所有角色

Next

owner.spec("StartGame").InheritCheckIn

owner.spec("StartGame").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

Exit Sub

End If

Else

owner.spec("StartTime").value=now

End If

For i=1 To 4

X1=10

y1=10

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.15*i Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

rnd(1)

Randomize

x1=rnd(1)*25+3 '防止位置超出邊界8.5 29.5

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界6 28

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

att.SaveAll

Next

owner.spec("A1").Layers="F" '獵狗始終可見

Score=ScoreAtt.Description

Select Case right(me.Name,1)

Case 1

Score=cdbl(Score)-5

Case 2

Score=cdbl(Score)+1

Case 3

Score=cdbl(Score)+2

Case 4

Score=cdbl(Score)+4

End Select

ScoreAtt.Description=Score

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

End Sub

‘---------------’

依次將母雞、小雞、獵狗按鈕繼承公雞按鈕腳本。將公雞按鈕參數拖拽至獵狗等角色按鈕目錄屬性中,如下圖所示

西門子COMOS軟件開發定製學習4-小遊戲

點擊右下角應用按鈕,在彈出的提醒消息中選擇“否”

西門子COMOS軟件開發定製學習4-小遊戲

查看母雞等角色按鈕的腳本,將看到其繼承了公雞中的腳本,呈斜體表示。如公雞按鈕腳本修改,此處自動修改。

西門子COMOS軟件開發定製學習4-小遊戲

定製“開始遊戲”按鈕腳本

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

me.InheritCheckIn

me.Layers="~"

'owner.spec("A4").ScriptEngine.scriptObject.onclick

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.1*(i+2) Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

x1=rnd(1)*25+2 '防止位置超出邊界

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=3+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+1.5

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

Next

owner.spec("A1").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner '刷新

End Sub

‘---------------’

設置基礎對象對象配置

西門子COMOS軟件開發定製學習4-小遊戲

在單元選項卡,新建對象

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲


最後進行遊戲測試

西門子COMOS軟件開發定製學習4-小遊戲

"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

西門子COMOS軟件開發定製學習4-小遊戲

新建“老鷹捉小雞”選項卡

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

在選項卡中新建屬性

西門子COMOS軟件開發定製學習4-小遊戲

依次創建背景圖片參數、分數參數、遊戲說明參數、開始按鈕、公雞按鈕、母雞按鈕、小雞按鈕、獵狗按鈕。

西門子COMOS軟件開發定製學習4-小遊戲

參數如下,注意角色的命名規則為A1~4,按得分排序,便於後續調整隨機係數。

西門子COMOS軟件開發定製學習4-小遊戲

初始界面佈局

西門子COMOS軟件開發定製學習4-小遊戲

雙擊“公雞”按鈕,編輯腳本。

此處用到的關鍵語句

  • 角色座標

att.Workset.lib.sui.CtrlProperty (27,Att)=X1 'x1座標

att.Workset.lib.sui.CtrlProperty (28,Att)=y1 'y1座標

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1 ‘x2座標

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2 'y2座標

  • 角色隱藏和顯示

att.Layers="~" '隱藏

att.layers="F" ‘顯示

關於工作區域Layers的詳細用法暫不介紹

  • 隨機數

‘----隨機座標----‘

Randomize‘初始化隨機數發生器,否則隨機數會不變化

x1=rnd(1)*25+3 ‘x1為角色座標,25+3為允許角色出現的最大x位置,3為角色允許出現的最小座標。

‘----隨機座標----‘

‘----隨機隱藏----‘

If rnd (1)<0.15*i Then

‘角色的隱藏係數,得分越高的角色隱藏概率越高,本程序取0.15*i,比如公雞隱藏概率為0.15*4=0.6。

Att.Layers="~" '隱藏

Else

Att.Layers="F" ‘顯示

End If

‘----隨機隱藏----‘

公雞按鈕腳本如下:

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

startTime=owner.spec("StartTime").DisplayValue

Set ScoreAtt=owner.spec("Score")

ScoreAtt.InheritCheckIn

Score=ScoreAtt.Description

Set HistoryScoreAtt=owner.spec("HistoryScore")

HistoryScoreAtt.InheritCheckIn

HistoryScore=HistoryScoreAtt.Description

If startTime<>"" Then

diffVal= DateDiff("s",cdate(startTime),now) '30秒

owner.spec("Note").SetXValue 0,diffVal

If cdbl(diffVal)>30 Then

If cdbl(Score)>cdbl(HistoryScore) Then

HistoryScore=Score

HistoryScoreAtt.Description=HistoryScore

End If

msgbox "遊戲結束!"&vbcrlf&"得分:"&Score&vbcrlf&"歷史最高:"&HistoryScore

owner.spec("StartTime").value=""

ScoreAtt.Description="0"

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

att.Layers="~" '隱藏所有角色

Next

owner.spec("StartGame").InheritCheckIn

owner.spec("StartGame").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

Exit Sub

End If

Else

owner.spec("StartTime").value=now

End If

For i=1 To 4

X1=10

y1=10

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.15*i Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

rnd(1)

Randomize

x1=rnd(1)*25+3 '防止位置超出邊界8.5 29.5

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界6 28

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

att.SaveAll

Next

owner.spec("A1").Layers="F" '獵狗始終可見

Score=ScoreAtt.Description

Select Case right(me.Name,1)

Case 1

Score=cdbl(Score)-5

Case 2

Score=cdbl(Score)+1

Case 3

Score=cdbl(Score)+2

Case 4

Score=cdbl(Score)+4

End Select

ScoreAtt.Description=Score

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

End Sub

‘---------------’

依次將母雞、小雞、獵狗按鈕繼承公雞按鈕腳本。將公雞按鈕參數拖拽至獵狗等角色按鈕目錄屬性中,如下圖所示

西門子COMOS軟件開發定製學習4-小遊戲

點擊右下角應用按鈕,在彈出的提醒消息中選擇“否”

西門子COMOS軟件開發定製學習4-小遊戲

查看母雞等角色按鈕的腳本,將看到其繼承了公雞中的腳本,呈斜體表示。如公雞按鈕腳本修改,此處自動修改。

西門子COMOS軟件開發定製學習4-小遊戲

定製“開始遊戲”按鈕腳本

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

me.InheritCheckIn

me.Layers="~"

'owner.spec("A4").ScriptEngine.scriptObject.onclick

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.1*(i+2) Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

x1=rnd(1)*25+2 '防止位置超出邊界

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=3+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+1.5

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

Next

owner.spec("A1").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner '刷新

End Sub

‘---------------’

設置基礎對象對象配置

西門子COMOS軟件開發定製學習4-小遊戲

在單元選項卡,新建對象

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲


最後進行遊戲測試

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

運行無異常!


"

此篇並非真正意義上的遊戲,只是希望借遊戲的名義,讓大家對COMOS按鈕的使用有一個深刻的認識,寓教於樂,寓學於樂!

今天遊戲的名稱是老鷹捉小雞。

首先隆重介紹下游戲主角:公雞,母雞,小雞和獵狗。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲說明:

在30秒內,雞舍隨機出現公雞、母雞、小雞和獵狗,點擊相應角色,獲得一定分數,挑戰30秒內的最高分。

分數表如下:

西門子COMOS軟件開發定製學習4-小遊戲

可以看到角色不同相應的分數不同,為了獲取高分,玩家需要在隨機出現的角色中選擇分數最多的,從而耽誤時間,造成結果的不確定性。

為了進一步體現遊戲不確定性和可玩性,按分數比例,設置了角色出現的概率,分數越高,出現次數越少,甚至界面中會出現只有獵狗的情況,也就是必須扣分才能繼續。

程序流程圖:

西門子COMOS軟件開發定製學習4-小遊戲

需要說明是,因為我們基於COMOS平臺的VBS開發,鑑於VBS沒有計時器或時間循環函數,因而我們只能通過點擊按鈕事件判斷當前點擊事件距離開始的時間間隔,大於30秒則遊戲結束。

同樣的,VBS沒有音頻播放控件可以使用,但BGM不僅起到畫龍點睛的效果,有時候甚至會成為左右一部作品成敗的關鍵!所以開始遊戲前推薦打開QQ音樂搜索“老鷹捉小雞”,點擊播放。

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

遊戲思路介紹完了,開始我們的程序開發。首先我們在SO1項目中新建遊戲工作層。

西門子COMOS軟件開發定製學習4-小遊戲

創建遊戲界面對象

西門子COMOS軟件開發定製學習4-小遊戲

為界面對象命名

西門子COMOS軟件開發定製學習4-小遊戲

新建“老鷹捉小雞”選項卡

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

在選項卡中新建屬性

西門子COMOS軟件開發定製學習4-小遊戲

依次創建背景圖片參數、分數參數、遊戲說明參數、開始按鈕、公雞按鈕、母雞按鈕、小雞按鈕、獵狗按鈕。

西門子COMOS軟件開發定製學習4-小遊戲

參數如下,注意角色的命名規則為A1~4,按得分排序,便於後續調整隨機係數。

西門子COMOS軟件開發定製學習4-小遊戲

初始界面佈局

西門子COMOS軟件開發定製學習4-小遊戲

雙擊“公雞”按鈕,編輯腳本。

此處用到的關鍵語句

  • 角色座標

att.Workset.lib.sui.CtrlProperty (27,Att)=X1 'x1座標

att.Workset.lib.sui.CtrlProperty (28,Att)=y1 'y1座標

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1 ‘x2座標

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2 'y2座標

  • 角色隱藏和顯示

att.Layers="~" '隱藏

att.layers="F" ‘顯示

關於工作區域Layers的詳細用法暫不介紹

  • 隨機數

‘----隨機座標----‘

Randomize‘初始化隨機數發生器,否則隨機數會不變化

x1=rnd(1)*25+3 ‘x1為角色座標,25+3為允許角色出現的最大x位置,3為角色允許出現的最小座標。

‘----隨機座標----‘

‘----隨機隱藏----‘

If rnd (1)<0.15*i Then

‘角色的隱藏係數,得分越高的角色隱藏概率越高,本程序取0.15*i,比如公雞隱藏概率為0.15*4=0.6。

Att.Layers="~" '隱藏

Else

Att.Layers="F" ‘顯示

End If

‘----隨機隱藏----‘

公雞按鈕腳本如下:

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

startTime=owner.spec("StartTime").DisplayValue

Set ScoreAtt=owner.spec("Score")

ScoreAtt.InheritCheckIn

Score=ScoreAtt.Description

Set HistoryScoreAtt=owner.spec("HistoryScore")

HistoryScoreAtt.InheritCheckIn

HistoryScore=HistoryScoreAtt.Description

If startTime<>"" Then

diffVal= DateDiff("s",cdate(startTime),now) '30秒

owner.spec("Note").SetXValue 0,diffVal

If cdbl(diffVal)>30 Then

If cdbl(Score)>cdbl(HistoryScore) Then

HistoryScore=Score

HistoryScoreAtt.Description=HistoryScore

End If

msgbox "遊戲結束!"&vbcrlf&"得分:"&Score&vbcrlf&"歷史最高:"&HistoryScore

owner.spec("StartTime").value=""

ScoreAtt.Description="0"

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

att.Layers="~" '隱藏所有角色

Next

owner.spec("StartGame").InheritCheckIn

owner.spec("StartGame").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

Exit Sub

End If

Else

owner.spec("StartTime").value=now

End If

For i=1 To 4

X1=10

y1=10

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.15*i Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

rnd(1)

Randomize

x1=rnd(1)*25+3 '防止位置超出邊界8.5 29.5

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界6 28

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=4+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+2

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

att.SaveAll

Next

owner.spec("A1").Layers="F" '獵狗始終可見

Score=ScoreAtt.Description

Select Case right(me.Name,1)

Case 1

Score=cdbl(Score)-5

Case 2

Score=cdbl(Score)+1

Case 3

Score=cdbl(Score)+2

Case 4

Score=cdbl(Score)+4

End Select

ScoreAtt.Description=Score

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner

End Sub

‘---------------’

依次將母雞、小雞、獵狗按鈕繼承公雞按鈕腳本。將公雞按鈕參數拖拽至獵狗等角色按鈕目錄屬性中,如下圖所示

西門子COMOS軟件開發定製學習4-小遊戲

點擊右下角應用按鈕,在彈出的提醒消息中選擇“否”

西門子COMOS軟件開發定製學習4-小遊戲

查看母雞等角色按鈕的腳本,將看到其繼承了公雞中的腳本,呈斜體表示。如公雞按鈕腳本修改,此處自動修改。

西門子COMOS軟件開發定製學習4-小遊戲

定製“開始遊戲”按鈕腳本

‘---------------’

Sub OnClick()

'事件:按下按鈕之後

If GetSpecOwner.SystemType=13 Then Exit Sub

me.InheritCheckIn

me.Layers="~"

'owner.spec("A4").ScriptEngine.scriptObject.onclick

For i=1 To 4

Set att=owner.spec("A"&i)

Att.InheritCheckIn

Randomize

If rnd (1)<0.1*(i+2) Then'分數越高 隱藏概率越高

Att.Layers="~" '隱藏

Else

Att.Layers="F"

End If

Randomize

x1=rnd(1)*25+2 '防止位置超出邊界

Randomize

y1=rnd(1)*23+5 '防止超出左側邊界

att.Workset.lib.sui.CtrlProperty (27,Att)=X1

att.Workset.lib.sui.CtrlProperty (28,Att)=y1

att.Workset.lib.sui.CtrlProperty (29,Att)=3+x1

att.Workset.lib.sui.CtrlProperty (30,Att)=y1+1.5

owner.spec("Note").SetXValue 0,owner.spec("Note").GetXValue(0)&vbcrlf&x1&"-"&y1

Next

owner.spec("A1").Layers="F"

owner.SaveAll

Project.Workset.lib.refreshcurrentchapterbyspecowner GetSpecOwner '刷新

End Sub

‘---------------’

設置基礎對象對象配置

西門子COMOS軟件開發定製學習4-小遊戲

在單元選項卡,新建對象

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲


最後進行遊戲測試

西門子COMOS軟件開發定製學習4-小遊戲

西門子COMOS軟件開發定製學習4-小遊戲

運行無異常!


西門子COMOS軟件開發定製學習4-小遊戲


最後插播一條廣告:

大紮好,我係牯天樂,我四渣渣輝,介四里沒有挽過的船新版本,擠需體驗三番鍾,裡造會幹我一樣,愛象節款遊戲!

歡迎關注~轉發~


"

相關推薦

推薦中...