小编Nic*_*nks的帖子

滚动到ScrollViewer结尾的最佳方式

目前,当我添加新项目时,我将代码自动滚动到结尾的唯一方法如下:

XAML:

<ScrollViewer x:Name="chatViewScroller" HorizontalAlignment="Left" Height="201" Margin="0,32,0,0" VerticalAlignment="Top" Width="475" Background="#7FFFFFFF">
    <StackPanel x:Name="chatViewContent" />
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

码:

                chatViewContent.Children.Add(
                    new TextBlock() {
                        Text = text,
                        FontSize = 18,
                        TextWrapping = Windows.UI.Xaml.TextWrapping.Wrap,
                        Margin = new Thickness(10, 3, 10, 0),
                        Foreground = new Windows.UI.Xaml.Media.SolidColorBrush(
                            isServerMessage ? Windows.UI.Colors.Purple : Windows.UI.Colors.Black)
                    });
                await Task.Delay(10);
                chatViewScroller.ScrollToVerticalOffset(chatViewScroller.ScrollableHeight);
Run Code Online (Sandbox Code Playgroud)

这是接受的做法吗?我是否需要等待一段随机的时间?

xaml scroll windows-runtime

14
推荐指数
3
解决办法
2万
查看次数

如何使用WinRT打开打包文件

我试图弄清楚如何将一些解析xml文件的.Net代码移植到WinRT.到目前为止,借助给定的System.Uri无法转换为Windows.Foundation.Uri,我有以下代码.在我创建Uri之后,我立即陷入困境:

    static readonly Uri ResourcesBase = new Uri(@"ms-resource://MyAssembly/"); 
    public override async void Load()
    {
        Uri uri = new Uri(ResourcesBase, filePath); // filePath = "Data//world.xml";
        XmlLoadSettings settings = new XmlLoadSettings() { ValidateOnParse = false };

        XmlDocument xmlDoc = await XmlDocument.LoadFromUriAsync(uri, settings);

        foreach (IXmlNode xmlNode in xmlDoc.ChildNodes)
        {
            ProcessNode(xmlNode);
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我尝试调用XmlDocument.LoadFromUriAsyn(uri)时,我得到一个未处理的异常:

用户代码未处理ArgumentException - 值不在预期范围内.

有人觉得WinRT的一切都要难10倍吗?

编辑:

我已经尝试了以下所有字符串,并得到完全相同的错误:

  Uri uri = new Uri("ms-resource://MyAssembly//" + filePath);
  Uri uri = new Uri("ms-resource://MyAssembly/" + filePath);
  Uri uri = new Uri("d:\\projects\\crystal\\" + filePath); // …
Run Code Online (Sandbox Code Playgroud)

c# xml uri file windows-runtime

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

WinRT替换System.Environment.TickCount

System.Environment.TickCount的WinRT替代品是什么?

c# timer windows-8 windows-runtime

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

同步客户端 - 服务器游戏状态

我正在制作一个客户端服务器MMO风格的游戏.到目前为止,我已经设置了框架,以便服务器和客户端相互交互以提供状态更新.服务器维护游戏状态并定期计算下一个状态,然后每隔一段时间(每n毫秒)将其发送给所有客户端.用户可以在客户端查看和响应该新状态.然后将这些操作发送回服务器进行处理并发送出去进行下一次更新.

显而易见的问题是这些更新需要时间在服务器和客户端之间传输.如果客户端的行为由该更新已经得到回服务器的时间来攻击敌人,这是非常有可能的服务器已经进行了比赛状态足够远,敌人是在同一地点不再,并超出范围.

为了解决这个问题,我一直试图找到一个好的解决方案.我看了下面的内容,它帮助了一些,但并非完全:Mutli Player Game同步.我已经得出结论,我不仅可以传输游戏的当前状态,而且可以传输其他信息,例如方向(或AI运动的目标位置)和速度.从此,我的是需要"猜"的东西,在客户端部分,实际状态是通过什么进行游戏状态n毫秒到未来(如服务器看到它).

问题是确定进展状态的时间量,因为它将取决于服务器和客户端之间的滞后时间,这可能会有很大差异.此外,我应该将游戏状态推进到客户端查看时的状态(即只考虑更新到达客户端所花费的时间),还是应该将其推进到足够远以便在发送响应时回到服务器,到那时它将是正确的状态(来往于旅程的帐户).

有什么建议?

重申:

1)计算发送和接收之间的时间量的最佳方法是什么?

2)我是否应该将客户端状态推进到足以计入整个往返时间,或者只是将数据从服务器提供给客户端所需的时间?

编辑:到目前为止我想出了什么

由于我已经有许多数据包在客户端和服务器之间来回传递,我不想在必要时添加到该流量.目前,客户端向服务器发送状态更新数据包(UDP)〜150毫秒(仅在某些内容发生变化时),然后由服务器接收和处理这些数据包.目前,服务器不会对这些数据包发送任何响应.

首先,我将让客户尝试估计他们的滞后时间.我将它默认为50至100毫秒.我建议大约每2秒(每个客户端)服务器将立即响应其中一个数据包,在特殊的定时更新数据包中发回数据包索引.如果客户端收到定时数据包,它将使用索引来计算此数据包发送的时间,然后使用数据包之间的时间作为新的延迟时间.

这应该使客户合理地保持最新的延迟,同时避免过多的网络流量.

声音可以接受,还是有更好的方法?这仍然没有回答问题二.

java synchronization udp client-server

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

如何发送带有链接的电子邮件以打开Android应用程序

我创建了一些代码,通过电子邮件将html电子邮件发送到给定地址.该电子邮件包含以下链接:

<a href="crystalcloud://android?4567">Click to validate account</a>
Run Code Online (Sandbox Code Playgroud)

我通过将其发送到我的Gmail帐户来测试它.出于某种原因,当我收到电子邮件时,它不会让我点击链接.如果我将此链接放在网页中,我的应用程序就可以正常启动.

有什么特别的东西要让这个链接显示在电子邮件中,或者gmail只是阻止这些链接吗?无论如何在gmail中解决这个问题?

编辑:添加了我的代码片段

代码发送链接:

    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(emailAddress));
    message.setSubject("New Crystal Cloud User");
    message.setContent("Thank you for creating a new Crystal Cloud account!<br><a href=\"crystalcloud://android?4567">Click to validate account</a>", "text/html; charset=utf-8");
    Transport transport = session.getTransport("smtp");
    transport.connect(host, from, pass);
    transport.sendMessage(message, message.getAllRecipients());
    transport.close();
Run Code Online (Sandbox Code Playgroud)

用于响应意图的Android代码:

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="crystalcloud" />
        </intent-filter>
Run Code Online (Sandbox Code Playgroud)

java gmail android android-intent

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

调用ac函数时获取lua命令

假设我在Lua中将许多不同的函数名注册到C中的相同函数.现在,每次调用我的C函数时,有没有办法确定调用了哪个函数名?

例如:

int runCommand(lua_State *lua)
{
  const char *name = // getFunctionName(lua) ? how would I do this part
  for(int i = 0; i < functions.size; i++)
    if(functions[i].name == name)
      functions[i].Call()
}

int main()
{
  ...

  lua_register(lua, "delay", runCommand);
  lua_register(lua, "execute", runCommand);
  lua_register(lua, "loadPlugin", runCommand);
  lua_register(lua, "loadModule", runCommand);
  lua_register(lua, "delay", runCommand);
}
Run Code Online (Sandbox Code Playgroud)

那么,我如何获得所谓的函数的名称呢?

c c++ lua

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

如果没有数据发送,TCP套接字会在一段时间后自动关闭吗?

我有一个客户端服务器的情况,客户端打开到服务器的TCP套接字,有时很长一段时间将通过它们之间没有数据发送.我遇到了一个问题,服务器试图将数据发送到客户端,它似乎成功,但客户端从未收到它,几分钟后,它看起来像客户端断开连接.

我是否需要每隔一段时间发送一些保持活动包?

编辑:要注意,这是在同一台计算机上的同行.计算机位于NAT后面,可以转发用于此计算机的一系列端口.与服务器连接的客户端通过DNS打开连接.即它使用mydomain.net和端口进行连接.

c# sockets timeout tcp disconnect

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

如何使用OpenCV在COD中搜索玩家模型

我正在尝试创建一个程序,可以在使命召唤的游戏视频中找到人物.我已经从这个视频中编制了一个约2200个单独图像的列表,其中包含人物或不包含人物.然后我尝试训练神经网络来分辨两组图像之间的差异.

然后,我将每个视频帧分成几百个网格矩形,然后用我的ANN检查每个视频帧.矩形重叠以尝试捕获网格之间的数字,但这似乎不能很好地工作.所以我有几个问题:

  1. 神经网络是否可行?我已经读过它们与其他机器学习算法相比非常快,最终我计划将它与实时视频一起使用,速度非常重要.

  2. 搜索图像框架中的数字以在ANN上进行测试的最佳方法是什么?我觉得我这样做的方式并不是很好.它绝对不是非常快或准确.每帧图像960 x 540大约需要一秒钟,并且精度较差.

  3. 我遇到的另一个问题是构建特征向量以用作ANN的输入的最佳方法.目前,我只是将所有输入图像缩小到25 x 50像素,并创建一个包含每个像素强度的特征向量.这是一个非常大的矢量(1250浮点数).有哪些更好的方法来构建特征向量?

有关我在此处所做的更详细的解释:CodAI:计算机视觉

编辑:我想要更多细节.计算要素的最佳方法是什么.我需要能够识别出许多不同位置的人物形象.我是否需要创建单独的分类器来识别直立,蹲伏和俯卧之间的区别?

c++ opencv pattern-recognition machine-learning neural-network

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

如何在我的Android应用程序中使用3G互联网连接?

我已经制作了一个可以连接到我在服务器上运行的程序的应用程序,但它似乎只能使用WiFi.当我尝试使用3G时,它不会建立连接.为了使用3G,我必须打开或设置一些特殊的东西吗?

port android 3g

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

如何使用logback.groovy文件将TRACE级别记录到文件,将INFO记录到控制台

我正在尝试将日志调用直接指向不同位置的不同输出级别.我希望所有日志始终转到文件,只需INFO及以上即可转到控制台.这不可能吗?我有以下,它不起作用.两者总是一样的:

def bySecond = timestamp("yyyyMMdd'.'HHmmss", context.birthTime)

appender("STDOUT", ConsoleAppender) {
  encoder(PatternLayoutEncoder) {
    pattern = "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"
  }
}

appender("FILE", FileAppender) {
  file = "./logs/log-${bySecond}.log"
  encoder(PatternLayoutEncoder) {
    pattern = "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"
  }
}

logger("com.crystal", WARN, ["STDOUT"])
logger("com.crystal", TRACE, ["FILE"])

root(TRACE)

scan()
Run Code Online (Sandbox Code Playgroud)

是否可以根据不同的级别将相同的日志消息定向到两个不同的位置?

console groovy logging file logback

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