Questions tagged «c#»

C#是Microsoft与.NET平台一起创建的一种多范例,托管,强类型,垃圾回收的编程语言。

2
继承与组成
我用C#赚钱。通常,我会使用这种语言使用界面将所有事物解耦到高处。这在企业代码中为我提供了很好的服务,但是在C#中编写游戏时,由于能够为基类定义一些默认行为,因此我倾向于继承。但是我这样做很肮脏,就像我不服从曾经说过“赞成继承而不是继承”的建筑神一样。我知道它不是黑白的,但我也觉得我可以使用界面进行更多的工作,并大致实现相同的目的。 别人在做什么?是继承是游戏的正确方法,还是应该在某些接口中重构?
16 c#  architecture 

3
一个简单的地图,四个生物群落以及如何分布它们
这是一个基本概念:我有一个Rogue风格的游戏,也许是Dwarf Fortress风格的游戏,它具有随机生成的游戏世界,并且周围散布着多个地牢入口。我已经基本涵盖了地牢,但是我被困在了整个世界的一个方面。 所说的“世界”被视为屏幕的2D地图,应该具有斑点状分布的四个不同主题或生物群落-草原,沙漠,雪地和沼泽,每个主题都有自己的屏幕总数。假设地图为8x8,可提供64个独特的屏幕。其中一半可能是草原,四分之一的沙漠,沼泽和积雪各占四分之一: 减少调色板似乎使积雪和沼泽的颜色相同。最初,底角有八个挡雪板,中间有一个交错的八挡沼泽区。抱歉,请忽略位置标记。 我能得到的最好的是一些蛇形的形状,并且常常与荒谬的组合(例如沙漠在雪地中蛇形)(反之亦然)结合在一起。我一辈子都想不出如何使它变得漂亮又过时,更不用说让它具有气候意义了吗?那么如何像样机一样生成生物群系图? 好的,根据要求:世界确实没有比那个例子大得多,而我需要的只是散布确定主题外观的斑点的方法,但有雪不能触及沙漠的额外限制。屏幕不滚动,并且如果屏幕设置为“沙漠”,则屏幕上将无草。

1
阴影贴图文物
我想尝试为3D XNA游戏添加阴影。我已经用一盏灯和一台摄像机设置了一些测试环境。但是,我的方法遇到了工件。 我使用来自http://pastebin.com/zXi0hmsU的着色器代码渲染最终结果,并使用http://pastebin.com/rY4Gcj9N创建阴影贴图。该代码非常简单,涉及从灯光角度生成深度图,然后将其投影到相机空间并检查遮挡。 但是,从大多数角度来看,我得到的结果都很丑陋 场景由一些简单的立方体(手动构造,面向外部,背面被剔除),一盏灯(左上角所示的阴影图-看起来还可以)和一台摄像机组成。 我的阴影贴图的RenderTarget初始化为 int shadowMapSize = 512; RenderTarget2D shadowMap = new RenderTarget2D(GraphicsDevice, shadowMapSize, shadowMapSize, true, GraphicsDevice.PresentationParameters.BackBufferFormat, DepthFormat.Depth24Stencil8); GraphicsDevice.SetRenderTarget(shadowMap); GraphicsDevice.Clear(Color.White); GraphicsDevice.DepthStencilState = DepthStencilState.Default; 然后,应用该CreateShadowMap效果,然后应用LambertWithShadows效果。最后,使用绘制阴影图SpriteBatch。 其余代码仅包含为着色器提供正确的值。如有必要,我可以提供。


9
塔防游戏的动态路径算法
我正在做塔防,我需要一个好的路径算法。 我曾经考虑过Dijkstra,但我需要一个可以动态发展的人。删除或添加一条边而无需完全重新计算时,它必须能够自我更新。 如果有帮助,我正在C#中进行编码。

6
如何使用C#在Unity3D中正确区分单击和双击?
我要在这里理解和学习的东西是非常基本的:使用C#正确区分Unity中3个主要鼠标按钮的单击和双击的最通用,最精致的方法是什么? 我对“ 正确 ”一词的强调并非一无是处。尽管令我感到惊讶的是,以前似乎从未在此网站上问过这个问题,但是我当然已经在Unity的论坛和Unity自己的问答页面上搜索并找到了许多类似的问题。但是,正如在这些资源中张贴答案的情况通常一样,它们似乎都是错误的,或者至少有点过于业余。 让我解释。提出的解决方案始终具有两种方法中的任何一种及其相应的缺陷: 每次发生单击时,请计算自上次单击以来的时间增量,如果该时间增量小于给定的阈值,则将检测到双击。但是,此解决方案导致在检测到双击之前检测到快速的单击,这在大多数情况下是不希望的,因为这样会同时激活单击和双击操作。 粗略的例子: float dclick_threshold = 0.25f; double timerdclick = 0; if (Input.GetMouseButtonDown(0) { if (Time.time - timerdclick) > dclick_threshold) { Debug.Log("single click"); //call the SingleClick() function, not shown } else { Debug.Log("double click"); //call the DoubleClick() function, not shown } timerdclick = Time.time; } 设置激活单击的等待延迟,这意味着,每次单击后,如果自上次单击以来的时间延迟超过给定阈值,则仅激活单击操作。但是,这会产生缓慢的结果,因为有可能在检测到单击之前注意到等待。更糟糕的是,这种解决方案在计算机之间存在差异,因为它没有考虑用户在操作系统级别上双击速度设置的速度或速度有多慢。 …
15 c#  unity  mouse 


6
如何在路径(坐标列表)上行走时使角色变得流畅?
我有一个带有坐标的列表-从A *算法输出-我想使我的角色旋转顺畅地遵循此路径。 所以我有一个像A的东西,我想得到C 我怎样才能做到这一点 ? 编辑 为了使自己更清楚一点: 我对平滑转弯更感兴趣,因为我已经知道如何从一个节点转到另一个节点。 编辑 许多人认为这很有用(我也是如此),所以我发布了Daniel Shiffman的“代码的本质”的链接,他在其中讨论了许多游戏AI(和物理)问题,例如转向行为http://natureofcode.com/book/chapter- 6个自治代理/#chapter06_section8
15 c#  unity  path-finding 

9
我应该如何学习XNA?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我想开始学习如何在XNA中制作游戏,但是我不知道从哪里开始!如果有人可以向我建议我需要什么软件以及一些好的书籍或教程,那将是最有帮助的。 就我目前的编码知识而言,我对Javascript(与HTML5 canvas结合使用)有很好的经验。我敢肯定,我还需要学习C#以使用XNA进行编码,因此请记住这一点。
15 xna  c# 

2
如何在体素引擎中实现照明?
我正在创建类似于地形引擎的MC,我曾想过照明会使其看起来更好,但问题是当放置发光块时,这些块未正确照明(请参见底部的屏幕截图)在页面上。 到目前为止,我想实现我的世界的“块状”照明。所以我创建了一个VertexFormat: struct VertexPositionTextureLight { Vector3 position; Vector2 textureCoordinates; float light; public readonly static VertexDeclaration VertexDeclaration = new VertexDeclaration ( new VertexElement(0, VertexElementFormat.Vector3, VertexElementUsage.Position, 0), new VertexElement(sizeof(float) * 3, VertexElementFormat.Vector2, VertexElementUsage.TextureCoordinate, 0), new VertexElement(sizeof(float) * 5, VertexElementFormat.Single, VertexElementUsage.TextureCoordinate, 1) ); public VertexPositionTextureLight(Vector3 position, Vector3 normal, Vector2 textureCoordinate, float light) { …
15 c#  xna  lighting  raycasting 

1
为XNA创建3D地图?
有谁知道使用XNA而不使用任何引擎但不限于外部应用程序(如Tiled for 2D maps)的不错的3D地图教程(如何导入和使用地图)? 我在这里做了搜索搜索,但没有找到任何有关xna 3d地图的信息,只有2d。 PS:我正在寻找可以免费在线阅读的材料。 除了Ricket所做的贡献之外,我非常想知道与此主题相关的任何其他内容。 最好的祝福。
15 3d  xna  c#  maps 

3
寻找有关游戏中攻击和攻击类型的编程设计的一些见解
因此,我开始向我们的2D空间RTS引入攻击(这是在Unity中进行的,因此它是组件驱动的)。最初,它很简单,例如“范围内的敌人,造成的伤害”。但是,将有多种“类型”的武器/攻击与其特定的船只或结构相关联。以及其他仅涉及原始损坏的因素,例如损坏类型,以及将来可能的惯性。 你们每个单位和结构类型都有自己的攻击类型吗?意思是您为每个单元/结构制作一个脚本,以定义其攻击类型,伤害,效果,射程,粒子,精灵...等,并将其作为组件附加? 或制作一个定义攻击类型的脚本,一个与该攻击类型关联的弹丸类型的脚本...等等,然后扩展它们并为每个单位修改它们,将每个脚本附加到单位/结构上。 我希望我有一定的道理,我已经考虑了很长时间了,我不确定是要解决问题,还是只是自己解决问题并陷入困境。 如果您的游戏可能具有多种攻击类型,并且可能不受限于特定的单元/结构,那么您如何设计在组件驱动的设计环境中将框架与特定的单元/结构绑定在一起的框架? 如果还不清楚,请告诉我。 编辑:很好的答案,谢谢。 扩展问题: 答案似乎有所不同,从“每个对象都可以拥有自己的攻击脚本”到“将攻击类型作为自己的脚本并将其分配给每个对象以提供更可重用的解决方案”。可以说我有一次“冲击波”攻击,它以一定速度射击红色弹丸。它的伤害,射速和弹丸大小取决于发射它的单位。只是为该部队制作攻击脚本,还是尝试修改“爆炸攻击”以适合每个想要使用它的部队的目的,这更好吗?
14 c#  unity  game-design 



1
如何在游戏中实现a弹枪?
手枪和机关枪很容易-您可以让子弹沿特定方向飞行,所以我已经实现了。另一方面,弹枪会对特定区域(如圆锥形区域)中的任何物体造成损坏。我应该如何实施?我在这里有一些建议,但是我可以使用一些建议: 将一颗子弹分裂成多个小子弹,它们自身造成的伤害较小,但以相似的方向飞行(更近的敌人更有可能被击中) 不使用子弹-仅具有have弹枪的粒子效果,并根据位置/方向等计算敌人受到的伤害。 有一个大的看不见的子弹(例如一个立方体)会损坏东西,还有一个粒子效果,使它看起来像是shot弹枪。 提前致谢!
14 c#  unity 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.