Witam!
Bawię się ostatnio grafiką we Free Pascalu. Dodaję sobie moduł graph i wszystko pięknie działa, kompiluje się, rysuje jak trzeba, ale po zamknięciu trybu graficznego zaczyna mi wariować tryb tekstowy. Czego bym w programie nie napisał, to nie działa dobrze. Sprawdziłem to na dwóch komputerach i na dwóch systemach operacyjnych (XP i Windows 8). Z tego co przeczytalem w internecie, to nie tylko ja mam taki problem. Kilka miesięcy temu analogiczny temat założył ktoś na konkurencyjnym forum. Tam nie umieli nam pomóc, może Wy jesteście lepsi. A tak przy okazji to: jaki link trzeba podać we Free pascalu w procedurze initgraph( )?? Czego bym nie wpisał, to się kompiluje, nawet jak zostawię puste miejsce, ale tryb tekstowy i tak nawala. Pozdrawiam
Zrobisz sobie największą przysługę porzucając wszystko co związane z modułem graph i grafiką BGI.
Mamy rok prawie 2015, a to już 20lat temu było stare.
Na dzień dzisiejszy znajomość tego nie ma absolutnie żadnej wartości.
Szczególnie przechodzenie pomiędzy trybami - to może powodować problemy - nikt tego nie rozwiąże, bo nie ma powodu ku temu - nikt nie powinien już tego używać.
Rozumiem, to jest jakaś rada. Czym w takim razie powinienem był to zastąpić? Najlepiej, żebym nie musiał za dużo grzebać w plikach, ponieważ dopiero zaczynam zabawę modułami.
SDL2 for pascal
SDL - Simple DirectMedia Layer
A czy możesz napisać jak tego używać?
http://www.baregame.org/topic_welcome.asp
(Baregame to jeden z bindingów SDL2 do pascala)
A czy jest jakiś podręcznik do SDL w pascalu w języku polskim, bo na kurs internetowy to pewnie nie mam co liczyć? (googlam i nic nie widzę). A czy nie ma czegość "pomiędzy" graphem, a SDL? Na razie piszę proste symulacje komputerowe układu Slonecznego i chodzi mi o to, żebym mógł to rysować na ekranie w 2D i wchodzić w jakieś interakcje z programem bez potrzeby edytowania kodu za każdym razem.
A tak przy okazji to: jaki link trzeba podać we Free pascalu w procedurze initgraph
Żaden. Ten parametr jest ignorowany. Pod DOS-owym Turbo Pascalem była tam ścieżka do pliku .bgi ze sterownikiem grafiki.
Chyba znalazłem coś odpowiedniego dla siebie (allegro.pas), ale nie mogę sobie poradzić z instalacją. Na stronie projektu http://allegro-pas.sourceforge.net/wiki/doku.php?id=documentation:full_installation przeczytałem, że najnowsza wersja allegro.pas jest kompatybilna z allegro w wersjach zaczynających się od numerów 4.4, więc ściągnąłem allegro 4.4.2, rozpakowałem w folderze z modułami FPC, ściągnąłem allegro.pas, rozpakowałem w tym samym folderze, kompilator ma do nich ścieżkę, ale program się nie chce skompilować, wyświetla mi komunikat can't find unit allegro. Co muszę zrobić, żeby zadziałało?
Pokaż jak wyglądają dodane ścieżki w opcjach projektu (zrób zrzut).
Wyglądają tak: Ścieżki dostepu.JPG Trzy pierwsze były wprowadzone domyślnie, czwartą wprowadziłem na wszelki wypadek.
po pierwsze ściągnij to: http://www.lazarus.freepascal.org
Co do allegro, pobrałem stąd:
https://sourceforge.net/projects/allegro-pas/
Mam Lazarus 1.0.14, FPC 2.6.2 dla Windows.
I tak, rozpakowałem to allegro.pas do jakiegoś katalogu np. D:\temp\allegro.
I tam jest tak, podkatalog lib i podkatalog demo. Zakładając że fpc.exe albo ppc386.exe znajduje się w katalogu objętym przez PATH, zatem do kompilacji wpisuje się tylko fpc plik.pas albo ppc386 plik.pas zrobiłem tak:
- Najpierw skompilowałem te pliki pas z katalogu lib:
d:\
cd temp\allegro\lib
fpc allegro.pas
fpc alflic.pas
fpc alfile.pas
I zostały utworzone tam pliki .ppu, .o i .a
- Przechodzę do katalogu demo
cd ..
cd demo
fpc demo.pp -FUD:\Temp\allegro\lib
Musiałem więc najpierw skompilować to co jest w lib a dopiero potem skompilować demo z ustawioną ścieżką modułów. Do utworzonego exe należy dołączyć plik aleg44.dll
Może coś pomoże. :-)
drorat1 napisał(a):
Może coś pomoże. :-)
Trochę pomogło :) Ale nie wiele, bo tak to napisałeś że nie wiele z tego zrozumiałem. To jest typowe dla informatyków, że piszecie tak, że nic nie można z tego zrozumieć. Głównie przez nadużywanie skrótów.
Chyba wreszcie mi sie udało! Napiszę co zrobiłem, to może komuś się przyda :)
0. Korzystam z Windowsa XP i FPC w wersji 2.6.2
- Sciągnąłem bibliotekę allegro w wersji 4.4.2 i rozpakowałem w folderze FPC z innymi modułami (w moim wypadku jest to i386-win32, który z kolei znajduje się folderze units.).
- Sciągnąłem najnowszą wersję allegro.pas (4.4.4) ze strony ich projektu i umieściłem w dowolny miejscu (konkretnie na dysku D).
- Uruchomiłem konsolę cmd i wszedłem do folderu z allegro.pas i uruchomiłem plik fix.bat:
d:
cd allegro.pas
fix.bat win32
Wyświetlił mi się komunikat
Done!
Na stronie z projektem allegro.pas piszą aby w tym momencie "type make and press intro". Nie wiem co to znaczy, ani jak można "wcisnąć intro" (ktoś wie?). Gdy to zrobiłem wyskoczyło mi 7 błędów...
4. Utworzyłem folder o nazwie allegro.pas w katalogu z modułami FPC.
5. Przekopiowałem zawartość podkatalogu "lib" z allegro.pas na dysku D do katalogu z punktu 4.
6. Ścieżkę do modułu miałem w kompilatorze podaną już wcześniej.
7. Dodałem moduł allegro za pomocą komendy uses allegro;
Po wykonaniu powyższych czynności program się skompilował (jupi!), ale przy próbie wykonania wywaliło mi błąd, że brakuje pliku allleg44.dll i przeinstalowanie programu może pomóc. Ale w tym momencie zrozumiałem o co Ci chodziło:
drorat1 napisał(a):
Do utworzonego exe należy dołączyć plik aleg44.dll
Przekopiowałem ten plik (był w podkatalogu lib) do folderu w którym Free Pascal tworzy pliki exe i wtedy zadziałało :) Dziękuję wszystkim osobom, które próbowały mi pomóc :)
drorat1 napisał(a):
Może coś pomoże. :-)
Trochę pomogło :) Ale nie wiele, bo tak to napisałeś że nie wiele z tego zrozumiałem. To jest typowe dla informatyków, że piszecie tak, że nic nie można z tego zrozumieć. Głównie przez nadużywanie skrótów.
Żartujesz...?
@drorat1 wszystko opisał jak należy, ponadto nie ma tam żadnych skrótów, a jedynie nazwy plików, katalogów i rozszerzeń plików; Więc jeśli czegokolwiek nie rozumiesz z tamtego posta, to na pewno nie z winy jego autora; Typowe nie jest to że informatycy produkują jakiś bełkot, tylko to, że ktoś bez specjalistycznej wiedzy próbuje zrozumieć co się do niego pisze, a jak nie zrozumie to wini wszystko i wszystkich, tylko nie siebie;
W każdym razie dobrze, że jednak udało Ci się rozwiązać problem; Zakończ więc wątek, jeśli faktycznie już po problemie.
Mam jeszcze kilka pytań:
- Dlaczego Free Pascal zapisuje programy w folderze o takiej dziwnej nazwie - "i386-win32" i czy ta nazwa ma coś wspólnego z architekturą windowsa (32 bitowy XP/64 bitowy Windows 7)?
- Czy jak będę instalował allegro na windowsie 7 to też powinienem wpisać
d:
cd allegro.pas
fix.bat win32
czy
d:
cd allegro.pas
fix.bat win64
??
PLrc napisał(a):
Mam jeszcze kilka pytań:
- Dlaczego Free Pascal zapisuje programy w folderze o takiej dziwnej nazwie - "i386-win32" i czy ta nazwa ma coś wspólnego z architekturą windowsa (32 bitowy XP/64 bitowy Windows 7)?
Tak właśnie z tym ma to związek. Katalog i386-win32 odzwierciedla $FPCTARGET albo $(TargetCPU)-$(TargetOS) w Lazarusie. Zaś $FPCVERSION określa wersję FPC. Jakiś porządek powinien być, bo możesz mieć problemy.
Ustawienia konfiguracji powinny być w fpc.cfg
- Czy jak będę instalował allegro na windowsie 7 to też powinienem wpisać
d:
cd allegro.pas
fix.bat win32czy
d:
cd allegro.pas
fix.bat win64??
Ja podałem tylko przykładowe katalogi. Nie mam komputera z Win7 ale z XP i nie będę się wypowiadał co do innych architektur. Nie miałem z tym do czynienia. Tylko z i386 i win32 albo wcześniej DOS (go32v2).
Sprawdziłem allegro na windowsie 7 - działa pięknie. Instalacja przebiegła dokładnie tak samo jak to opisałem dla XP, z tą różnicą że tym razem zadziałało wpisanie make
Gdy to zrobiłem konsola nagle zaczęła wypisywać mi mnóstwo rzeczy i skompilowały się jakieś pliki.