games.pdbrec.com業務連絡 20190405
とりあえず、Go言語でのFPS処理は
-------
package gameos
import "time"
var fpsTimeThen int64 = 0
var fpsTimeNow int64 = 0
func vsyncNowTime() int64 {
return time.Now().UnixNano()
}
func VsyncInit() {
fpsTimeThen = vsyncNowTime()
}
func Vsync() {
if fpsTimeThen == 0 {
VsyncInit()
} else {
// Fps Time.
var a int64
a = 0
if fpsCount % 3 == 0 {
a = 1
}
fpsTimeNow = vsyncNowTime()
var fpsWait int64
fpsWait = 16666667 - (fpsTimeNow - fpsTimeThen - a)
// Fps Wait.
if fpsWait > 0 {
time.Sleep(time.Duration(fpsWait))
}
// Reset.
fpsTimeThen = vsyncNowTime()
}
}
-------
な感じ
GolangのsleepはNano秒単位なので、それに合わせて数値も決めています
ゲームのパターンってのがあって、なるべく、packageなライブラリの形でゲームのプログラムのパターンをまとめたいので。プチコンのVsyncなライブラリを作ってみました
とりあえず、プログラムの実装は続いてます