abstractsprite.cs

来自「基于.net FrameWork的windows游戏-坦克大战游戏.用到了多线程」· CS 代码 · 共 120 行

CS
120
字号
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;


public abstract class AbstractSprite
{
    int X, Y;
    int width, height;
    bool visible, active;
    abstract public void drawSprite(Graphics g);
    abstract public void drawSprite(Graphics g, int SpiritDirection);
    abstract public void updatePos(int SpiritDirection);

    /// <summary>
    /// 获得精灵X坐标值
    /// </summary>
    /// <returns></returns>
    public int getX()
    {
        return X;
    }
    /// <summary>
    /// 获得精灵Y坐标值
    /// </summary>
    /// <returns></returns>
    public int getY()
    {
        return Y;
    }
    /// <summary>
    /// 获得精灵的宽
    /// </summary>
    /// <returns></returns>
    public int getWidth()
    {
        return width;
    }
    /// <summary>
    /// 获得精灵的高
    /// </summary>
    /// <returns></returns>
    public int getHeight()
    {
        return height;
    }
    /// <summary>
    /// 获得精灵是否可见的属性
    /// </summary>
    /// <returns></returns>
    public bool getVisible()
    {
        return visible;
    }
    /// <summary>
    /// 获得精灵是否可移动的属性
    /// </summary>
    /// <returns></returns>
    public bool getActive()
    {
        return active;
    }


    /// <summary>
    /// 设置精灵的X,Y坐标值
    /// </summary>
    /// <param name="x"></param>
    /// <param name="y"></param>
    public void setPos(int x, int y)
    {
        this.X = x;
        this.Y = y;
    }
    /// <summary>
    /// 设置精灵宽高值
    /// </summary>
    /// <param name="width"></param>
    /// <param name="height"></param>
    public void setWidthHeight(int width, int height)
    {
        this.width = width;
        this.height = height;
    }
    /// <summary>
    /// 设置精灵是否可见的属性
    /// </summary>
    /// <param name="visible"></param>
    public void setVisible(bool visible)
    {
        this.visible = visible;
    }
    /// <summary>
    /// 设置精灵是否可移动的属性
    /// </summary>
    /// <param name="active"></param>
    public void setActive(bool active)
    {
        this.active = active;
    }

    //    ------ 实训4新加 检测碰撞的方法 ------ //
    public bool isCollided(AbstractSprite target)
    {
        Rectangle myRect = new Rectangle(this.getX(), this.getY(), this.getWidth(), this.getHeight());
        Rectangle targetRect = new Rectangle(target.getX(), target.getY(), target.getWidth(), target.getHeight());
        if (myRect.IntersectsWith(targetRect))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}


⌨️ 快捷键说明

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