⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 playertanksprite.cs

📁 基于.net FrameWork的windows游戏-坦克大战游戏.用到了多线程,绘图,碰撞处理等技术,整个游戏的框架已经搭建起来,可以做二次开发.
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;

public class PlayerTankSprite : SpriteDrawing
{
    int formWidth, formHeight;
    int myTankWidth, myTankHeight;
    int direction;
    int myTankX, myTankY;
    Image[] myTankImg;
    Form TankGame2008;
    static int speed = 5;

    public PlayerTankSprite(Image[] myTankImg, int myTankX, int myTankY, Form TankGame2008)
        : base(myTankImg, myTankX, myTankY, TankGame2008)
    {
        this.myTankX = myTankX;
        this.myTankY = myTankY;
        this.myTankImg = myTankImg;
        myTankWidth = 50;
        myTankHeight = 50;
        formWidth = 640;
        formHeight = 480;
        this.TankGame2008 = TankGame2008;
        setVisible(true);
        setActive(false);
    }

    public override void updatePos(int SpriteDirection)
    {
        base.updatePos(SpriteDirection);
        switch (direction)
        {
            case 0:
                myTankX = this.getX() - speed;
                if (myTankX < 0)
                {
                    myTankX = 0;
                }
                break;
            case 1:
                myTankX = this.getX() + speed;
                if (myTankX > formWidth - myTankWidth)
                {
                    myTankX = formWidth - myTankWidth;
                }
                break;
            case 2:
                myTankY = this.getY() - speed;
                if (myTankY < 0)
                {
                    myTankY = 0;
                }
                break;
            case 3:
                myTankY = this.getY() + speed;
                if (myTankY > formHeight - myTankHeight)
                {
                    myTankY = formHeight - myTankHeight;
                }
                break;
        }
        this.setPos(myTankX, myTankY);
    }

    public int getTankDirection()
    {
        return direction;
    }

    public void keyDown(int press)
    {
        //在TankGame2008中的KeyDown事件中调用此方法,直接传按下的键的KeyValue给此方法.
        int pressed = press;
        if (pressed == 37)
        {
            this.direction = 0;
            this.setActive(true);
        }
        if (pressed == 38)
        {
            this.direction = 2;
            this.setActive(true);
        }
        if (pressed == 39)
        {
            this.direction = 1;
            this.setActive(true);
        }
        if (pressed == 40)
        {
            this.direction = 3;
            this.setActive(true);
        }
    }

    public void keyReleased()
    {
        this.setActive(false);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -