RPG游戏中阻碍半透明遮挡(C# XNA)
来源:互联网 发布:千牛mac官方下载 编辑:程序博客网 时间:2024/06/05 02:52
这个是用XNA实现的,花了一天时间完成了,这个不是用Shader实现的,而是用C#实现的,效果完美,这么多年的难题终于得到解决,注意,这个实现是使用了阻碍遮挡半透明!
下面是代码部分
private void CheckMaskVer2() { // ////Check out of bound // #region Vector2 vecCoorFromTree = m_vecPlayer - m_vecTree; if (vecCoorFromTree.X >= m_textTree.Width || vecCoorFromTree.Y >= m_textTree.Height) { m_textMHXYPlayer.SetData<Color>(m_playerColorBufferOld); return; } if (vecCoorFromTree.X < 0) { int iFromTreeX = (int)-vecCoorFromTree.X; if (iFromTreeX > m_textMHXYPlayer.Width) { m_textMHXYPlayer.SetData<Color>(m_playerColorBufferOld); return; } } if (vecCoorFromTree.Y < 0) { int iFromTreeY = (int)-vecCoorFromTree.Y; if (iFromTreeY > m_textMHXYPlayer.Height) { m_textMHXYPlayer.SetData<Color>(m_playerColorBufferOld); return; } } #endregion int iCoorFromTreeStartX = (int)(vecCoorFromTree.X + 0.5f * Math.Sign(vecCoorFromTree.X)); int iCoorFromTreeStartY = (int)(vecCoorFromTree.Y + 0.5f * Math.Sign(vecCoorFromTree.Y)); int iColPixels = m_textMHXYPlayer.Width; int iRowPixels = m_textMHXYPlayer.Height; int iCurX = 0; int iCurY = 0; int iPitchPlayer = m_textMHXYPlayer.Width; int iPitchTree = m_textTree.Width; int indexPlayer = 0; int indexTree = 0; for (int iRow = 0; iRow < iRowPixels; iRow++) { for (int iCol = 0; iCol < iColPixels; iCol++) { iCurX = iCoorFromTreeStartX + iCol; iCurY = iCoorFromTreeStartY + iRow; if ((iCurX < 0 || iCurX >= m_textTree.Width) || (iCurY < 0 || iCurY >= m_textTree.Height)) { continue; } else { indexPlayer = iRow * iPitchPlayer + iCol; if (m_playerColorBufferOld[indexPlayer].A > 0) { indexTree = iCurY * iPitchTree + iCurX; if (m_treeColorBuffer[indexTree].A > 0) { m_playerColorBuffer[indexPlayer].A = 128; } else { if (m_playerColorBufferOld[indexPlayer].A != m_playerColorBuffer[indexPlayer].A) m_playerColorBuffer[indexPlayer].A = m_playerColorBufferOld[indexPlayer].A; } } } } }//Endfor m_textMHXYPlayer.SetData<Color>(m_playerColorBuffer); }
- RPG游戏中阻碍半透明遮挡(C# XNA)
- RPG游戏中阻碍遮挡(XNA HLSL实现)
- XNA游戏:Hello XNA
- osg 半透明遮挡实现
- osg 半透明遮挡实现
- Unity 遮挡半透明
- (转)AS3 RPG游戏引擎:理解分析RPG游戏
- RPG游戏(C++)代码
- RPG游戏制作(CSV)
- RPG游戏(地图传送)
- 【用C#写游戏-XNA游戏编程】坦克大战(一) 初探XNA
- 《游戏脚本的设计与开发》-(RPG部分)3.2 地图遮挡和人物行走
- RPG游戏
- RPG游戏中造过的BUG
- 《XNA游戏开发》在战机游戏中使用Decorator模式
- 教你使用XNA Game Studio 3.1+C#开发游戏
- 教你使用XNA Game Studio 3.1+C#开发游戏.
- 使用 Spirit 类在 XNA 中创建游戏中的基本单位精灵(十三)
- Powerdesigner数据库开发指南
- Unity动画事件
- 如何利用JM8.6解码器提取码流中P帧宏块(所有4*4块)的运动矢量(考虑B帧,设x264编码的12帧为IDR BBPBBPBBPBP)
- 基础文章7:chap15 进程通信之管道 补充
- STL algorithm之copy
- RPG游戏中阻碍半透明遮挡(C# XNA)
- java7 NIO2(6) watching service API
- 开源 免费 java CMS - FreeCMS-标签 infoList
- 磁盘分区
- Android Bundle类
- Python类
- rman 迁移ASM到异机文件系统实战
- Apache configuration files on Ubuntu
- Linux 常用命令——chgrp, chown, chmod