坦克大战0.2

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;

namespace 坦克大战0._2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
          //this.Location = new Point(50, 50);//窗口的位置
          //this.DesktopLocation = new Point(50,50);
            this.Opacity = 1;//设置透明度
            this.Text = "坦克大战0.2";//设置标题

            this.SetDesktopLocation(FormDimension.FormLoadX, FormDimension.FormLoadY);//窗口位置
            this.StartPosition = FormStartPosition.Manual;
            this.Size = new Size(FormDimension.FormX, FormDimension.FormY);

            this.AutoSizeMode = AutoSizeMode.GrowAndShrink;//禁止手动调整大小
            this.MaximizeBox = false;//使最大化失效

            this.BackColor = Color.Orange; //设置背景色

            Button1 dd = new Button1();
            this.Controls.Add(dd);    

            dd.Click += dd_Click;
        }

        static int GameState = 0;
        private void dd_Click(object sender, EventArgs e)
        {
            Button a = (Button)sender;

            if (GameState % 2 == 0)
            {
                GameState++;
                this.KeyPreview = true;//主窗体能否接受键盘事件
                a.Text = "游戏进行中";
            }
            else
            {
                GameState++;
                this.KeyPreview = false;
                a.Text = "暂停中";
            }

        }

        static int x = 50, y = 50;//坦克○坐标
        static int vx = x + 15, vy = y - 15;

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Color c = this.BackColor;//获取窗口背景色

            Pen a = new Pen(Color.Red);//new画笔
            a.Width = 5;//设置画笔宽度

          //e.Graphics.DrawEllipse(a, 20, 20, 50, 50);
            e.Graphics.FillEllipse(a.Brush, x,y,30,30);
            e.Graphics.DrawLine(a, x+15, y+15, vx, vy);

            this.BackColor = c;
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {

            if (e.KeyCode == Keys.W || e.KeyCode == Keys.Up)
            {
                y -= 5;
                vx = x + 15;
                vy = y - 15;
                this.Refresh();
            }
            else if (e.KeyCode == Keys.S || e.KeyCode == Keys.Down)
            {

                y += 5;
                vx = x + 15;
                vy = y + 45;
                this.Refresh();
            }
            else if (e.KeyCode == Keys.A || e.KeyCode == Keys.Left)
            {
                x -= 5;
                vx = x - 15;
                vy = y + 15;
                this.Refresh();
            }

            else if (e.KeyCode == Keys.D || e.KeyCode == Keys.Right)
            {
                x += 5;
                vx = x + 45;
                vy = y + 15;
                this.Refresh();
            }
        }
    }

    public class Button1 : Button
    {
        public Button1 ()
        {
            this.Location = new Point((FormDimension.FormX / 2) - (this.Width / 2), 20);
            this.Text = "点击开始";
            this.Height = 30;
            this.Width = 90;
            this.BackColor = Color.Gray;
        }
    }
}

  

//添加暂停功能

时间: 2024-10-19 17:34:42

坦克大战0.2的相关文章

坦克大战系列(3.0版)

无论头上是怎样的天空,我准备承受任何风暴.--拜伦 本讲内容:坦克3.0版(面向对象的思想) 要求:画出我方坦克会动并且会发射子弹.画出敌人坦克 一.同一个包下建二个文件分别为:MyTankGame.Members(负责其它成员譬如:制造坦克.子弹等) MyTankGame类 /** * 功能:坦克游戏的3.0版本 * 1:画出坦克 * 2:实现我方坦克移动并且會發子彈,并 画出敌人的坦克 */ package a; import javax.swing.*; import java.awt.*

坦克大战系列(8.0版)

人生在勤,不索何获.--张衡 本讲内容:坦克大战8.0版(面向对象的思想) 一.解决:防止敌人坦克重叠运动 1.定义一个Vector容器,装所有敌人的坦克(为了得到所有坦克坐标) 2.定义一个方法getEts()可以得到敌人的坦克(为了得到所有坦克坐标) 3.在我的我的面板的构造方法调用getEts() 4.定义一个判断是否碰到了别的敌人的坦克的方法isTouchOtherEnemy() 5.在设置敌人坦克随机走动那调用isTouchOtherEnemy() 二.解决:我方坦克死亡(即隐身)后,

坦克大战系列11.0版

好学而不勤问非真好学者. 本讲内容:坦克大战11.0版(面向对象的思想) 一.解决:播放声音 1.定义一个播放声音的类AePlayWave 2.在面板构造方法启动声音 二.同一个包下建二个文件分别为:MyTankGame.Members(负责其它成员譬如:制造坦克.子弹等) MyTankGame类 /** * 功能:坦克游戏的8.0版本 1:画出坦克 * 2:实现我方坦克可以上下左右移动 * 3:可以發射子彈,子彈可以連發(最多可以发5颗) * 4:画出敌人的坦克 * 5:当我方坦克击中敌人坦克

例子:web版坦克大战1.0

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>坦克大战</title> </head><body onkeydown="hero.move(event)"> <div id="filed" style="background:#

坦克大战系列(2.0版)

只有这样的人才配生活和自由,假如他每天为之而奋斗.--歌德 本讲内容:坦克2.0版(面向对象的思想) 要求:画出我方坦克会动.画出敌人坦克 一.同一个包下建二个文件分别为:MyTankGame.Members(负责其它成员譬如:制造坦克.子弹等) MyTankGame类 /** * 功能:坦克游戏的2.0版本 * 1:画出坦克 * 2:实现坦克上下左右移动,并画出敌人的坦克 */ package a; import javax.swing.*; import java.awt.*; import

坦克大战游戏1.0版

这是坦克大战游戏1.0版,以后会陆陆续续的完成... 准备素材(itank.jpg): 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>坦克游戏1.0版</title> </head> <body onkeydown="doSomething(event)"

坦克大战1.0版项目实战

这里终于要开始我们的坦克大战的开发了! 正文 我个人并不认为在一个足够大的项目中一个人能尽善尽美地把所有因素都考虑在内,或许有那样的人,但做程序员太可惜了:),但是我们不能说不能全部顾着,就什么都不管不顾了.既然大多数人都不能把所有因素都考虑在内,又不能不管不顾,那么我们要考虑什么?要怎么去做,让我们的程序有章法,有很好地扩展性?我想这会是一个恒久的问题.但我个人有几点对自己做项目时考虑的想法! 首先:我们的项目得有版本意识,就正如市场上所有的软件一样,它们必定会有版本,我们不可能一次性把所有功

(java项目)坦克大战 2.0

这个版本,只能算是一个雏形,把最基本的东西给完成了,不过,后面可添加的也不多.有一点,还是想去实现,那就是敌方坦克自己寻找对手!也就是游戏AI. emmm, 什么时候可以了解一下这个AI.顺便学学python. 这个帖子只是为了贴上代码,对后续的代码作为优化和添加游戏AI做准备的. 1. 各类接口 package Event; /* *具有攻击力的接口 */ public interface Attackable { /* * 校验具有攻击力的实物, 和, 具有被攻击的实物,是否能撞在一起 *

坦克大战1.0版

心得 1.熟悉了Actionlistener的用法 2.了解了awt类的使用方法 体会 1.创建了属于自己的坦克 2.未来将不断更新,做出一款好玩的坦克大战 原文地址:https://www.cnblogs.com/kendn/p/8319290.html