■ クロスコンパイルが出来ない
SDLはDLLなどのライブラリファイルを使う際にC++などのコンパイラを使います。なので、クロスコンパイルする時にC++のコンパイラがない、あるいは種類が違うなどでクロスコンパイルが出来ません
WindowsはWidndowsのgolangで、LinuxはLinuxのgolangでコンパイルするしかありません
■ ガベージコレクタを使う
JAVAやLLなどガベージコレクタでメモリを管理している言語でゲームを作る時、ゲーム実行時にガベージコレクタを発生させない、ガベージコレクタの実行時間を短縮するために、ゲーム開始直前に任意のタイミングでガベージコレクタを実行出来なければなりません
golangの場合は、golangの設定などを行うruntimeパッケージにてガベージコレクタを任意のタイミングで実行できます
-------
import "runtime"
runtime.GC()
-------
でガベージコレクタを実行する事が出来ます
■ SDLの画面のボインタ
SDLを使う時、GO言語ではポインタをネームスペースを超えて使う事が出来ません
なので、普通のGO言語のゲームでは、画面表示の為のポインタを使うためにネームスペース一つでゲームを実装してます
そこで、他のネームスペースへ、「ポインタのアドレス渡し」でボインタを渡して、向こうでダミーのボインタを作り、ポインタのアドレスをコピーすると普通にSDLの画面のボインタが使えます
SDLの画面のポインタではない他のSDLのシステムなどは普通にimportで使えたはずです
0コメント