我在XNA游戏中绘制了瓷砖并加载了我的角色.然而,我的角色不会移动 - 地图会移动 - 这会给它带来运动的幻觉.现在我想知道如何实际测试它们的碰撞.我的意思是,碰撞代码在哪里,我如何让所有瓷砖代表"一件大事"?
这一直困扰着我 - 当我使用下面的代码来增加每次鼠标点击的选择时:
if (m.LeftButton == ButtonState.Pressed)
currentSelection++;
然后currentSelection增加了一吨,因为这个代码在我的Update()函数中并且按照设计运行每一帧因此增加了currentSelection .您几乎没有机会快速单击和释放以防止currentSelection增加多个.
现在我的问题是我应该做什么,所以每当我点击鼠标一次,它只会增加currentSelection一次,直到我再次点击下来.
我知道如何通过调用将控件添加到画布/网格/布局canvas.Childern.Add().但是,当我想在文本块中嵌入某些东西时,我似乎无法找到它的方法.一个文本块不包含Add方法或任何东西,所以我有点迷失.
我试图变成C#的XAML是:
<TextBlock x:Name="textBlock">
<Line X1="0" Y1="0" X2="100" Y2="0" Stroke="Black" StrokeThickness="4" x:Name="line1"/>
<TextBlock Text="Hello there!" VerticalAlignment="Center" HorizontalAlignment="Center" x:Name="innerTextBlock" />
<Line X1="0" Y1="0" X2="100" Y2="0" Stroke="Black" StrokeThickness="4" x:Name="line2"/>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
编辑:我认为最好的方法(除了答案)是简单地创建一个WPF用户控件并引用它.
所以我希望这是一个有效的问题......我最近(今天实际上)决定学习脚本语言,所以我选择了Python.在浏览代码时,我感到不知所措,我很快意识到原因是我不知道数据类型的转换和内容是什么.
我的问题是:是否存在跟踪数据类型的常规?我来自更多的C背景,所以我发现这很令人困惑.有小费吗?
我有这个名为LoadToDictionary的方法.它接受字典和文件路径.目前,它看起来像这样:
void LoadToDictionary(Dictionary<string, string> dict, string filePath.然后在里面,它会有很多代码将filePath中文件的内容提取到字典中.我想让它更通用,所以它可以,比如说,用一个带有int的字典,以及改变方法中的解析代码的能力.我应该标记此方法,然后覆盖它吗?还有其他方法吗?
这个问题说明:
毕达哥拉斯三元组是一组三个自然数,abc,为此,
a 2 + b 2 = c 2
例如,3 2 + 4 2 = 9 + 16 = 25 = 5 2.
恰好存在一个毕达哥拉斯三元组,其中a + b + c = 1000.找到产品abc.
我不确定它试图问你什么.我们是否试图找到然后将这些数字插入?a2 + b2 = c2a + b + c = 1000
在GDI +/WinForms中,我可以在Click()事件中使用图形对象:
AddPoint(p); //Add Point contains some code to make sure there is only 3 dots
foreach (Point p in PointList) {
DrawRectangle(p);
}
Invalidate();
Run Code Online (Sandbox Code Playgroud)
如果我在WPF中尝试类似的东西,它将不会清理我创建的点(我猜是因为WPF的工作原理).这意味着如果我检查确保一次只有三个点,并弹出最旧的点为新的点腾出空间,绘制的矩形仍然存在.
所以问题是,如何在WPF中创建允许我的东西
所以我读过它ActualWidth可能等于0,直到满载为止.我添加了它的事件处理程序,以确保它已完全加载:
text.AddHandler(TextBlock.LoadedEvent, new RoutedEventHandler(textBlock_Loaded));
Run Code Online (Sandbox Code Playgroud)
在这种情况textBlock_Loaded下,我有:
TextBlock tb = sender as TextBlock;
textBlockWidth = tb.ActualWidth;
Run Code Online (Sandbox Code Playgroud)
我需要textBlockWidth在main方法中使用变量,但每次我在我的Main方法中写入textBlockWidth的值时,我得到0.
所以这个问题是,ActualWidth在执行我的操作之前,如何确保不是0?由于WPF是事件驱动的,有没有一种方法可以在完成时触发某些方法,而不是之前?否则,它将返回0.
I have this text file that contains approximately 22 000 lines, with each line looking like this:
12A4 (Text)
So it's in the format 4-letter/number (Hexdecimal) and then text. Sometimes there is more than one value in text, separated by a comma:
A34d (Text, Optional)
Is there any efficient way to search for the Hex and then return the first text in the parentheses? Would it be much more effective if I stored this data in SQLite?
我不确定这个问题是否适合,但是我想知道基于平铺的游戏,当玩家移动(并且玩家停留在同一个地方)时,牌块"移动"或者玩家是否移动(而瓷砖留在同一个地方)?