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

📄 gameobject.cs

📁 这是网上下载的很好的串口发短信的程序! 是用VC++来做的
💻 CS
字号:
using System;
using System.Collections;
using System.Drawing;
using System.Collections.Specialized;
using Microsoft.DirectX.DirectDraw;
using Microsoft.DirectX.DirectInput;
using Microsoft.DirectX.DirectSound;

namespace DDGameHelper
{
		/// <summary>
	/// GameObject 的摘要说明。
	/// </summary>
	public abstract class GameObject
	{
		#region 受保护的成员
//		/// <summary>
//		/// 同类型的GameObj的名称(须外部赋值)
//		/// </summary>
//		protected static string _name = string.Empty;

//		/// <summary>
//		/// 同类型的GameObj计数器(主要作用于资源管理。当 counter > 0 时,即便调用 dispose 也不释放 resource)
//		/// </summary>
//		protected static int _counter = 0;

		/// <summary>
		/// 资源 Collection
		/// </summary>
		protected static ArrayList  _bmpRectComboCollection = new ArrayList();

//		/// <summary>
//		/// 指向 BmpRectCombo Collection 的 索引
//		/// </summary>
//		protected int _indexOfBmpRectComboCollection = 0;

		/// <summary>
		/// 指向当前游戏循环
		/// </summary>
		protected GameLoopHandler _glh = null;

//		/// <summary>
//		/// 该 GameObject 会使用到的资源的索引(在 LoadResource 中初始化)
//		/// </summary>
//		protected int _resourceIndex = 0;

		/// <summary>
		/// 是否显示,是否存活(否则会被dispose掉)
		/// </summary>
		protected bool _visible = true, _isalive = true;

		/// <summary>
		/// 横纵坐标
		/// </summary>
		protected double _x = 0.0,_y = 0.0 , _lastX = 0.0, _lastY = 0.0;
		
		/// <summary>
		/// 横纵移动速度
		/// </summary>
		protected double _velX = 1.0, _velY = 1.0;

		/// <summary>
		/// 指针。指向当前frame, 起始及终止 frame
		/// </summary>
		protected int _currF = 0, _lastF = 0, _firstF = 0;

		/// <summary>
		/// 每一帧的播放速度,以及当前播放时间误差累积
		/// </summary>
		protected double _velF = 1.0, _currT = 0.0;

		#endregion
		
		#region 公共成员
//		/// <summary>
//		/// 该 GameObject 会使用到的资源
//		/// </summary>
//		public int ResourceIndex{get{return _resourceIndex;}set{_resourceIndex=value;}}

//		/// <summary>
//		/// 同类型的GameObj的名称(须外部赋值)
//		/// </summary>
//		public static string Name{get{return _name;}set{_name=value;}}

		/// <summary>
		/// 资源 Collection
		/// </summary>
		public static ArrayList BmpRectComboCollection{get{return _bmpRectComboCollection;}set{_bmpRectComboCollection=value;}}

//		/// <summary>
//		/// 指向 BmpRectCombo Collection 的 索引
//		/// </summary>
//		public int IndexOfBmpRectComboCollection{get{return _indexOfBmpRectComboCollection;}set{_indexOfBmpRectComboCollection=value;}}

//		/// <summary>
//		/// 同类型的GameObj计数器(主要作用于资源管理。当 counter > 0 时,即便调用 dispose 也不释放 resource)
//		/// </summary>
//		public static int Counter{get{return _counter;}set{_counter=value;}}

		/// <summary>
		/// 是否显示
		/// </summary>
		public bool Visible{get{return _visible;}set{_visible=value;}}
		/// <summary>
		/// 是否存活(否则会被dispose掉)
		/// </summary>
		public bool IsAlive{get{return _isalive;}set{_isalive=value;}}

		/// <summary>
		/// 横坐标
		/// </summary>
		public double XCurrent{get{return _x;}set{_x=value;}}
		/// <summary>
		/// 纵坐标
		/// </summary>
		public double YCurrent{get{return _y;}set{_y=value;}}
		/// <summary>
		/// 上次的横坐标
		/// </summary>
		public double XLast{get{return _lastX;}set{_lastX=value;}}
		/// <summary>
		/// 上次的纵坐标
		/// </summary>
		public double YLast{get{return _lastY;}set{_lastY=value;}}
		
		/// <summary>
		/// 横移速度
		/// </summary>
		public double XVelocity{get{return _velX;}set{_velX=value;}}
		/// <summary>
		/// 纵移速度
		/// </summary>
		public double YVelocity{get{return _velY;}set{_velY=value;}}

		/// <summary>
		/// 指针。指向当前frame
		/// </summary>
		public int FrameCurrent{get{return _currF;}set{_currF=value;}}
		/// <summary>
		/// 指针。指向起始frame
		/// </summary>
		public int FrameFirst{get{return _firstF;}set{_firstF=value;}}
		/// <summary>
		/// 指针。指向最后一frame
		/// </summary>
		public int FrameLast{get{return _lastF;}set{_lastF=value;}}

		/// <summary>
		/// 每一帧的播放速度
		/// </summary>
		public double FrameVelocity{get{return _velF;}set{_velF=value;}}
		/// <summary>
		/// 播放时间误差累积
		/// </summary>
		public double TimeCurrent{get{return _currT;}set{_currT=value;}}
		#endregion

		/// <summary>
		/// 构造函数。须通过 ResourceHandler 来加载当前 object 所需资源到集合
		/// </summary>
		public GameObject(ref GameLoopHandler gameLoopHandler)
		{
			_glh = gameLoopHandler;
			Init();

//			_counter++;
//			if(_counter==1)
//			{
//				
//				LoadResource();
//			}
		}
//
//		/// <summary>
//		/// 释放该 GameObject 相关 Resource
//		/// </summary>
//		public void ReleaseResource()
//		{
//			_counter--;
//			if(_counter==0)
//			{
//				UnloadResource();
//			}
//		}
		
		/// <summary>
		/// 初始化
		/// </summary>
		protected abstract void Init();

		/// <summary>
		/// 载入GameObject所需Resource
		/// </summary>
		protected abstract void LoadResource();

		/// <summary>
		/// 释放GameObject相关Resource
		/// </summary>
		protected abstract void UnloadResource();

		/// <summary>
		/// 处理用户输入
		/// </summary>
		public abstract void Process(ref KeyboardState ks);

		/// <summary>
		/// 处理每一个 GameLoop
		/// </summary>
		public abstract void Process();

		/// <summary>
		/// 获取指向资源集合的索引
		/// </summary>
		public abstract int IndexOfBmpRectComboCollection();
		/// <summary>
		/// 获取GameObject的名称
		/// </summary>
		public abstract string Name();

		/// <summary>
		/// 获取GameObject的类型编号
		/// </summary>
		public abstract int Type();

		/// <summary>
		/// 获取 GameObject 的属性集合
		/// </summary>
		public abstract object Properties();

		/// <summary>
		/// 绘制自身
		/// </summary>
		public virtual void Draw()
		{
			DDHelper.DrawBitmap(((BmpRectCombo)_bmpRectComboCollection[IndexOfBmpRectComboCollection()]),(int)_x,(int)_y,_currF);
		}
	}

}

⌨️ 快捷键说明

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