C winform 經典小遊戲貪吃蛇V2 0(二)

2021-08-20 14:25:27 字數 2631 閱讀 3462

我們的蛇已經能跑能吃,但是還是存在著許多的問題,

這裡列出來的只是一部分的問題,也是我們這個版本主要解決的問題!

由於原先的介面為單調的純白,這樣不僅加大了遊戲難度,玩家的體驗也極差,

所以我在遊戲的介面新增了網格線,讓玩家可以更加精準的找到食物和蛇相對應的行列。

原來介面:

更改後的介面:

是不是感覺好多了?

在新增網格線的過程中我遇到了一些問題:

解決方法

網格線的繪製,放在窗體的paint事件中,**如下:

private

void

form1_paint(object sender, painteventargs e)

// 畫垂直線

for (int j = 0; j <= col; j++)

}

思路為在每一次移動,進行一次snake_over判定

**如下:

遍歷蛇體判定蛇頭snake_boby[0]的座標,是否和蛇體位置重合

然後在timer_tickform1_keydownsnake_move(x, y)後新增snake_over()

///

/// 蛇觸碰身體死亡事件

///public

void

snake_over()}}

}

game_begin介面如圖

控制項如下:

private system.windows

.forms

.groupbox groupbox1;

private system.windows

.forms

.radiobutton radiobutton4;

private system.windows

.forms

.radiobutton radiobutton3;

private system.windows

.forms

.radiobutton radiobutton2;

private system.windows

.forms

.radiobutton radiobutton1;

private system.windows

.forms

.button button2;

private system.windows

.forms

.label label1;

private system.windows

.forms

.button button1;

後台**:設定乙個成員變數用來儲存時間間隔,設定遊戲難度

///

/// 用來設定遊戲難度

///public

static

int time_interval = 100;

頁面跳轉和難度選擇

private

void

button1_click(object sender, eventargs e)

else

if (radiobutton3.checked)

else

if (radiobutton4.checked)

else

form.show();

}

將程式初始化介面設為game_begin介面在program.cs中改為:

新增:

timer.interval = game_begin.time_interval;
timer_tick的事件間隔timer.interval改為game_begin介面我們獲取radiobutton的值

git位址

好了貪吃蛇的更新就到這了,如果以後有興趣再做v3.0啦!(ง •_•)ง

c winform貪吃蛇小遊戲

關於貪吃蛇需要用的物件 1.蛇 snake 2.食物 food 3.記錄蛇身的位置 snake body x,y 4 食物位置food x,y 簡單業務 1.蛇身移動 2.隨機食物 3.蛇頭與食物重疊 4.窗體檢測上下左右方向,控制蛇身體移動方向 好了,廢話不多說,開始 在頁面拖入panle1,兩個...

貪吃蛇 C 經典小遊戲

貪吃蛇的遊戲規則 上下左右方向鍵控制貪吃蛇游動,不要撞到牆 不要碰到自己身體,每次吃到食物速度都會加快。我覺得,貪吃蛇其實難點還是一些我們不熟悉的函式 比如怎麼定位游標處,比如怎麼控制方向,比如怎麼隨機設定食物並且使食物落在地圖內.我們來看看怎麼定位游標處 void move int x int y...

C winform 小遊戲筆記

我做了乙個c 的winform程式的小遊戲,遊戲是這樣的 介面上有若干小點和乙個小人,所有小點每三秒鐘隨機變化一次位置,如果小點碰到小人就算遊戲結束了,在這三秒鐘內你也可以用滑鼠拖動小人來選擇乙個你覺得可能不會被碰撞的位置。其實這個遊戲堅持的時間長短完全是靠運氣,畢竟小點位置是隨機的,並不是有規律可...