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中文版,课程设计网站上提供的其它资料。