資源簡介
本用Kinect姿勢控制俄羅斯方塊,游戲功能均實現,玩一下就知道了^_^
資源包含源代碼、可執行程序,項目。
本資源與Blog《Kinect開發之體感舉起手來程序設計(Kinect俄羅斯方塊)》配套。
如果您下載到了本資源。請去blog上看原文,方便一起學習交流。
游戲需要Kinect SDK的支持,請先安裝Kinect SDK
本資源對應博文地址為:
http://yacare.iteye.com/blog/1950133
代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?System.Drawing;
namespace?Kinect_TetrisV2
{
????public?class?Block
????{
????????public?Block()
????????{
????????????//
????????????//?TODO:?在此處添加構造函數邏輯
????????????//
????????}
????????///?
????????///?構造方法
????????///?
????????///?
????????///?
????????public?Block(int?index?Point?pt)
????????{
????????????colorIndex?=?index;
????????????ptPosition?=?pt;
????????}
????????public?Block(int?index?int?x?int?y)
????????{
????????????colorIndex?=?index;
????????????ptPosition.X?=?x;
????????????ptPosition.Y?=?y;
????????}
????????// 顏色序號
????????private?int?colorIndex;
????????// 位置
????????private?Point?ptPosition;
????????// 方塊大小
????????private?static?int?size?=?30;
????????private?static?int?COLOR_CHANGE?=?60;
????????//System.Drawing.Color表示ARGB顏色從指定的8位顏色值(紅色,綠色,藍色)中創建結構
????????//制定的默認alpha?默認為255?意為完全不透明
????????private?static?Color[]?clrDefine
????????????=?new?Color[]?{
Color.FromArgb(51?204?102) //?綠 Default?color?or?extend?block?color
Color.FromArgb(200?200?102) //?黃
Color.FromArgb(0?143?224) //?藍
Color.FromArgb(153?153?204) //?青
Color.FromArgb(204?204?204) //?灰
Color.FromArgb(232?123??20) //?橙
Color.FromArgb(220??39??75) ? //?紅 sample?block?color
}; // 顏色
????????public?int?ColorIndex
????????{
????????????get
????????????{
????????????????return?colorIndex;
????????????}
????????????set
????????????{
????????????????colorIndex?=?value;
????????????}
????????}
????????///?
????????///?位置的set和get方法
????????///?
????????public?Point?Position
????????{
????????????get
????????????{
????????????????return?ptPosition;
????????????}
????????????set
????????????{
????????????????ptPosition?=?value;
????????????}
????????}
????????///?
????????///?驗證是否要繪圖?如果clear為真?則要清除產生的塊?因為方塊產生了?
????????///?并且移動?必須把移動前一秒的塊描成白色?
????????///?
????????///?
????????///?
????????///?
????????public?void?Draw(Graphics?g?Point?ptStart?bool?clear)
????????{
????????????if?(clear)
????????????{
????????????????g.FillRectangle(new?SolidBrush(Color.White)?ptStart.X?+?(ptPosition.X?*?size)
????????????????????ptStart.Y?+?(ptPosition.Y?*?size)?size?size);
????????????}
????????????else
????????????{
????????????????g.FillRectangle(new?SolidBrush(clrDefine[colorIndex])?ptStart.X?+?(ptPosition.X?*?size)?ptStart.Y?+?(ptPosition.Y?*?size)?size?size);
????????????????//繪制四條邊?兩條亮色的邊?兩條暗色的邊?使塊的形狀更加突出
????????????????g.DrawLine(new?Pen(GetLightColor(colorIndex)?1)?ptStart.X?+?(ptPosition.X?*?size)?ptStart.Y?+?(ptPosition.Y?*?size)?ptStart.X?+?(ptPosition.X?*?size)?+?size?-?1?ptStart.Y?+?(ptPosition.Y?*?size));
???
- 上一篇:基于weka的數據聚類分析實驗
- 下一篇:CMOS環形振蕩器
評論
共有 條評論