目前,当我添加新项目时,我将代码自动滚动到结尾的唯一方法如下:
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)
这是接受的做法吗?我是否需要等待一段随机的时间?
我试图弄清楚如何将一些解析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) System.Environment.TickCount的WinRT替代品是什么?
我正在制作一个客户端服务器MMO风格的游戏.到目前为止,我已经设置了框架,以便服务器和客户端相互交互以提供状态更新.服务器维护游戏状态并定期计算下一个状态,然后每隔一段时间(每n毫秒)将其发送给所有客户端.用户可以在客户端查看和响应该新状态.然后将这些操作发送回服务器进行处理并发送出去进行下一次更新.
显而易见的问题是这些更新需要时间在服务器和客户端之间传输.如果客户端的行为由该更新已经得到回服务器的时间来攻击敌人,这是非常有可能的服务器已经进行了比赛状态足够远,敌人是在同一地点不再,并超出范围.
为了解决这个问题,我一直试图找到一个好的解决方案.我看了下面的内容,它帮助了一些,但并非完全:Mutli Player Game同步.我已经得出结论,我不仅可以传输游戏的当前状态,而且可以传输其他信息,例如方向(或AI运动的目标位置)和速度.从此,我的是需要"猜"的东西,在客户端部分,实际状态是通过什么进行游戏状态n毫秒到未来(如服务器看到它).
问题是确定进展状态的时间量,因为它将取决于服务器和客户端之间的滞后时间,这可能会有很大差异.此外,我应该将游戏状态推进到客户端查看时的状态(即只考虑更新到达客户端所花费的时间),还是应该将其推进到足够远以便在发送响应时回到服务器,到那时它将是正确的状态(来往于旅程的帐户).
有什么建议?
重申:
1)计算发送和接收之间的时间量的最佳方法是什么?
2)我是否应该将客户端状态推进到足以计入整个往返时间,或者只是将数据从服务器提供给客户端所需的时间?
编辑:到目前为止我想出了什么
由于我已经有许多数据包在客户端和服务器之间来回传递,我不想在必要时添加到该流量.目前,客户端向服务器发送状态更新数据包(UDP)〜150毫秒(仅在某些内容发生变化时),然后由服务器接收和处理这些数据包.目前,服务器不会对这些数据包发送任何响应.
首先,我将让客户尝试估计他们的滞后时间.我将它默认为50至100毫秒.我建议大约每2秒(每个客户端)服务器将立即响应其中一个数据包,在特殊的定时更新数据包中发回数据包索引.如果客户端收到定时数据包,它将使用索引来计算此数据包发送的时间,然后使用数据包之间的时间作为新的延迟时间.
这应该使客户合理地保持最新的延迟,同时避免过多的网络流量.
声音可以接受,还是有更好的方法?这仍然没有回答问题二.
我创建了一些代码,通过电子邮件将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) 假设我在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)
那么,我如何获得所谓的函数的名称呢?
我有一个客户端服务器的情况,客户端打开到服务器的TCP套接字,有时很长一段时间将通过它们之间没有数据发送.我遇到了一个问题,服务器试图将数据发送到客户端,它似乎成功,但客户端从未收到它,几分钟后,它看起来像客户端断开连接.
我是否需要每隔一段时间发送一些保持活动包?
编辑:要注意,这是在同一台计算机上的同行.计算机位于NAT后面,可以转发用于此计算机的一系列端口.与服务器连接的客户端通过DNS打开连接.即它使用mydomain.net和端口进行连接.
我正在尝试创建一个程序,可以在使命召唤的游戏视频中找到人物.我已经从这个视频中编制了一个约2200个单独图像的列表,其中包含人物或不包含人物.然后我尝试训练神经网络来分辨两组图像之间的差异.
然后,我将每个视频帧分成几百个网格矩形,然后用我的ANN检查每个视频帧.矩形重叠以尝试捕获网格之间的数字,但这似乎不能很好地工作.所以我有几个问题:
神经网络是否可行?我已经读过它们与其他机器学习算法相比非常快,最终我计划将它与实时视频一起使用,速度非常重要.
搜索图像框架中的数字以在ANN上进行测试的最佳方法是什么?我觉得我这样做的方式并不是很好.它绝对不是非常快或准确.每帧图像960 x 540大约需要一秒钟,并且精度较差.
我遇到的另一个问题是构建特征向量以用作ANN的输入的最佳方法.目前,我只是将所有输入图像缩小到25 x 50像素,并创建一个包含每个像素强度的特征向量.这是一个非常大的矢量(1250浮点数).有哪些更好的方法来构建特征向量?
有关我在此处所做的更详细的解释:CodAI:计算机视觉
编辑:我想要更多细节.计算要素的最佳方法是什么.我需要能够识别出许多不同位置的人物形象.我是否需要创建单独的分类器来识别直立,蹲伏和俯卧之间的区别?
c++ opencv pattern-recognition machine-learning neural-network
我已经制作了一个可以连接到我在服务器上运行的程序的应用程序,但它似乎只能使用WiFi.当我尝试使用3G时,它不会建立连接.为了使用3G,我必须打开或设置一些特殊的东西吗?
我正在尝试将日志调用直接指向不同位置的不同输出级别.我希望所有日志始终转到文件,只需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)
是否可以根据不同的级别将相同的日志消息定向到两个不同的位置?