小编Zif*_*fre的帖子

Continuation(如Smalltalk)和中断(如汇编程序)之间有什么区别?

我正在努力理解Continuations的概念(在Seaside with Smalltalk中使用).维基百科的一个片段说:

"...指的是一流的延续,这些结构使编程语言能够在任何时刻保存执行状态,并在程序的稍后阶段返回到该点......"

这不是表达汇编程序员编程中断时会做什么的另一种方式吗?或者我完全错过了这一点!

assembly continuations smalltalk interrupt seaside

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

游戏是否应仅依赖帧速率?

我想你对这个问题的建议......

为简单起见,我只考虑x轴.

在10号位置拍摄物体,其宽度也为10个单位,每秒向前移动100个单位,由于帧数较低,每次更新时应移动80个单位.

在调用第一次更新后,其位置现在为90,并且在位置120中存在另一个具有相同大小的对象.

下一次更新,将对象移动到位置170.考虑到我需要实现冲突检测,在Update之前或之后计算冲突,没有一个会起作用.

现在来一个简单的问题......

在这种情况下该怎么办?

做类似的事情:

Position start = destinationPos - currentPos;
for (int i; i < start; i++)
    if (IsColliding(movingObj.Position + i, staticObj))
        //do the colliding stuff here
Run Code Online (Sandbox Code Playgroud)

我不喜欢这个解决方案,对于这种情况可能没问题,但如果你有x,y,z和很多移动物体怎么办?

我认为另一种解决方案是好的,但我不确定它是否可靠,是让另一个线程在循环中完成所有这些计算.

这个线程就像一个无限循环,并且在每次迭代时我会计算出elapsedTime我认为非常小的并继续移动并计算碰撞,并且渲染线程会慢得多,会获得当前状态对象,只是渲染它.

你们觉得怎么样?

collision-detection

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

C中的指针问题

问候,我正在尝试学习C中的指针,我只是想让我的"addtwo"函数为输入整数数组的每个元素添加2,但我得到奇怪的编译错误,这里是非指针版本,确实不会正确编译.

addtwo(int *arr[]) {
    int i=0;
    for(;i< sizeof(arr)/sizeof(int);i++) {
        arr[i] = arr[i] + 2;
    }
}

main() {
    int myarray[] = {1,2,3,4};
    addtwo(myarray);
}
Run Code Online (Sandbox Code Playgroud)

问候

c pointers

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

使用Compile Assembly From Source来评估C#中的数学公式

我正在考虑通过在运行时从源代码编译来解析简单的数学方程式.我听说在使用这种方法之前我应该​​注意安全性因素,但我找不到任何关于此的信息.

谢谢

C#.net 2.0,winforms

.net c# math parsing equation

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

c#和Encoding.ASCII.GetString

byte[] header = new byte[]{255, 216}; 

string ascii =  Encoding.ASCII.GetString(header);
Run Code Online (Sandbox Code Playgroud)

我希望ASCII等于FFD8(JPEG SOI标记)

相反,我得到"????"

c# encoding ascii

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

C#3.0中匿名方法的闭包

为什么匿名方法存在闭包?为什么不直接将状态传递给方法而不会在复制闭包变量的情况下生成新类的开销?这不仅仅是"让一切都变得全球化"的倒退吗?

有人跟我说话,我觉得我在这里错过了一些东西......

c# closures anonymous anonymous-methods c#-3.0

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

所有选择F#中的列表 - 更优雅和简单

有人可以提出更好和/或更优雅的实现:

let each xs = 
    let rec each' acc left right = 
        match right with
        | [] -> acc
        | right ->  let new_left  = left @ [List.hd right]
                    let next   = List.tl right
                    let result = (List.hd right), left @ next
                    each' (result::acc) new_left next
    each' [] [] xs

它做到了:

> each [1..3];;
val it : (int * int list) list = [(3, [1; 2]); (2, [1; 3]); (1, [2; 3])]

此函数也可以反向返回结果.我们的想法是将所有元素作为元组,包含元素和rest元素列表.

f# functional-programming list simplify

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

具有固定模式的内存区域的技术名称,用于边界检查?

我想知道是否有一些额外内存区域的技术名称,这些区域分配用于调试目的并填充特殊模式,因此可以在运行时检查它们是否已被覆盖(从而检测到可能的缓冲区溢出) ...

一位老乡称他们为"Canarios"(西班牙语中的加那利群岛),我认为这是用于在矿井中用来检测沼气的金丝雀鸟的类比,但我不确定英文中是否使用相同的名称.

memory nomenclature bounds-checker

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

您如何模仿将数据推送到Web应用程序?

显然,您无法将数据推送到Web应用程序,因为HTTP在请求 - 响应周期中工作.

但是,您知道哪些黑客/方法可以模仿将数据推送给客户?

language-agnostic ajax networking web-applications http

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

为什么Linq to Entities更加"难",Linq to SQL

为什么在Linq to Entities中我需要指定与Include(字符串)的关系?Linq to SQL不需要.

这是开发人员的选择还是限制?

另一个问题,Linq to SQL更多是"POCO"类,Linq to Entities太复杂了.

linq-to-entities linq-to-sql

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

问题关于C++中的&运算符

我正在查看Wrapper类的.h文件.该类包含一个私有成员:

T* dataPtr;
Run Code Online (Sandbox Code Playgroud)

(其中,T是如template < class T >在.h文件的顶部定义)

该类提供了两个"*重载运算符"方法:

T& operator*()
{
   return *dataPtr;
}

const T& operator*() const
{
  return *dataPtr;
}
Run Code Online (Sandbox Code Playgroud)

两者都只是简单地返回*dataPtr,但*dataPtr实际上用简单的英语返回的符号是什么?它如何适合返回类型" T&"?

c++ pointers wrapper

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

NSImage旋转

我有一个窗口,其中包含NSView的子类.在视图中,我放了一个NSImage.

我希望能够将图像旋转90度,使图像的(新的)左上角保持在视图的左上角.当然,我必须旋转图像,然后翻译它以将原点放回原位.

在Carbon中,我找到了CGContextRotateCTM,它可以满足我的需求.但是,我在ObjC找不到合适的电话.setFrameCenterRotation似乎什么也没做,而在setFrameRotation中,我似乎无法弄清楚原点在哪里,所以我可以适当地翻译.

似乎有所动作.当我调整窗口大小时,它会放置图像(或者它的一部分,我似乎也有一个奇怪的剪辑问题),当我滚动时,它会跳转到另一个(并不总是saem)位置.

这对任何人都有意义吗?

谢谢

cocoa objective-c nsimage

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