我在Yosemite 10.10.5和Xcode 7上,使用Swift制作一款针对iOS 8及以上版本的游戏.
编辑:可能有用的更多细节:这是一个2D拼图/街机游戏,玩家可以移动石头来匹配它们.根本没有3D渲染.绘图已经太慢了,我还没有得到碎片爆炸.还有一个淡入淡出的水平,非常令人担忧.但到目前为止,这一切都在模拟器上.我还没有真正用iPhone测试,我打赌实际的设备至少要快一点.
我有自己的Draw2D类,它是一种UIView,在本教程中设置.我有一个NSTimer,它在Draw2D中启动以下调用链:
[setNeedsDisplay]; // which calls drawRect, which is the master draw function of Draw2D
drawRect(rect: CGRect)
{
scr_step(); // the master update function, which loops thru all objects and calls their individual update functions. I put it here so that updating and drawing are always in sync
CNT = UIGraphicsGetCurrentContext(); // get the curret drawing context
switch (Realm) // based on what realm im in, call the draw function for that realm …Run Code Online (Sandbox Code Playgroud) 我记得在集会课上,我们学习了m68k处理器,你可以做3种转换.线性移位,循环移位和带有延伸的圆形移位.
最后一个,带有extend的循环移位,基本上是向左或向右旋转所有位,但它将最外面的位置放到一个延伸位,然后再将它移动到开头(如果你再次移动1).
我画了一张小图:
基本上,在循环移位中使用第33位,但当然不会出现在32位字中.第33位是处理器的X标志,代表扩展.你可以很容易地使用任何状态标志,例如进位标志,但我想摩托罗拉人想要保留那个标志,这样它就不会被覆盖,以防万一你需要进行正常职责的进位标志.一些算法也需要用extend进行旋转.
无论如何,使用extend旋转的目的是什么?它是干什么用的?需要什么?看起来很奇怪.为什么世界上你需要第33位?
我读过这个和这个,两个相关的问题,但他们并没有谈及该循环移位与延伸.
我知道正常班次的一些用途.基本上除以2,或测试可分性,并置换随机性位.类似的东西.但是我想不出为什么你需要在旋转中插入一些扩展位而不会在结果中出现.
编辑:我对它的任何使用感兴趣,无论是现代的还是旧的,如果它在m68k上都无关紧要.m68k只是我遇到它的第一个位置(我从来没有在那里使用它).
现在,我的所有网页都在最后:
<address>© 2014-2016 My Brand. All rights reserved. | <a href="Contact.html">Contact</a> | <a href="Privacy.html">Privacy Policy</a></address>
正如您可能猜到的那样,我最近不得不在2015年到2016年对其进行修改.我的网站上只有20页,而且它们都是静态的.html页面,但它仍然很痛苦.
我想用css做这件事.这可能吗?
我猜的是在最后修改每个页面<div id="endingaddress"></div>,然后在css文件中我需要输入如下内容:
#endingaddress
{
...what goes here?
}
我该怎么做?
当我尝试优化我的代码时,很长一段时间我一直在使用经验法则,加法和减法值1,乘法和除法值3,平方值3(我很少使用更通用的pow函数所以我对它没有经验法则,并且平方根值10.(我假设平方数只是乘法,所以值得3.)
这是2D轨道模拟的一个例子.要计算并应用重力加速度,首先我得到从船到地球中心的距离,然后计算加速度.
D = sqrt( sqr(Ship.x - Earth.x) + sqr(Ship.y - Earth.y) ); // this is worth 19
A = G*Earth.mass/sqr(D); // this is worth 9, total is 28
Run Code Online (Sandbox Code Playgroud)
但是,请注意,在计算D时,您采用平方根,但在下一次计算中使用它时,您将其平方.因此你可以这样做:
A = G*Earth.mass/( sqr(Ship.x - Earth.x) + sqr(Ship.y - Earth.y) ); // this is worth 15
Run Code Online (Sandbox Code Playgroud)
因此,如果我的经验法则属实,我几乎减少了一半的周期时间.
但是,我甚至不记得以前在哪里听过这条规则.我想问一下这些基本算术运算的实际循环时间是多少?
假设:
编辑:我想我真正要做的是查看ALU内部并仅计算6个操作的逻辑循环时间.如果其中仍存在差异,请说明原因和原因.
注意:我没有看到任何机器代码的标签,所以我选择了下一个最接近的东西,汇编.为了清楚起见,我在谈论x64架构中的实际机器代码操作.因此,我写的那些代码行是用C#,C,Javascript还是无关紧要.我敢肯定每种高级语言都会有不同的时间,所以我不想讨论这个问题.我认为没有机器代码标签是一种遗憾,因为在谈论性能和/或操作时,你真的需要深入了解它.
今天,我在C#列表中遇到了一个小故障,或者至少看起来像是我的一个,所以我想我会问.这是代码:
// in main
List<Move> LM = new List<Move>();
LM.Add(new Move(4, 7));
// in Move
public Move(int ccc, int rrr)
{
col = ccc;
row = rrr;
scr_check_duplicates();
}
public void scr_check_duplicates()
{
foreach (Move M in Main.LM)
{
if (M.col == col && M.row == row)
Main.LM.Remove(this);
}
}
Run Code Online (Sandbox Code Playgroud)
好吧猜怎么着?Remove()没有做任何事情!如果你想自己搞清楚,请继续.否则,原因如下:
在跟踪它一段时间之后,我相信这是因为在新的Move()构造函数的中间,该对象实际上还没有被添加到列表中,因为它仍在初始化.
问题是,这是故障还是C#故意这样做?在我看来,如果它只是继续添加一个新的Move,然后调用构造函数,它将工作正常,而不会破坏任何可想到的代码.有没有更好的方法来做我想要的?理想情况下,我希望能够立即删除构造函数或它调用的任何函数.