Witam!
Ostatnio zastanawiałem się nad problemem z Graphics.update i przypomniał mi się dawny pomysł, bardzo dawny.
A mianowicie myślałem od stworzeniu wątku procesu aktualizującego grafikę. Niestety plan był wtedy dla mnie niewykonalny, nie wiedziałem jak się za to zabrać w RGSS, dopiero uczyłem się tego języka.
Teraz problem jest aktualny. Przeszukałem całą masę stron o RGSS i nic.
Jest pewien postęp: mam dwa wątki. Tyle, że gra wyłącza się jakąś sekundę - dwie po stworzeniu wątku. Oto i skrypt, którego użyłem.
class Scene_Loading
def main
#Kod łądujący bazę danych, odczytujący konfigurację, sprawdzający dostępność aktualizacji itp. pomijam
ct = Win32API.new("kernel32","CreateThread",'pippip','i')
$threadvar = "\0" * 1024 * 1024
$thread = ct.call(nil,1024*1024,:thread.to_s,nil,0,$threadvar)
print("Wystąpił błąd w trakcie inicjacji wątku.\n\n") if $thread == 0
#Przejście do menu pomijam również
end
def thread
Win32API.new("kernel32","Beep",'ii','i').call(500,1000)
sleep(5)
end
end
Znam błędy typu nil, nile zamieniałem na '', pointery na integery itp., ale nic to nie dało. Jedyny efekt był taki, że wątek w ogule się nie tworzył.
Istnieje również funkcja BeginThread, którą chętniej bym użył, w C++ ją preferuję. Niestety nie mogę jej wykorzystać, nie mogę jej odkodować.
Z góry dziękuję za wszelką pomoc i pozdrawiam.
Dawid Pieper