❶ (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>