Ruby: 2D grafika Linuxon: SDL + SGE kiterjesztéssel

Net szerte sokan keresnek egyszerű 2D támogatást Ruby-hoz, de nincs igazán olyan, amelynél a futtatási környezet telepítésével ne lenne komolyabb szívás (pl. Gosu vagy Rubygame meg hasonlók). Akár egyszerűbb fizikai szimulációkhoz, akár egyéb algoritmusok szemléltetéséhez hasznos lenne pedig.

Sok időm ráment, mire megtaláltam a megfelelő megoldást. Ezután létrehoztam egy Screen osztályt, mellyel könnyen bekapcsolhatunk egy SDL képernyőt és nagyon egyszerűen rajzolhatunk rá.

Git tárolómban megtalálhatók a példa kódok sdl_testX.rb néven, melynek elején kommentezve olvasható a futtatási környezet telepítése.

Kód a github-on éa pastebin-en.

A példa kód rész kb ennyi:

s = Screen.new(600, 400)
s.line(130, 100, 450, 210)
s.circle(130, 100, 50)
s.show

Pontosan ennyire van szükségem, nem többre. A Screen osztály már tetszés szerint egyszerűen bővíthető színezéssel meg egyébbel, ha valakinek kellene.

Hozzászólások

Ha mar GitHub, akkor inkabb Gist. Az legalabb szinten git repot csinal a pastezott tartalombol...

Egyebkent grat. En most akarok kozelebbi ismeretseget kotni a Gtk+ Ruby bindingjevel, volna nehany egyszerubb otletem.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. 

Jelen esetben inkább pastebin, mert így független rendszer ha a github nem lenne elérhető.

A Gtk+ wrapper megvalósításra kíváncsi lennék egyszerűség (telepíthetőség és kód olvashatóság) és sebesség szempontjából. Egyébként nagyon sokat szívtam (pár hónap alatt több napnyira tenném) az SDL + SGE beélesítésével Fedora és SL alatt. Az upstream SGE nem fordítható eleve. Ugye Debian vonalon karbantartják és külön patch-ekkel szállítják, hogy forduljon a sok éves cucc. Így ott elég egyetlen csomag telepítése. Na ez nem mondható el RHEL vonalról és nem is létezik RPM-es cucc belőle semmilyen repo-ban. Ezért a végén kézenfekvő volt hogy rányomom a Debian patch-eket és így működik is.

Ha ez megvan, onnét már gem telepítés és használható. A többi cuccnál még több szívást láttam és nincs olyan, mint amilyen osztályt én létre hoztam, hogy az ablak nagyságának megmondása után rendkívül egyszerűen ki lehessen rajzolni egy nyomorult vonalat.

Ide is betettem a Ruby forum-ra. Habár 4 éves a topic, mégis ha valaki rákeres ott legyen egy alternatív megoldás.

Ha megnézted a Gtk-t majd leblogolhatnád, mert kíváncsi vagyok rá. Meg azt is hogy egyszerű 2D rajzolásokat lehet-e.

Szerintem az SDL cuccok embeddelhetok Gtk framekbe, legalabbis, lattam mar egy par ilyet. De az SDL nekem feher folt, en nem utazok grafikus (ugy ertem, pixelenkent rajzolos) cuccokban.

Nekem most az egyik projekt, amit ki akarok probalni, az a plop Ruby portja lesz, mert ez a pythonos stringkezeles szamomra borzaszto. Az mar most latszik, a ruby bindingnel megoldottak, hogy a propertyk (set_ize, get_ize) rendes attributumkent kezelhetok (ize, ize = 'hoze'), ami nagyon szexive teszi a cuccot. Raadasul mar vannak otleteim, hogyan tudnek tobb parhuzamos emerge folyamatot is figyelni (a qlop ad hozza kimenetet, csak pythonban mar nekem a mostani verzio is eleg sok idombe telt).
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.