小编oma*_*ase的帖子

基于Web的游戏引擎 - 请求输入

我正在创建一个基于网络的在线游戏,我正试图找到最适合游戏前端框架的游戏.游戏的后端目前正在使用asp.net mvc 2.鉴于我可以采取控制器操作并将其转换为WCF服务操作,后端的选择不应该影响我的前端选项.

有一件事是肯定的,它确实需要在浏览器中播放.作为这个过程的一部分,我已经对HTML 5-only前端做了一些研究,我可能会朝着这个方向努力,但我有一些担忧:

  1. 假设这个游戏明年这个时候完成了,那么当前的HTML 5采用水平会有什么样的困难?具体来说,我担心Firefox 3.6和IE 7/8仍然拥有庞大的安装基础.我已经看过Chrome Frame来解决IE问题,但我不确定是否存在缺点,我不知道其中任何一个(除了安装要求).

  2. 我习惯用一个很好的IDE做C#,并提供有关代码编译和智能感知的符号名称的实时信息.我是否会遇到Javascript问题,我的代码变得越来越难以管理?Javascript唯一引擎为我的用户解决的可访问性问题对我来说比方便更重要,但它当然也不能无法管理.

  3. 市场上的HTML 5引擎现在已经足够成熟,可以信赖我的时间投资吗?我是否很有可能采用一年后会失修的框架?在我看过的引擎中,似乎都没有真正的社区支持,我错了吗?那里有其他人吗?

这是我迄今为止找到的那些:

有没有人知道这些社区的任何信息,或者有任何理由相信这些信息能够在未来几年内得到很好的维护或可用吗?有谁知道另外一个框架?ImpatJS拥有最令人印象深刻的演示,它也是唯一一个不免费的演示.

感谢您提供任何帮助/建议.我只是担心我会选择一个令我后悔的前端,而且我不想在4到5个月后从头开始.

这是一款2D浏览器游戏.它现在不是针对移动设备,但它会在首次推出后立即转移到移动设备上.一个希望是,如果我使用HTML 5,它将适用于移动设备.我可能不得不调整它的显示尺寸,但如果我不必将它移植到移动设备上,那将是一个明确的优点.

javascript html5 game-engine

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

WCF DataContract排除DataMembers在派生类中被序列化

我有一个带有DataMember属性的基类.我还有一个带有DataMember属性的派生类.在我的WCF项目中,我将返回派生类.有没有办法阻止我的基类中的成员序列化?以下是一些示例代码:

public class BaseClass
{
    public string ShortDescription {get;set;}
    public string LongDescription {get;set;}
}

public class DerivedClass : BaseClass
{
    public List<Description> Descriptions {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

在这段代码中,我希望能够隐藏继承的成员ShortDescription和LongDescription,因为它们现在已经过时了.任何这样做的尝试都是不成功的.这是我尝试过的:

public class DerivedClass : BaseClass
{
    [DataMember]
    public List<Description> Descriptions {get;set;}

    // override the base class members
    [IgnoreDataMember]    
    public override string ShortDescription {get;set;}
    [IgnoreDataMember]
    public override string LongDescription {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

public class DerivedClass : BaseClass
{
    [DataMember]
    public List<Description> Descriptions {get;set;}

    // shadow the base class members
    [IgnoreDataMember]    
    public new string ShortDescription {get;set;} …
Run Code Online (Sandbox Code Playgroud)

wcf

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

游戏UI的Javascript框架

我在职业生涯中使用了一些javascript框架作为开发人员.即jquery,moo工具和地图集.但我所有的经验都围绕着专业的企业网站开发.我目前正在开发一款具有非常丰富UI的游戏.我正在考虑完全用javascript和HTML实现UI.所以现在我正在研究我在这方面的选择.有没有我可以使用的javascript框架,这将帮助我创建一个丰富的游戏UI?

具体来说,我需要为角色和效果制作动画.如果需要,这可以是逐帧的,甚至可以像很多flash动画一样使用.理想的框架将内置功能以获取艺术资产,也许还有XML有效负载,在解释时将描述艺术资产如何与彼此相关.对于逐帧,这将是我告诉它图像进入的顺序以及切换帧的速度的一种方式.对于铰链式框架,我可以告诉它在哪里定位手臂,腿,关节的位置,并允许我将特定的关节运动分组到动画中.最后,理想的框架将支持纸娃娃功能,我可以使用分层将一副眼镜放在角色上,或者不同的衣服或头发颜色.

我意识到我上面描述的理想很可能是不可用的,但是如果有一些东西可以让我更接近我的理想,那么jquery或其他类似的框架将帮助我做出决定.

谢谢

html javascript javascript-framework

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

通过WCF记录而不会降低速度

我们的应用程序中有一个大型进程,每月运行一次.此过程通常在大约30分钟内运行,并生成342000左右的日志事件.最近我们使用WCF将日志记录更新为集中模型,现在性能有问题.以前的解决方案将在大约30分钟内完成,而新的日志记录现在需要3到4个小时.看起来问题是因为应用程序在执行继续之前实际上正在等待WCF请求完成.WCF方法已经配置为IsOneWay,我将客户端的调用包装到另一个线程中的WCF方法,以尝试防止此类问题,但它似乎没有工作.我已经考虑过使用异步WCF调用,但在我尝试其他东西之前想过我会问这里是否有更好的方法来处理它.

c# wcf logging

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

正则表达式匹配字符串中任意位置的一定数量的数字

我正在尝试使用 Angular 的 ng-pattern 属性来强制输入框中的文本与特定的正则表达式匹配。我这样做是为了表单验证。我使用它的输入是电话字段。电话字段可以接受 10 位数的电话号码,但我不想要求用户使用特定的格式,除非它必须在某处包含 10 位数的号码。所以这些都是有效的。

  • 555-555-5555
  • (555) 555-5555

在后端,我只需删除所有格式并存储原始数字。在过去,我所做的就是删除所有非数字字符,然后确保长度== 10。这很简单,只需几行代码即可完成,但它是正则表达式可以处理的吗?这不是我曾经尝试过用正则表达式来做的事情。我不想支持特定格式,因为我不在乎他们是否意外输入了额外的空格,或者他们是否想输入这样的电话号码:55-55-55-55-55。这对我来说并不重要,我只是希望正则表达式能够匹配字符串中是否有 10 位数字且不再有其他数字。

感谢各位的帮助!

regex angularjs

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

CSS文本底部边距被忽略

好的,我希望这不是一个简单的疏忽,但我已经在这工作了几个小时!

我正在使用的页面上有一个相当复杂的HTML/CSS结构.我在页面的最底部有一个文本位于底部边距为10px的div中.这个div在另一个底部边缘为10px的div中;.该div在链上的其他div中直到<body>.

由于某种原因,文本对接在div的底部,它在里面.我为人们创造了一个极简主义的复制品.它确实重现了这个问题,我只是希望我没有删除任何其他有助于解决问题的问题.

我确实让它在最新的镀铬处工作,高度为100%; 在那里的某个地方(我不记得现在在哪里)但它没有解决firefox中的问题,即.这两种浏览器都具有奇怪的css行为,它们最初以正确的底部边距大小显示,但立即向下跳回以使文本再次没有底部边距.这就像一个小小的昙花一现.

哦,也在我的repro html即没有显示任何居中(至少ie9).我希望这不会成为问题.我当然可以轻松地解决这个问题.

在chrome中,如果检查元素,它会突出显示蓝色的文本div,蓝色边界框显示div超出当前显示的位置.

这是极简主义的例子:http://www.del337ed.com/repro.html

我感谢大家的意见/帮助.

html css

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

Windows 7将CTRL + j映射到向下箭头键

我一直在寻找一种将键组合(CTRL+ something)映射到方向键(例如向下或向上)的方法。

我非常希望在Visual Studio中能够按CTRL+ j并使光标向下移动一行。我讨厌不得不将手从本行上移下来,以进行诸如智能感知之类的事情,甚至只是在上下行之间导航。

有人对此有解决方案吗?我可以使用仅Visual Studio的解决方案,但是可以在OS级别上运行的东西是理想的,因为这种导航在任何编辑器窗口中都很好,例如SQL Server Management Studio也具有intellisense。

我没有考虑任何宏热键类型的解决方案,因为它们可能与应用程序内热键冲突(例如,如果CTRL+ j已在Visual Studio中分配给某些东西)

windows keyboard keymapping

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

C#创建代表台湾日期的DateTime对象2月29日101(闰日)

我有一个不可能的时间创建一个DateTime对象,在C#中存储日期02/29/101(台湾日期)而不更改线​​程文化.

当我这样做:

DateTime date = new DateTime(2012, 2, 29, new TaiwanCalendar());
Run Code Online (Sandbox Code Playgroud)

它创建一个DateTime对象,其日期为1911年.看来这个重载是为了告诉DateTime对象你提供了一个台湾日期,而不是你想要一个台湾日期.

我可以做这个

DateTime leapDay = new DateTime(2012, 2, 29);

string date = string.Format("{0}/{1}/{2}", new TaiwanCalendar().GetYear(leapDay), new TaiwanCalendar().GetMonth(leapDay), new TaiwanCalendar().GetDayOfMonth(leapDay));
Run Code Online (Sandbox Code Playgroud)

但这是一个字符串表示,我的调用代码需要返回一个DateTime对象,这个:

DateTime leapDay = new DateTime(2012, 2, 29);

DateTime date = new DateTime(new TaiwanCalendar().GetYear(leapDay), new TaiwanCalendar().GetMonth(leapDay), new TaiwanCalendar().GetDayOfMonth(leapDay));
Run Code Online (Sandbox Code Playgroud)

不起作用(我得到一个错误说"年,月和日参数描述了一个不可表示的DateTime.").

我需要一个可以准确表示台湾日期而不改变线程文化的DateTime对象.这有效:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("zh-TW");
Thread.CurrentThread.CurrentCulture.DateTimeFormat.Calendar = new TaiwanCalendar();

DateTime date = new DateTime(2012, 2, 29);
Run Code Online (Sandbox Code Playgroud)

但是一旦我将线程文化更改回en-US,日期会自动更改,这会阻止我将其作为台湾日期返回.

有没有办法做到这一点,或者我将不得不把我的约会作为字符串传递?

c# datetime calendar

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

Github 工作流程:如何将输入选项映射到值

我为我的 Github 工作流程设置了以下输入

on:
  workflow_dispatch:
    inputs:
      environment:
        type: choice
        description: Environment
        options:
          - Development
          - QA
          - UAT
          - Production
Run Code Online (Sandbox Code Playgroud)

如果用户选择Development作为环境,我想dev在一些字符串连接中使用该单词,如果他们选择Production我想使用prod相同的目的。

以下是需要进行替换的区域的示例。

- name: Package App
  run: |
    move-file .env.$TARGET_ENVIRONMET .env
    yarn package:$TARGET_ENVIRONMENT
Run Code Online (Sandbox Code Playgroud)

在此示例中,我需要move-file命令 bemove-file .env.dev .envyarn package命令 beyarn package:dev用于开发,但我在映射Development到开发时遇到问题。我考虑设置一个变量,dev如果用户选择Development变量,但看起来唯一的变量支持是设置环境变量,而且这似乎不可能有条件地实现。

所以我不能做这样的事情

env:
  if: inputs.environment == 'Development'
    TARGET_ENVIRONMENT: 'dev'
  if: inputs.environment == 'Production'
    TARGET_ENVIRONMENT: 'prod'
Run Code Online (Sandbox Code Playgroud)

github github-actions

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

从SWF动画获取透明背景PNG?

我有一个艺术家,我正在为我做动画艺术.我需要动画中每个帧的PNG,但她最喜欢在Flash中制作动画.听起来好像为我拍摄框架对她来说很难.有谁知道一个简单的方法来做到这一点?另外请记住,如果它需要在她的最终完成,我们可以推荐它,我们只是对Flash一无所知.

她能够做我们需要的静止艺术并将它作为一个框架给我们,但由于某种原因,动画是不同的?

请记住,我们需要在后台提供完全透明支持的PNG.我们无法手动剪切这些帧.

谢谢!

flash

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

C#线程安全问题

如何使这个线程的代码安全?

public static class Converter
{
    public static string ConvertNameToNickname(string name)
    {
        if (name.Equals("John"))
        {
            return "Johnathon";
        }

        return name;
    }
}
Run Code Online (Sandbox Code Playgroud)

或者它是否已经是线程安全的,因为"name"是一个局部变量?我只是想确定如果ConvertNameToNickname被两个不同的线程调用,那么它正在评估的名称没有被其他线程踩到.

< - 编辑 - >

好吧,其中一些答案非常有用,但我仍然没有找到我想要的答案,所以让我稍微修改一下并提出同样的问题.给定一个mutable-type参数,如何使这段代码线程安全?或者甚至可能吗?如果我在整个方法体周围抛出一个锁{}(如例2所示),在我们进入lock语句块之前,是否仍然可以修改实例变量"name"?

public static class Converter
{
    public static string ConvertNameToNickname(StringBuilder name)
    {
        if (name.ToString().Equals("John"))
        {
            return "Johnathon";
        }

        return name;
    }
}
Run Code Online (Sandbox Code Playgroud)

例2:

private static readonly object _lockObject = new object();

public static class Converter
{
    public static string ConvertNameToNickname(StringBuilder name)
    {
        lock(_lockObject)
        {
            if (name.ToString().Equals("John"))
            {
                return "Johnathon";
            }

            return name; …
Run Code Online (Sandbox Code Playgroud)

c# thread-safety

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

获取另一个窗口中的按钮的句柄

使用Inspect.exe,我可以看到应用程序组件的树结构中存在一个按钮,但是我找不到找到该按钮的句柄的方法。这是控件的Inspect.exe输出:

How found:  Selected from tree...
Name:   "Options"
ControlType:    UIA_ButtonControlTypeId (0xC350)
LocalizedControlType:   "Button"
BoundingRectangle:  {l:805 t:286 r:821 b:302}
IsEnabled:  true
IsOffscreen:    false
IsKeyboardFocusable:    true
HasKeyboardFocus:   false
ProcessId:  4380
RuntimeId:  [2A.103FA.2.F6EBAC8.0]
AutomationId:   ""
ClassName:  "NetUISimpleButton"
IsControlElement:   true
IsContentElement:   false
ProviderDescription:    "[pid:4380,hwnd:0x0 Main(parent link):Unidentified Provider (unmanaged:mso.dll)]"
IsPeripheral:   [Not supported]
LiveSettingProperty:    [Not supported]
HelpText:   "Options"
FlowsFrom:  [Not supported]
OptimizeForVisualContent:   [Not supported]
Annotation.AnnotationAuthor:    [Not supported]
Annotation.AnnotationTypeId:    [Not supported]
Annotation.Author:  [Not supported]
Annotation.DateTime:    [Not supported]
Annotation.Target:  [Not supported]
Drag.DropEffect:    [Not supported]
Drag.DropEffects:   [Not supported]
Drag.GrabbedItems: …
Run Code Online (Sandbox Code Playgroud)

c# winapi

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