用乙個二維陣列來表示整個地圖,我們先網上找一張地圖來分析下。分析:地圖上有 牆、目的地、箱子、人、背景牆、目的地和箱子合起來的(紅箱子)
我們用數字來在二維陣列中對應的標記這些東西,二維陣列的大小就是地圖的大小咯。
哈哈哈,當然是初始化這個地圖咯,就是往這個二維陣列對應的位置上貼圖。//定義地圖大小 8*8
int map[8][8]
;
easyx圖形庫自帶了使用文件,大家可以看一看文件裡面各種函式的使用說明。
//載入
void gameinit()
//列印
void gamepaint()
} }}
//遊戲控制
void gameplay()
cleardevice();
gamepaint();
flushbatchdraw();
//找到人物的位置
for (x = 0; x < 8; x++)
}if (map[x][y] == 5 || map[x][y] == 8)
//for迴圈結束後 map[x][y]就是小鳥的位置
} ch = getch();
switch (ch)
else if (map[x - 1][y] == 4 || map[x - 1][y] == 7)
}break;
case 80:
case 's':
case 's':
if (map[x + 1][y] == 0 || map[x + 1][y] == 3)
else if (map[x + 1][y] == 4 || map[x + 1][y] == 7)
}break;
case 75:
case 'a':
case 'a':
if (map[x][y - 1] == 0 || map[x][y - 1] == 3)
else if (map[x][y - 1] == 4 || map[x][y - 1] == 7)
}break;
case 77:
case 'd':
case 'd':
if (map[x][y + 1] == 0 || map[x][y + 1] == 3)
else if (map[x][y + 1] == 4 || map[x][y + 1] == 7)
}break;
} }endbatchdraw();//關閉批量繪圖
messagebox(gethwnd(), "you win", "ok,go on!", mb_ok);
}
//遊戲判定
int gamewin()
if (map[i][j] == 7)
}} if (winner4 == winner7)
else
}
//主函式
int main()
C語言 推箱子
這個小遊戲設計起來不難,之所以做他的目的是,一天老師給我了個他很早以前寫的2d庫,讓我去使用這個庫完成乙個小遊戲,這個過程的意義再去讓我乙個以前從未用過別人手寫庫的學生,了解到了庫的設計結構,和如果好的使用別人的庫去完成任務,雖然程式設計難度不大,但是意義深刻,至少知道了以後遇見別人的庫是怎麼使用,...
推箱子 C語言
主要功能分析 使用switch語句實現,上下左右移動 用棧實現返回上一步操作。include include include include int map1 9 9 0代表空地 1代表牆 3代表目的地 4代表箱子 5代表人 int map2 9 9 typedef char elementtype...
手寫c語言推箱子
include include includeint life 1 判斷是否繼續 int map 10 10 圖域 0空地,1圍牆,2人,3箱子,4目的地 image img 6 圖組 int arr 10 10 int level 0 void init void drawmap endbatch...