❶ (100分)java寫「坦克大戰」
預備知識:IO流、線程、SWING/AWT
用一個線程來控制我方坦克的移動,每次移動都要repaint界面內一次容。
界面使用雙緩沖來消除閃爍現象
用線程式控制制敵方坦克出現的時間
將坦克、子彈各看成一個對象
子彈可以是無限的,也可以是有限的,有限的就將子彈放入數組
將歷史記錄使用IO來存在本地磁碟中
敵方坦克需要有人工智慧(這點是對游戲可玩度的一種指標,大概就是制定某個規則的隨機數來發射子彈,這里的想法比較少)
以上。。。
你可以上網找找相應的代碼或者視頻
❷ java 「坦克大戰」代碼問題
int speed=1;
hero.setY(hero.getY()-speed);
❸ FC坦克大戰 簡單的金手指設置或者代碼設置
實現基本要求代碼: 100行 主要涉及: 基本控制項及演算法
一、設計題目:坦克大戰
二、目的與要求
1.目的
培養學生綜合利用VB語言進行程序設計的能力,主要是培養學生的時鍾控制和綜合編程能力。
2.基本要求
n 要求使用面向對象和結構化程序設計的編程思路
n 能通過鍵盤W(上)、S(下)、A(左)、D(右)移動坦克。
n 可以通過上述按鍵隨時改變坦克的方向。
n 炮身和炮筒分別為標簽控制項
u 當坦克移動到窗體邊框時停止前進,但能改變方向。
u 按鍵J時可以按炮筒方向發射炮彈(炮彈為標簽控制項)。
3.創新要求
在基本要求達到後,進行創新設計,創新方向提示如下:
★ 增加固定障礙物。
★ 增加不固定障礙物。
★ 可發射連續炮彈。
★ 用戶可自行設置按鍵。
★ 增加坦克移動速度等級。
★ 坦克使用其他控制項
★ 其它創新(有一定難度,實現代碼在30行以上)
三、設計方法和基本原理
1.問題描述
坦克由兩個控制項構成label1作為坦克的主體部分,label2作為炮管。在一個矩形區域內可以通過鍵盤控制坦克向上下左右移動,當移動到邊界後就不再移動但可以變換方向繼續移動。通過鍵盤控制可發炮。
2.問題的解決方案
①設計程序界面
因為用的全是基本控制項,界面設計沒有什麼難度,照樣子拼就可以了。
②編寫代碼
代碼包括事件處理過程和功能函數,還有必要的聲明。變數聲明部分聲明本程序所需要的變數和數組。
事件處理包括下面的主要事件:
Form_Load()
作一些初始化的工作。
Sub Form_KeyPress(KeyAscii As Integer)
坦克的移動通過窗體的keypress事件接受鍵盤按鍵,w鍵控制坦克向上,s鍵控制坦克向下,a鍵控制坦克向左,d鍵控制坦克向右。
炮彈的發射由鍵盤事件控制,單擊j鍵發射炮彈。利用timer控制項控制炮彈延直線移動(改變炮彈的top和left屬性),當炮彈擊中邊緣後消失。
Sub Timer1_Timer()
炮彈的運動是由timer控制項控制,發炮時啟動timer事件。
四、主要技術問題的描述
本題中的難點並不在於界面設計,只需要放幾個標簽和一個時鍾控制項就可以了。
1. 坦克的移動
每當觸發keypress事件後改變坦克的組成部分label1和label2的top和left屬性,注意當坦克改變方向時,label1控制項和label2控制項的相對位置會改變。
2.炮彈的移動
每當利用keypress事件觸發坦克的發炮,首先判斷是否炮彈在運行當中,如果運行當中則不進行響應。炮彈的運動是由timer控制項控制,發炮時啟動timer事件。
五、參考資料
★ Visual Basic 程序設計教程 及 Visual Basic 實驗教程
★ VB6.0程序員指南
★ VB6.0控制項參考手冊
★ 設計資料中的scientificcalculator.ZIP以及「計算器.ZIP」
★ MSDN中文版,課程設計網站上提供的其它資料。
❹ js實現坦克大戰第一關。控制坦克上下左右移動。函數的onkeydown問題。
測了一下,直接調dosomething(event)是沒問題的,而且move(event)不可能調到,應該是hero.move(event)
(突然發現你這個是WASD的keyCode)
下面是代碼
<body onkeydown=dosomething(event)>
<script>
function MyTank(x,y,direct){
this.x = x;
this.move = function move(event){
console.log(event.keyCode+'被按下');
}
}
var hero =new MyTank(300, 300, 0);
function dosomething(event) {
if(event.keyCode==38|| event.keyCode==40 ||event.keyCode==37|| event.keyCode==39) {
hero.move(event);
}
}
</script>