Hig*_*aru 6 smalltalk squeak morphic
在许多语言中,您可以执行以下操作:
while true:
handle events like keyboard input
update game world
draw screen
(optional: delay execution)
Run Code Online (Sandbox Code Playgroud)
虽然这远非最佳,但它应该足够简单的游戏.
你是怎么在Squeak Smalltalk做到这一点的?
我可以阅读键盘输入并对其做出反应,如wiki.squeak.org所述.但是,如果我尝试执行类似的东西
1 to: 10 do: [ :i | game updateAndDraw ]
Run Code Online (Sandbox Code Playgroud)
所有事件只在循环执行后才被处理.
Morphic已经提供了主循环.它在MorphicProject class>>spawnNewProcess:
uiProcess := [
[ world doOneCycle. Processor yield ] repeat.
] newProcess ...
Run Code Online (Sandbox Code Playgroud)
如果你深入研究,doOneCycle你会发现它
interCyclePause:)step方法您的代码应该通过添加鼠标/键盘事件处理程序,动画步骤方法和绘制重新显示方法来挂钩这些阶段.所有这些应该是你自己的游戏变形中的方法.您可以在整个系统中找到示例.
| 归档时间: |
|
| 查看次数: |
376 次 |
| 最近记录: |