小编DrL*_*zer的帖子

带有Farseer Physics的C#XNA中的OnCollision事件处理程序问题

我现在在我的游戏中有这个工作正常(ish),但我在数学方面并不出色.当两个原发性物质发生碰撞时,如果施加于原色的力超过设定的阈值,我希望它们粉碎成微小的碎片.我目前的碰撞事件处理程序看起来像这样.

public bool Collision(Fixture fixtureA, Fixture fixtureB, Manifold manifold) 
{ 
   Vector2 position = manifold.LocalNormal; 
   float angle = (float)Math.Atan2(position.Y, position.X); 
   Vector2 force = Vector2.Zero; 
   if (angle < 0) 
     force = new Vector2((float)(Math.Cos(angle) * fixtureA.Body.LinearVelocity.X), (float)Math.Sin(MathHelper.TwoPi + angle) * fixtureA.Body.LinearVelocity.Y); 
   else 
     force = new Vector2((float)(Math.Cos(angle) * fixtureA.Body.LinearVelocity.X), (float)Math.Sin(MathHelper.TwoPi - angle) * fixtureA.Body.LinearVelocity.Y); 
   double XForce = Math.Sqrt(force.X * force.X); 
   double YForce = Math.Sqrt(force.Y * force.Y); 
   double totalForce = XForce + YForce; 
   if ((Breakable) && (totalForce > BreakForce)) 
   { 
      Breakable = false; 
      Active = …
Run Code Online (Sandbox Code Playgroud)

c# xna farseer

6
推荐指数
2
解决办法
3752
查看次数

你如何在 Flutter 上使用谷歌地图设置活动标记

我的 Flutter 应用中有一个 GoogleMap。当页面加载时,它会调用 API 并获取我用来创建标记列表的地理位置列表。

我的 GoogleMap 使用此标记列表并且它们显示得很好,但是,我希望其中一个处于活动状态。我在 API 文档中看不到任何内容表明这是可能的。我怎样才能做到这一点?

google-maps dart flutter

6
推荐指数
1
解决办法
1633
查看次数

如何反复判断属性是否具有公共Setter

我将一个对象模型保存到XML但是当我加载它时,我在尝试使用PropertyInfo.SetValue()时会遇到异常,因为该属性没有setter只是一个getter.

我想要么不保存只有getter的属性或者在加载时弄清楚它是否适合我尝试设置值.

任何人都知道如何做到这一点

干杯

c# reflection

5
推荐指数
1
解决办法
977
查看次数

使用"as"并期望返回null

例如.假设我们在表单上有一个stackpanel.它充满了网格和标签.我想循环遍历所有网格并对它们进行一些操作,但保留Lables完整.目前我正是这样做的.

foreach(UIElement element in m_stacker.Children)
{
    Grid block = element as Grid;
    if(block != null)
    {
      //apply changes here
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我使用的事实是"as"如果无法转换为所需类型则返回null.这是一件好事还是有更好的解决方案来解决这个问题?

c#

5
推荐指数
2
解决办法
179
查看次数

将NUnit与Visual C#Express 2010和.net 4一起使用

我已经浏览了SO和网络很长一段时间了,我正在努力寻找有关如何为单元测试设置C#项目的任何信息.

我开始在NUnit主站点http://www.nunit.org上,下载包含一个用于运行单元测试的GUI,听起来很奇妙.只有当我尝试将GUI指向我的.exe时,我才会立即收到错误消息,说明NUnit不适合使用此框架运行.这让我觉得NUnit可能无法使用.net 4.显然它确实如此,很多人在线似乎表明他们正在使用.net 4运行NUnit单元测试....当然他们似乎没有继续说怎么样.

点击谷歌我发现似乎是NUnit开发的核心成员之一是一个名叫查理普尔的家伙.我发现他有一个启动板:https://launchpad.net/nunit-xtp.版本号比主NUnit站点上的版本号更新.然而,当我下载项目时,它只是没有GUI的NUnit框架的代码库和解决方案.有一个命令行运行器,但我真的需要一些视觉.

我们确实将jetbrains teamcity作为BMS,所以我现在正试图以某种方式将NUnit集成到构建管道中.如果有人能够阐明他们如何让NUnit使用c#的快速版本,这将是非常有用的.

编辑:我现在让teamcity BMS运行测试,因此该部分不再是问题.但是,每次等待构建只是为了找到NullException错误或某些东西并没有真正削减它.我必须让GUI运行器工作.我发现这个问题NUnit没有运行Visual Studio 2010代码,但即使这样也没有为我修复它.该错误现已更新为读取版本v4.0.30319,因此配置更改已生效.虽然相同的旧错误:(

c# nunit visual-studio-2010

5
推荐指数
1
解决办法
4692
查看次数

无法在C#中使用Reflection强制转换列表

我目前在C#中使用Reflection有很多麻烦.我正在编写的应用程序允许用户使用配置文件修改某些对象的属性.我希望能够将对象模型(用户项目)保存到XML.下面的函数在foreach循环的中间调用,循环遍历包含项目中所有其他对象的对象列表.这个想法是,它以递归方式将对象模型转换为XML.

不要担心调用"虚幻",只要它们包含某些单词,就会略微修改对象的名称.

      private void ReflectToXML(object anObject, XmlElement parentElement)
  {
     Type aType = anObject.GetType();
     XmlElement anXmlElement = m_xml.CreateElement(Unreal(aType.Name));
     parentElement.AppendChild(anXmlElement);
     PropertyInfo[] pinfos = aType.GetProperties();
     //loop through this objects public attributes
     foreach (PropertyInfo aInfo in pinfos)
     {
        //if the attribute is a list
        Type propertyType = aInfo.PropertyType;
        if ((propertyType.IsGenericType)&&(propertyType.GetGenericTypeDefinition() == typeof(List<>)))
        {
           List<object> listObjects = (aInfo.GetValue(anObject,null) as List<object>);
           foreach (object aListObject in listObjects)
           {
              ReflectToXML(aListObject, anXmlElement);
           }
        }
        //attribute is not a list
        else
           anXmlElement.SetAttribute(aInfo.Name, "");
     }
  }
Run Code Online (Sandbox Code Playgroud)

如果对象属性只是字符串,那么应该将它们作为XML中的字符串属性写出来.如果一个对象属性是列表,那么它应该递归地调用"ReflectToXML"作为参数传递自己,从而创建我需要的嵌套结构,它很好地反映了内存中的对象模型.

我遇到的问题是线路

List<object> listObjects = …
Run Code Online (Sandbox Code Playgroud)

.net c# xml reflection

4
推荐指数
1
解决办法
2847
查看次数

如何在WPF中呈现之前获取标签宽度

棘手的解释这一点.我有一个自定义的属性网格.左侧列具有属性标签.有时取决于属性,我想要一个小的elipsis按钮向用户显示他们可以启动对话框.我希望按钮垂直内嵌,使UI看起来整洁.标签的宽度取决于属性"onEnterPressed"或"upLink"的名称.

如果我单独添加elipses按钮并使用这样的边距...

elipsisButton.Margin = new Thickness(135, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)

左边的135正好是我要放置按钮的位置.

我希望能够做类似的事情

Label newLabel = new System.Windows.Controls.Label();
newLabel.Content = anInfo;
aPanel.Children.Add(newLabel);
elipsisButton.Margin = new Thickness(135 - newLabel.Width, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)

然而,看起来,标签在屏幕上呈现之前不会获得宽度,因此我无法找到添加到我的elipsis按钮的尺寸边距.有任何想法吗?

c# wpf user-interface

4
推荐指数
1
解决办法
4776
查看次数

在已经正常运行的应用程序中撤消WPF/C#中的重做

我已经就如何实现这个问题的标题做了一些研究.我正在开发的应用程序已经开发了几年左右(虽然进展缓慢,但你们都知道它在现实世界中的表现如何).现在要求我放入Undo/Redo多级功能.说"在开始之前你应该考虑过这个问题"已经有点晚了......好吧,我们确实考虑过这个问题 - 而我们对它没有做任何事情,而现在它就是这样.从搜索SO(和外部链接)我可以看到两种最常见的方法似乎是......

命令模式

纪念品模式

命令模式看起来像是一项很多工作,我只能想象它在这个过程中会抛出数千个错误,所以我真的不喜欢那个.

Memento模式实际上与我脑子里的模式很像.我在想是否有某种方法可以快速拍摄当前在内存中的对象模型的快照,然后我就可以将它存储在某个地方(也可能存储在内存中,也可能存储在文件中).这似乎是一个好主意,我能看到的唯一问题是它如何与我们已经编写的内容集成.您可以看到应用程序,因为它在大面板(可能是数百个)中绘制图像,然后允许用户通过UI或通过自定义构建的属性网格来操作它们.整个应用程序与一个大的观察者模式相关联.第二个任何变化,事件被触发,所有需要更新的事情都会发生.这很好,但我不能帮助以为如果用户在属性网格上的文本域中输入文本,在UI赶上之前会有一些延迟(似乎每次用户按下一个键时,都会添加一个新的快照到撤消列表).所以我的问题是......

  • 你知道可能有效的Memento模式的任何好的替代品吗?
  • 你认为Memento模式适合这里还是会减慢应用程序的速度.
  • 如果Memento模式是要走的路,那么制作对象模型快照的最有效方法是什么(我正在考虑序列化它或什么的)
  • 快照应该存储在内存中还是可以将它们放入文件中?

如果你有这么远,那么请你好好阅读.您的任何输入都将非常有价值,非常感谢.

.net c# wpf design-patterns undo-redo

4
推荐指数
1
解决办法
3795
查看次数

C#2010 Express - 缺少指针

我的指针在哪里消失了:'(

在工具箱中每个类别顶部的设计器中,我有"边框"而不是"指针"了.我不知道我是如何管理这个或如何设置它.我可以通过找到我想在xaml中编辑的控件来解决这个问题,但至少可以说是令人沮丧的.有人知道如何设置它,或者我做了什么来搞砸它?

c# visual-studio-2010

3
推荐指数
1
解决办法
357
查看次数

c#wpf comboBox当我键入第一个字母时,选择列表中的项目

我有一个WPF组合框.我花了很长时间才弄清楚如何使文本可编辑,以便当用户输入文本和用户在列表中选择一个选项时,某种类型的合理事件会触发.

我在这里使用这种方法(非常底部) http://social.msdn.microsoft.com/Forums/en/wpf/thread/13c6dfad-4062-41b9-85d8-0d5f23dd349b

但现在我有一个问题 - 如果我在comboBox中有一个选项,例如文本"Apple",我希望在字段中键入"Apricot",只要我输入字母A,它就会从列表中选择Apple.它在A之后留下了插入符号,所以我可以继续编写Apricot.然而,由于事情听取组合框的方式,它至关重要,我可以防止这种行为,但不知道如何.

任何帮助一如既往的赞赏.

c# wpf combobox

2
推荐指数
1
解决办法
2688
查看次数

.net 1.1是否支持64位操作系统?

如果我需要对用c#vast编写的现有程序进行更改?

.net c# 64-bit visual-studio

1
推荐指数
1
解决办法
391
查看次数

最小化WPF中的窗口位置

我试图将自定义对话框的位置保存到用户注册表,以便当他们重新加载相同的对话框时,它会显示在他们移动的相同位置或将其重新调整为以前.我正在保存窗口X位置Y位置宽度和高度.除了对话框最小化时,一切正常.如果对话框最小化并且用户右键单击任务栏上的对话框表示(Windows 7),则可以单击"关闭此窗口".奇怪的是,数字-32030作为X和Y位置保存在注册表中,但宽度和高度得到正确保存.知道这个号码来自何处以及在这种情况下该怎么办thx

c# wpf

1
推荐指数
1
解决办法
1678
查看次数

将视频上传功能添加到网站

我很快就会开始一个新项目.关于网站类型等的详细信息并不重要,但可以将其视为类似于facebook或linkedin的网站,其中用户具有配置文件等.

一个重要的功能是视频上传和播放.为了让我的项目获得成功,我最初会有大约10,000名用户,至少要在这个网站上有个人资料,每个用户都需要上传20个短视频.如果一切顺利,项目将进一步推出,用户数量可能会更大.

这里让我担心的是服务器带宽的成本,我希望尽可能少地保留它.这与视频上传功能的"从头开始"appraoch的困难相结合使我认为最好使用第三方工具.但我有一些要求:

  • 用户可以将视频上传为"私有",这样每个人都无法查看视频.
  • 然后可以与其他用户共享这些私人视频.
  • 视频可以嵌入用户个人资料页面.
  • 用户不应该能够关注其他用户个人资料中嵌入视频的链接,然后通过第三方视频提供商网站与他们联系.

我知道这些要求非常具体.任何你必须解决我的问题的答案将不胜感激.

如果第三方视频上传提供商使用"高级"帐户来删除一些限制......这很好,只要该服务的成本不会超过仅支付带宽的成本.

video upload web

1
推荐指数
1
解决办法
8313
查看次数