ChatGPTに聞いても嘘しか返ってこなかったので😡
最近、gambasってもしかして良いんじゃないか?と思ってます。速いし、型があるし、IDEの完成度もなかなかです。 しかし、マイナーなので資料に乏しいのが悩みどころ。
ChatGPTに聞くと一応返してくれるのですが特にPaint周りは嘘ばっかでした…😭
Paint.Begin(img) Dim testcol As Integer testcol = Color.SetRGB(testcol, 255, 128, 0, 128) ' 半透明のオレンジ Paint.LineWidth = 2 Paint.FillRect(0, 0, 256, 256, testcol) Paint.Brush = Paint.Color(&H00FF0000) ' 完全に不透明な真っ赤 Paint.MoveTo(10, 10) Paint.LineTo(246, 246) Paint.Stroke() Paint.End()
- Paint.Begin(image) 〜 Paint.End()で囲みます
- Sttrokeで線描画、 Fillで塗りつぶしは普通のqtと似てます
- なんと、アルファ値の大小が通常と逆です。 一般的には8ビットARGBだと255で不透明ですが、0で不透明です。
このアルファ値の大小で悩まされましたですね。完全に不透明と思い込んでいたものが全く描画されなくて…(透明なんだから、当たり前だけど)
一瞬、int32なので、負の値周りのバグかと思ってしまいました。 実はこの問題、SDL2でも悩まされていたのです。 バグでなくて本当によかった。
なお、gambas3のIDEは日本語コメントも受付ますが、日本語文字列の描画が怪しいので英語でコメント書いてます。上のサンプルでのコメントは、はてな側で書き加えたものです。 一方、似たようなRAD的IDE的な、FreepascalのLazarusも捨てがたいのですが、こちらは日本語コメントを全くインライン編集出来ません(クリップボード経由のコピペは出来る)
一長一短ですというか、どうせ英語でコメント書くならもうLazarusでも良いかな…と思わなくもないです。ただワタクシPascalはかなり素人なので、その点はキツイですが…しかし、むしろGambasよりは資料多そうですね。
いずれゲームでも作ることで本格的に使い比べてみたい。