Zalogowany jako: gość

Forum

Wątek: Pierwsze kroki w kod Eltena.

Wróć do listy wątków

2 z 8

Poprzednia
Następna

21 z 143: grzezlo

Nie przesadzajmy w drugą stronę. Dokumentacja jest ważna, samples też byłyby nie złe, ale jeśli ich nie ma, to przecież jest kod źródłowy.
No i prościutko napisane przykładowe appsy.
Które pokazują jak z grubsza można robić różne rzeczy w Eltenie, typu reakcja na klawisze, generowanie komunikatu, etc.
A jeśli jest potrzebne coś ekstra, to no cóż, jest autor, który na moje niestandardowe pytania odpowiedział przy świętej niedzieli w kilkanaście minut.
Jako samouk, który do większości wiedzy dochodził metodą prób i błędów kombinując po nocach, albo szukając jakichkolwiek tutoriali przy kiepskiej znajomości angielskiego i słabym necie w drugiej połowie lat 90-tych, nie kupuję takich tekstów, że ktoś bardzo chciał, tylko nie mógł, bo mu coś tam nie było dane.
Gdyby koleżanki i koledzy, bo kilku ich tu już czytałem, byli rzeczywiście zainteresowani zrobieniem czegokolwiek w kodzie Eltena, to startując jak ja dzisiaj przed południem od zerowej znajomości Rubiego i Elten api, przechodząc przez szybki tutorialek, konsolę, a później czytając apsy, wczesnym wieczorem mieliby wstępnie działający app starter dev kit, który wczytuje plik myprogram.rb za każdym razem z dysku, odpala go, no i ładnie błędem ewentualnym rzuca w okienku dialogowym w polu edycji.
Spisać jakieś podstawy, tutoriala zrobić, coś w kodzie wynaleźć albo Pajpera przycisnąć pytaniami, to mam wrażenie dla kilku zdeterminowanych osób mniej by czasu zajęło niż snucie od lat smętnych narracji ile to ja bym zrobił, jak bym miał trochę więcej w bicepsie.
Więc proszę i nalegam, bez takich smutów w tym wątku, już podobnych treści w innych wątkach jest wystarczająco.
Większość ludzi leży do góry anteną lub dwiema i w życiu nie robi nic, prócz tego co musi.
I to ich wybór, nikomu się nie muszą tłumaczyć, więc nie wiemy, czy im się nie chce, czy autobus nie przyjechał, ktoś komuś buzi nie dał, czy co, jest to dla nas wielką tajemnicą i w sumie zbędną.
Zaproponowałem tu pewną inicjatywę wejścia w kod Eltena, 99 procent ludzi ten temat nie interesuje i nie mam im tego za złe w najmniejszym stopniu.
Mnie z kolei nie interesują wypowiedzi w panieńskim czy współcześnie nawet kawalerskim stylu "i chciałabym i boję się."
W tym wątku akceptuję konkrety, czyli pomysły co jeszcze można zrobić i kto ewentualnie chce się tym zająć, reszta to zwykły spam.


19.09.2021 19:47

22 z 143: grzezlo

Dziwna sprawa.
Dodałem ten formularz wg instrukcji Dawida, ale teraz Elten uruchamia mi się co drugi raz.
Przy nieudanym uruchomieniu mamy w logach[1] kilka razy Loading scene: Program_a1test w odstępach 4-sekundowych, a następnie, jeszcze 4 sekundy później I: Program exited Program_a1test.
Żadnych błędów nie ma.
Ale za to jak się już uruchomi, to działa jak złoto.
Eksperymentalnie stwierdziłem, że zakomentowanie form.resume rozwiązuje problem uruchamiania Eltena, chociaż formularz staje się oczywiście nieresponsywny.
Kod programu dołączam[2], całe 884 znaki, 42 linijki i robi to co założyłem.

[1]: fragment logu:
D: Loading scene: Scene_WhatsNew (19:24:09)
D: Loading scene: Scene_Main (19:24:11)
D: Loading scene: Program_a1test (19:24:20)
D: Loading scene: Program_a1test (19:24:24)
D: Loading scene: Program_a1test (19:24:28)
(...)
I: Program exited Program_a1test (19:24:32)

[2]: Kod appsa:
class Program_a1test < Program
Name="a1test"
Version="1.0"
Author="grzezlo"

def main
menu=Menu.new {
option("Run myprog") {
return runMyProg
}
}
menu.open
finish
end

def runMyProg()
begin
eval(readfile(appfile('myprogram.rb')))
rescue Exception=>se
errorMyProg("Error #{se.message}")
end
end

def errorMyProg(errMsg)
form=Form.new([
edt_err = EditBox.new("Error", EditBox::Flags::MultiLine|EditBox::Flags::ReadOnly, errMsg, true),
btn_retry = Button.new("Run again"),
btn_cancel = Button.new("Cancel")
], 0, false, true)
btn_retry.on(:press) {
form.resume
runMyProg
}
btn_cancel.on(:press) {
form.resume
}
form.cancel_button = btn_cancel
form.accept_button = btn_retry
form.wait
end
end


19.09.2021 20:05

23 z 143: pajper

Zwalniasz formularz, zanim zakończysz działanie, czyli mówiąc technicznie, puszczasz dalej wątek główny, choć jeszcze na nim pracujesz. To nie powinien być problem, ale możliwe, że Garbage Collector tu usuwa obiekty, na których trwa praca, hipoteza robocza.
Spróbuj przenieść form.resume pod runMyProg i daj proszę znać, czy pomaga.
#StandWithUkraine Shoot for the Moon. Even if you miss, you'll land among the stars.
19.09.2021 20:18

24 z 143: grzezlo

Raczej nie pomoże, bo przed dodaniem runMyProg, gdy form.resume było jedyną instrukcją, było to samo.

19.09.2021 20:19

25 z 143: grzezlo

No i to nie wyjaśnia skąd te dziwne wpisy w logu o loading scene i program terminated, których przy normalnym, tj. udanym uruchomieniu nie ma.

19.09.2021 20:19

26 z 143: pajper

Jest to dość dziwne zachowanie, przyznaję. Skoro nie o to chodzi, sam muszę to szerzej potestować, bo kod jest jak najbardziej ok.
Jedyne co wiem, to że skoro ten wpis się powtarza w logu, musi dziać się jakiś brzydki crash w wątku, przez który wątek jest restartowany.
#StandWithUkraine Shoot for the Moon. Even if you miss, you'll land among the stars.
19.09.2021 20:22

27 z 143: grzezlo

Tylko, że gdyby się to działo po kliknięciu przycisku, gdy to form.resume byłoby wykonywane, no to sprawa byłaby klarowna. Jakiś problemik w kodzie metody form.resume.
Ale to się dzieje przy starcie Eltena, gdy to problemowe form.resume jest tylko fragmentem kodu obsługi kliknięcia przycisku w okienku, które nawet nie jest utworzone.
Acha, no i przy normalnym, czyli udanym uruchomieniu, są tylko 3 wpisy dotyczące a1test w logu, żadne tam tworzenie scen, ani program terminated.
I: Loading program a1test (20:10:44)
D: Registered new program class Program_a1test (20:10:44)
D: Registering class Program_a1test to program a1test (20:10:44)



19.09.2021 20:26

28 z 143: pajper

Czekaj, ale kiedy ten błąd występuje? Jak ręcznie odpalisz program? Czy samoczynnie, przy starcie?
#StandWithUkraine Shoot for the Moon. Even if you miss, you'll land among the stars.
19.09.2021 20:29

29 z 143: grzezlo

No właśnie przy uruchamianiu pliku elten.exe
Raz enter na skrócie, jest chwila ciszy i wracam na pulpit, nastepnym razem odpala się elten normalnie.
Czasem dwa razy pod rząd nie zaskoczy, a za trzecim pójdzie...

19.09.2021 20:30

30 z 143: pajper

Elten 2.4.3 Beta 16 plus, bo z kilkoma zmianami jeszcze niewrzuconymi nigdzie: uruchamiam Eltena z tym programem piąty raz pod rząd i efektu nie mam takiego. :(
#StandWithUkraine Shoot for the Moon. Even if you miss, you'll land among the stars.
19.09.2021 20:31

31 z 143: pajper

Haha, chyba wiem, na czym polega problem. Jeśli tak, to tylko zbieg okolicznosci.
Elten jest chroniony przed uruchomieniem dwóch instancji. Kiedy uruchomiony jest Elten, i otworzy się skrót, wskakuje po prostu do swojego okna.

Zauważyłem, że RGSS potrzebuje kilku sekund, by się w pełni zamknąć.
Jak szybko po zamknięciu Eltena się go otwiera, występuje taki efekt dlatego, że z jednej strony jeszcze widzi otwartą instancję, a więc chce do niej wskoczyć, a z drugiej to się nie udaje, bo ona już się żegna z Ramem.
#StandWithUkraine Shoot for the Moon. Even if you miss, you'll land among the stars.
19.09.2021 20:33

32 z 143: grzezlo

Faktycznie, to o to chodziło. W życiu bym nie pomyślał.


19.09.2021 20:38

33 z 143: pajper

Drobna sugestia, w Rubym nieco nam ułatwili zadanie. Funkcje nie potrzebują bloków begin-end, jeśli chcesz przejąć wyjątek z całej funkcji, drobiazg, ale jednak dwie linijki mniej. Więc można napisać tak:

def runMyProg()
eval(readfile(appfile('myprogram.rb')))
rescue Exception=>se
errorMyProg("Error #{se.message}")
end
#StandWithUkraine Shoot for the Moon. Even if you miss, you'll land among the stars.
19.09.2021 20:41

34 z 143: pajper

Nie wiem, jak u Ciebie z czasem, chęciami i w ogóle energią, ale moglibyśmy, a już zwłaszcza jak ktoś jeszcze będzie chętny, zrobić repozytorium elten-apps-samples czy podobne i tam zebrać jakieś materiały, przygotować kilka przykładów z omówieniem i takie tam.
#StandWithUkraine Shoot for the Moon. Even if you miss, you'll land among the stars.
19.09.2021 20:47

35 z 143: grzezlo

Zdecydowanie tak by można zrobić, też trochę czekam na kogoś z chęciami i większą od mojej czy twojej ilością czasu, żeby to później rozwijać, ale jak się nie doczekamy, to zrobimy we dwóch.
A może zacznijmy we dwóch, a jak pomysł wypali, to się manager w przyszłości znajdzie, a jeśli nie, to po prostu zostanie repo na takim etapie, do jakiego go dociągniemy.

Często wrzucałeś jakieś kawałki kodu na forum dla zilustrowania czegoś, teraz będzie trzeba zmienić nawyk trochę: kod do pliku, plik do repozytorium, a na forum - link do github.io.
Nawet ciekawa zabawa na jesienne i zimowe wieczory może to być.

19.09.2021 20:55

36 z 143: grzezlo

A czy runMyProg powinno zwracać main, bo w shooter tak to jest zrobione, ale bez tego wydaje się działac prawidłowo?
Z tym endem próbowałem, ale nie działało, wywalał się elten przy starcie, to nawet w loga nie zaglądałem co mu tam nie gra.
Jak dodałem begin - zadziałało.
Heh, a przyczyna taka sama, jak z tym form.resume.


19.09.2021 21:03

37 z 143: pajper

return main służyło tylko do zapętlenia funkcji, w Twoim programie niepotrzebne, bo i tak przerywasz main. Ale gdybyś nie miał tam returna, program poleciałby dalej i się zamknął. :)
#StandWithUkraine Shoot for the Moon. Even if you miss, you'll land among the stars.
19.09.2021 22:31

38 z 143: nuno69

Dawidzie, a kiedy będzie pisanie aplikacji do Eltena w C#?
- "Intelligence and wisdom is like jam. The less you have, the harder you're trying to spread it arround." - French proverb
20.09.2021 17:49

39 z 143: pajper

Miało być w 2.4, ale pojawiło się tyle propozycji i projektów, że niestety na razie nie wiem. Chcę to zrealizowac, ale jest wiele pilniejszych spraw.
#StandWithUkraine Shoot for the Moon. Even if you miss, you'll land among the stars.
20.09.2021 17:51

40 z 143: grzezlo

I co, jakieś exeki nieznanego pochodzenia bym miał uruchamiać, mając nadzieję że jakoś mi się powiążą z eltenem? Czy ten csharp byłby w formie kodu źródłowego?

20.09.2021 17:58

Wróć do listy wątków

2 z 8

Poprzednia
Następna

Nawigacja


Copyright (©) 2014-2024, Dawid Pieper