Questions tagged «c#»

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

3
偏向保守的随机游走
我有一个精灵,它具有Velocity和Position,它们存储为Vector2。在每个Update循环中,将速度加到该位置。 我想给精灵一个第三向量Target。可以在任何迭代中给出新的目标。我希望子画面本质上以随机行走模式移动,但是必须公开两个参数: 典型的随机游走同样有可能增加或减少到任何给定距离Target(加上切向运动的机会很小)。我必须能够偏向我的随机游走,以便尽管仍然是随机的,但子画面“决定”的方向应该更可能使其接近Target。 随机游走应该是“平稳的”-子画面不应迅速改变方向,因为对玩家而言,这看起来像是“忽悠”或“颤抖”。它应该以这种方式逐渐转向,随机移动,而平均时则逐渐靠近。 有什么好的简单方法呢?如果可能,给出答案作为Vector2 RandomWalk(Vector2 target)方法。 我已经有一个NextGaussian(mean, stdev)可用的方法,如果有帮助的话。



6
如何在XNA中处理鼠标输入?
我正在XNA中开发纸牌游戏。 OnClickXNA中是否有对象事件? 我试图让玩家点击卡时移动它们。在这个项目中,有一个Sprite类可以绘制卡片,但是我有点不知所措,因为我不知道如何使用OnClick事件或类似的东西。
13 xna  c#  input  mouse 

3
节拍检测和FFT
我正在开发一款平台游戏,其中包括带有节拍检测功能的音乐。我目前正在通过检查当前幅度何时超过历史样本来检测节拍。这不适用于振幅很稳定的摇滚等音乐流派。 因此,我进一步研究了发现使用FFT将声音分成多个频段的算法...然后我找到了Cooley-Tukey FFt算法 我唯一的问题是我对音频还很陌生,我也不知道如何使用它将信号分成多个信号。 所以我的问题是: 如何使用FFT将信号分成多个频段? 对于有兴趣的人,这也是我在c#中的算法: // C = threshold, N = size of history buffer / 1024 public void PlaceBeatMarkers(float C, int N) { List<float> instantEnergyList = new List<float>(); short[] samples = soundData.Samples; float timePerSample = 1 / (float)soundData.SampleRate; int sampleIndex = 0; int nextSamples = 1024; // …

2
播放歌曲,导致WP7在手机上崩溃,但在模拟器上不崩溃
我正在尝试在开始播放的游戏中实现歌曲,并通过XNA 4.0在Windows Phone 7上不断循环播放。在模拟器上,这可以正常工作,但是当部署到手机上时,它只是在返回主屏幕之前仅显示黑屏。这是有问题的恶意代码,将其注释掉可使该应用在手机上正常运行: // in the constructor fields private Song song; // in the LoadContent() method song = Content.Load<Song>("song"); // in the Update() method if (MediaPlayer.GameHasControl && MediaPlayer.State != MediaState.Playing) { MediaPlayer.Play(song); } 歌曲文件本身是2:53长的2.28mb .wma文件,比特率为106kbps。 再次,这在模拟器上完美运行,但根本不在手机上运行。感谢您的任何帮助,您可以提供!

1
单元测试C#/ XNA游戏项目
自从开始编程以来,我就一直从事游戏开发,但是从来没有非常认真过。我以业务应用程序开发人员的身份工作,但我在业余时间从事一些游戏的开发。 在商业世界中(在Microsft Web开发堆栈上),ASP.NET MVC变得非常流行,因为它易于对界面的工作方式进行单元测试。 我想知道一种设计模式(MVC,MVP,MVVM等)可以用来编写一款游戏,其中所有游戏逻辑都可以轻松进行单元测试。这可能或可行吗?我是在浪费时间吗,进行完整构建然后运行“集成”类型测试而不是单元测试会更好吗? 示例代码会很棒,但是写起来也很有用。 (我尝试添加一个单元测试标签,但没有必要的代表...)

4
如何处理2D游戏中的任意大图像?
题 当您拥有使用非常大图像(大于硬件可以支持的图像)的2D游戏时,该怎么办?也许对这个问题有一些有趣的解决方案,这在我之前从未发生过。 我基本上是在从事某种图形冒险游戏的制作。我的目标受众是几乎没有游戏开发(和编程)经验的人。如果您使用的是这样的应用程序,是不是更希望它在内部处理问题而不是告诉您“拆分图像”? 语境 众所周知,图形卡对其可使用的纹理大小施加了一组限制。例如,使用XNA时,取决于您选择的配置文件,最大纹理大小被限制为2048或4096像素。 通常,在2D游戏中这不会带来太大问题,因为大多数游戏都具有可以由较小的单个块(例如,图块或变形的精灵)构建的关卡。 但是,请考虑一些经典的点按式图形冒险游戏(例如Monkey Island)。图形冒险游戏中的房间通常是整体设计的,很少或没有可重复的部分,就像画家在风景上一样。或像《最终幻想7》这样的游戏使用了大型的预渲染背景。 这些房间中的一些可能会变得很大,经常跨越三个或更多屏幕宽度。现在,如果我们在现代高清游戏的背景下考虑这些背景,它们将很容易超过最大支持的纹理大小。 现在,解决此问题的明显方法是将背景分成适合需求的较小部分,并排绘制。但是,您(或您的艺术家)是否应该成为拆分所有纹理的人? 如果您使用的是高级API,它是否应该准备好应对这种情况并在内部进行纹理的拆分和组装(作为XNA的内容管道等预处理程序或在运行时进行)? 编辑 从XNA实现的角度来看,这就是我的想法。 我的2D引擎只需要Texture2D功能的很小一部分。我实际上可以将其简化为以下接口: public interface ITexture { int Height { get; } int Width { get; } void Draw(SpriteBatch spriteBatch, Vector2 position, Rectangle? source, Color color, float rotation, Vector2 origin, Vector2 scale, SpriteEffects effects, float layerDepth); } 我使用的唯一依赖Texture2D的外部方法是SpriteBatch.Draw(),因此我可以通过添加扩展方法在它们之间建立桥梁: public …
13 xna  c#  2d  graphics  textures 

7
什么是存储tilemap数据的好方法?
我正在与一些uni朋友一起开发2D平台游戏。我们基于XNA Platformer入门工具包,该工具包使用.txt文件存储切片地图。尽管这很简单,但是它在关卡设计中并没有给我们足够的控制和灵活性。例如:对于多层内容,需要多个文件,每个对象都固定在网格上,不允许旋转对象,限制字符数等。因此,我正在研究如何存储关卡数据和地图文件。 这仅涉及切片图的文件系统存储,而不涉及游戏运行时要使用的数据结构。瓦片贴图已加载到2D数组中,因此此问题与填充数组的源有关。 DB的推理:从我的角度来看,我发现使用数据库存储切片数据的数据冗余较少。具有相同特征的相同x,y位置的图块可以在各个级别之间重复使用。似乎很容易编写一种方法来从数据库中检索特定级别中使用的所有切片。 JSON / XML的推理:视觉上可编辑的文件,可以通过SVN轻松跟踪更改。但是有重复的内容。 与另一个相比,它们是否有任何缺点(加载时间,访问时间,内存等)?以及行业中常用的是什么? 当前文件如下所示: .................... .................... .................... .................... .................... .................... .................... .........GGG........ .........###........ .................... ....GGG.......GGG... ....###.......###... .................... .1................X. #################### 1-玩家起点,X级出口,。-空的空间,#-平台,G-宝石
13 xna  c#  xml 

4
您如何允许在开发的后期阶段编写网络代码?
我目前正处于编写游戏的早期阶段,最终我希望在很多方面进行改进。 我该如何跳过编写网络代码的过程,却又很容易实现,即不必为了添加游戏而重写整个游戏。 我要记住什么? 我有一个组件模式,可以将物理/碰撞检测,游戏逻辑,数据类型和动画/渲染彼此分离。 如何编写没有实现任何网络代码但可以在本地测试的客户端和服务器? 我应该在客户端中做什么,然后在服务器中做什么?我是否应该假装自己已经完成网络代码,并在服务器和客户端之间发送消息并考虑到延迟等原因,即使没有延迟也是如此? 编辑:计划成为自上而下的RPG。我在想一个简单的多人游戏,在这里为朋友托管服务器,所以作弊并不是什么大问题(谁想和作弊的朋友一起玩?)。我仍然想采用“服务器永远是正确的”方法。 编辑2:我想我正在寻找一些关于我的思维定式的指针。我应该如何处理键盘输入,动画等,而不是立即应用所有效果/更改。嗯,毕竟,我可能需要适当地阅读网络知识,这是我希望通过制作某种可以在本地工作的网络框架来摆脱的东西。

6
如何在多种颜色之间进行Color.Lerp?
我发现很难在Unity文档中找到解决方案。 Color.Lerp(Color a, Color b, float t) 是一个函数,该函数根据步骤t逐渐更改颜色,从而为其提供颜色b的最终值。 如何在多种颜色之间一个一个地变色?
12 c#  unity  color  lerp 

5
如何将Bresenham的线算法推广到浮点端点?
我正在尝试结合两件事。我正在写一个游戏,我需要确定与浮点端点在一条线上的网格正方形。 此外,我需要它包括它碰到的所有网格正方形(即不仅是布雷森纳姆的线条,而且是蓝色的线条): 有人可以向我提供有关该操作方法的任何见解吗?显而易见的解决方案是使用朴素的行算法,但是有没有更优化的东西(更快)?

3
默认情况下,如何设置应用程序在高性能GPU上运行?
如今,许多笔记本电脑都配备2个GPU-高性能的GPU和省电的GPU(功能不那么强大)。我在笔记本电脑上使用的大多数应用程序都与集成的(省电)GPU一起运行,但其中一些应用程序仍将通过高性能卡打开。我试图将要构建的应用程序默认配置为在高性能GPU上运行,但是我在任何地方都找不到有关该主题的任何信息。我希望有人能对此有所启发。我将使用NSIS安装程序分发应用程序,我想我必须将应用程序的路径添加到NVidia / ATI卡的应用程序列表中。该应用程序使用C#编程。另外,有人知道台式机的状况如何吗?如果一台PC有2个GPU,而我必须选择功能更强大的GPU,会发生什么? 米尔乔
12 c#  gpu 

6
球物理:在球静止时平滑最终的反弹
在我的小弹跳球游戏中,我遇到了另一个问题。 我的球反弹得很好,除了最后一刻即将停止。球的运动对于主体部分来说是平滑的,但是直到最后,当球落在屏幕底部时,它会突然抽动一段时间。 我能理解为什么会这样,但是我似乎无法解决。 如有任何建议,我将不胜感激。 我的更新代码是: public void Update() { // Apply gravity if we're not already on the ground if(Position.Y < GraphicsViewport.Height - Texture.Height) { Velocity += Physics.Gravity.Force; } Velocity *= Physics.Air.Resistance; Position += Velocity; if (Position.X < 0 || Position.X > GraphicsViewport.Width - Texture.Width) { // We've hit a …
12 xna  c#  physics 

2
C#创建一个简单的蛇游戏
我当时正在考虑使用C#创建蛇游戏,所以我脑子里有了想法,但出现了一些问题。 我该如何跟踪并输出在蛇头后面运行的块的正确位置? 如果蛇是由五个块组成,并且用户开始绕圈走,我如何在正确的位置打印蛇的身体? 另外,无论用户做什么,我如何创建一个在后台运行的动作,它将使蛇向前移动? 我的代码应具有什么结构?(代码设计结构) 这应该是一个控制台应用程序,因为它是我所熟悉的唯一框架。 我不是要查找完成的代码,因为我想真正了解它应该如何工作。
12 c# 

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.