跳到正文

容易混淆的问题 ​

容易混淆区别
keypressed / isDown按下一次 vs 每帧轮询,持续移动必须用后者
dt 乘不乘不乘则帧率越高移动越快
左上角锚点 / 中心放右侧要减宽度,放中间要减一半
push.start / 全局只影响 start 与 finish 之间的绘制
滤镜设置顺序必须在创建字体、图片之前
require 返回值课程用全局写法,也可以 local X = require 'X'
.. / +Lua 拼接字符串用 ..,+ 只做数值
数组下标从 1 开始,不是 0
nil / false只有这两个为假,0 为真
整数倍缩放非整数倍会让像素粗细不均
碰撞后推出只反向不挪出矩形,会重复碰撞
gameState 字符串拼错不会报错,逻辑静默失效

两个补充 ​

math.random 的范围。 math.random(2) 返回 1 或 2,math.random(-50, 50) 返回闭区间;不设 math.randomseed(os.time()) 每次启动序列相同。

and/or 三元。 cond and a or b 在 a 为 nil 或 false 时会错误地取 b,用来选数字没问题。