我对flash中的循环有疑问....
在平铺游戏中,我正在制作一个整个关卡的迷你地图.它渲染地图的方式是在另一个for循环中使用for循环的函数.它循环通过每个图块位置并附加一个地图块(基本上是一个3x3像素的正方形),根据图块的颜色进行着色.无论如何,我的问题是,当水平变得像50x50瓷砖一样大时,地图渲染需要永远(最多3秒).有没有什么办法解决这一问题?或者还有另一种做迷你地图的方法吗?如果等级越来越大,可能需要10秒钟!
任何帮助表示赞赏!
谢谢,马特
我有一个线程将结果写入队列.
在另一个线程(GUI)中,我定期(在IDLE事件中)检查队列中是否有结果,如下所示:
def queue_get_all(q):
items = []
while 1:
try:
items.append(q.get_nowait())
except Empty, e:
break
return items
Run Code Online (Sandbox Code Playgroud)
这是一个很好的方法吗?
编辑:
我问,因为有时等待的线程会卡住几秒而不会取出新的结果.
"卡住"问题原来是因为我在空闲事件处理程序中进行处理,而不是确保通过调用实际生成这样的事件wx.WakeUpIdle
,如建议的那样.
刚刚开始关注Ruby元编程.mixin/modules总是让我困惑.
那么主要区别在于这还是潜伏着更大的龙? 例如
module ReusableModule
def module_method
puts "Module Method: Hi there!"
end
end
class ClassThatIncludes
include ReusableModule
end
class ClassThatExtends
extend ReusableModule
end
puts "Include"
ClassThatIncludes.new.module_method # "Module Method: Hi there!"
puts "Extend"
ClassThatExtends.module_method # "Module Method: Hi there!"
Run Code Online (Sandbox Code Playgroud) 现在似乎有不少主流语言支持函数文字.它们也被称为匿名函数,但我不在乎它们是否有名称.重要的是函数文字是一个表达式,它产生一个尚未在别处定义的函数,因此例如在C中,&printf
不计算.
编辑添加:如果你有一个真正的函数文字表达式<exp>
,你应该能够将它传递给一个函数f(<exp>)
或立即将它应用于一个参数,即.<exp>(5)
.
我很好奇哪些语言可以让你编写递归的函数文字.维基百科的" 匿名递归 "文章没有给出任何编程示例.
我们以递归因子函数为例.
以下是我所知道的:
JavaScript/ECMAScript可以用callee
:
function(n){if (n<2) {return 1;} else {return n * arguments.callee(n-1);}}
Run Code Online (Sandbox Code Playgroud)在语言方面很容易letrec
,例如Haskell(称之为let
):
let fac x = if x<2 then 1 else fac (x-1) * x in fac
Lisp和Scheme中有等价物.请注意,绑定fac
是表达式的局部,因此整个表达式实际上是一个匿名函数.
还有其他人吗?
recursion language-features function-literal anonymous-function letrec
我将一个object(TTF_Font
)存储在shared_ptr
从第三方API提供给我的对象中.我不能在对象上使用new或delete,因此shared_ptr
也提供了一个"freeing"仿函数.
// Functor
struct CloseFont
{
void operator()(TTF_Font* font) const
{
if(font != NULL) {
TTF_CloseFont(font);
}
}
};
boost::shared_ptr<TTF_Font> screenFont;
screenFont = boost::shared_ptr<TTF_Font>( TTF_OpenFont("slkscr.ttf", 8), CloseFont() );
Run Code Online (Sandbox Code Playgroud)
如果,稍后,我需要明确释放此对象,这样做是正确的:
screenFont.reset();
Run Code Online (Sandbox Code Playgroud)
然后让screenFont
(实际shared_ptr
物体)自然地被摧毁?
Ruby如何隐式地允许类外部的类访问方法?
例:
class Candy
def land
homer
end
end
def homer
puts "Hello"
end
Candy.new.land #Outputs Hello
Run Code Online (Sandbox Code Playgroud) 作为正在阅读Apple的Objective-C 2.0文档的Java开发人员:我想知道" 向nil发送消息 "意味着什么 - 更不用说它实际上有用了什么.摘自文档:
Cocoa中有几种模式可以利用这一事实.从消息返回到nil的值也可能是有效的:
- 如果该方法返回一个对象,任何指针类型,任何大小小于或等于sizeof(void*),float,double,long double或long long的整数标量,则发送给nil的消息返回0 .
- 如果该方法返回一个结构,如Mac OS X ABI函数调用指南所定义的那样在寄存器中返回,那么发送给nil的消息将为数据结构中的每个字段返回0.0.其他结构数据类型不会用零填充.
- 如果该方法返回除上述值类型之外的任何内容,则发送到nil的消息的返回值是未定义的.
Java是否让我的大脑无法解释上面的解释?或者是否有一些我想念的东西会让它像玻璃一样清晰?
我确实在Objective-C中得到了消息/接收器的概念,我只是对接收器碰巧感到困惑nil
.
GWT
从locale属性或语言环境查询字符串中获取语言环境.如果两者都未指定,则使用"默认"(即en_US
)语言环境.
为什么不从浏览器设置中获取它?
似乎唯一的解决方案是用JSP读取浏览器语言环境并使用查询字符串设置语言环境或重定向等替换静态html启动页面.必须有一个比这个更好的解决方案,或者只是硬编码一个语言环境,当然?
我最近在某个地方读过写一个正则表达式来匹配一个电子邮件地址,考虑到标准的所有变化和可能性是非常困难的,并且比最初假设的要复杂得多.
任何人都可以提供一些见解,为什么会这样?
是否有任何已知且经过验证的regexp实际完成这一点?
使用正则表达式匹配电子邮件地址有哪些好的替代方法?
这是一个非常简单的问题 - 如何对集合进行排序?
我有一个CSV文件,其中包含随机顺序的行.我想根据一列中的日期对行进行排序.我是否将行添加到记录集?我可以使用Scripting.Dictionary进行排序吗?
我显然已经被.NET和Linq宠坏了,现在我发现自己回到了经典asp的领域,意识到我必须在7年前就知道这一点,并且非常遗漏了仿制品.我觉得这是一个完整的n00b.
ruby ×2
asp-classic ×1
boost ×1
browser ×1
c++ ×1
email ×1
extend ×1
flash ×1
gwt ×1
include ×1
letrec ×1
loops ×1
methods ×1
module ×1
objective-c ×1
optimization ×1
python ×1
queue ×1
recursion ×1
regex ×1
sdl-image ×1
sorting ×1
textmatching ×1
validation ×1