Potrzebuję informacji o tym jak wkleić obraz BMP na ekran w turbo pascalu. Jaki to jest UNITS, i gdzie można go ściągnąć?
Moduł graph. Nic nie trzeba ściągać, bo jest już wbudowany.
Tylko po co to pisać w Turbo Pascalu w 2021 roku?
E.. chyba coś przeoczyłem. Moduł graph na szczęście działa. Chodzi ci o jakieś porty ? Mi to potrzebne, bo działa mi prosty asembler, temu się przerzuciłem na turbo pascal. Jednak nie chce mi się rysować ręcznie w turbo , za długo to trwa. Na pewno ktoś z was zna rozwiązanie mojego problemu. Chodzi mi o taką procedurkę , która wrzuca obrazek na ekran. Bardzo proszę.
Rysowanie zrób sobie w trybie 13h. Będziesz miał do dyspozycji 256 kolorów.
Ściągnij sobie przykłady do książki: https://helion.pl/ksiazki/tworzenie-gier-2d-i-3d-w-jezyku-turbo-pascal-piotr-besta,2d3dtp.htm
Bezpośredni link: https://helion.pl/pobierz-przyklady/2d3dtp/
Kiedyś rysowałem 16-kolorowe obrazki z modułem graph - bo to można zrobić bez assemblera.
Są funkcje do działania na obrazkach.
Mógłbyś mi przesłać kod na rysowanie bmp... bardzo proszę. Ja próbuje to robić w assemblerze.
Ok mam jakiś moduł. Nazywa się graf_fx. Dzięki wielkie
Jak pisałem w Pascalu, kiedyś miałem podobny problem jak ty, i po prostu na partyzanta wczytałem plik BMP binarnie i rysowałem kolejne piksele (chyba rozkminiając wcześniej zapisaną w pliku wielkość i szerokość?). I narysowało się. Do góry nogami xD Swoją drogą nie pamiętam, jak to wtedy rozwiązałem, ale byłem megapoczątkujący, więc czy umiałem odwrócić obrazek? Plus całość obrazka wczytywała się z ileś sekund, więc niezbyt było to wydajne, ale wtedy były słabsze komputery.
Z drugiej strony dzisiaj takie rzeczy można osiągnąć jedną linijką HTMLa <img src="costam.bmp">
, więc pytanie, czy warto iść w stare zapomniane języki jak Pascal i bawić się w assembler, jak i tak kończy się na prośbach typu "Mógłbyś mi przesłać kod na rysowanie bmp... bardzo proszę. "
LukeJL napisał(a):
Z drugiej strony dzisiaj takie rzeczy można osiągnąć jedną linijką HTMLa
<img src="costam.bmp">
, więc pytanie, czy warto iść w stare zapomniane języki jak Pascal i bawić się w assembler […]
To pewnie zadanie na studiach, u jakiegoś leśnego dziada. Normalni ludzie nie używają Turbo Pascala od dobrych 25 lat, chyba że dla czystej zabawy, mając już doświadczenie z programowaniem. Tyle że to raczej nie w tym przypadku.
Cuzz napisał(a):
Mógłbyś mi przesłać kod na rysowanie bmp... bardzo proszę.
Nie — po pierwsze dlatego, że to Twój program i nikt nie będzie odwalał całej roboty za Ciebie, a po drugie, że to archaiczne oprogramowanie, którego od dekad nikt nie używa i którego nie da się dziś normalnie używać (bez emulacji). Obstawiam, że mało kto jeszcze pamięta jak się w ogóle programowało pod DOS-a, więc pozostają co najwyżej materiały do znalezienia w Google (a te możesz sobie sam znaleźć).
Jeśli nie jest to zadanie na studia to wywal w cholerę ten zabytek i przerzuć się na współczesnego Pascala. Masz do dyspozycji darmowego i otwartego Lazarusa, a także darmowe Delphi Community, w których można programować jak człowiek, na współczesne systemy, bez babrania się w asmie.
Ok w porządku nie będę nalegać. Mam jeszcze jedno pytanie, mianowicie jakie procedury i funkcje zawiera w sobie modul graf-fx? może ktoś wie?
Ten moduł był pisany razem z książką. Żeby się dowiedzieć jakie procedury i funkcje on zawiera jego ostateczna wersja, przeglądnij plik PogramyPoKorekcji\cR9\moduł graf_fx v.5.0\Graf_fx.pas
.
Możesz też po prostu przeczytać książkę.
Przykłady z plikami BMP są w folderze cR5, więc pewnie wystarczy Ci też moduł graf_fx
z tamtego rozdziału (ma mniej linijek - mniej feature'ów).
@Cuzz: a można wiedzieć, dlaczego i w jakim celu używasz Turbo Pascala?
Zamierzam napisać grę. Po prostu w młodości bawiłem się w turbo pascala i chcę do tego wrócić.
To jest bez sensu w takim razie. Szybciej nauczysz się jakiegoś Pythona czy innego współczesnego języka niż znajdziesz materiały do tego zabytku.
Cuzz napisał(a):
Zamierzam napisać grę. Po prostu w młodości bawiłem się w turbo pascala i chcę do tego wrócić.
Skoro jesteś aż tak zdeterminowany Hero, to dlaczego kosztem innych, dlaczego nam trujesz d ?
Parowóz sprzed 150 łepszy od samochodu etc - to ta sama proporcja czasowa, 150 lat w transporcie odpowiada 25 lat w informatyce
@szatkus: W Pythonie do gier szału nie ma. To praktycznie tak jakbyś polecał Delphi/Lazarusa. Niby to lepsza propozycja niż TP, ale wciąż bieda :]
Po prostu się zapytałem. Co wy macie jakieś kompleksy? ja tylko pytam.
@Cuzz zainteresuj się kompilatorem Free Pascal (i jego IDE wzorowanym na Delphi – Lazarus). Jest cały czas rozwijany, generuje binarki dla współczesnych systemów (Windows, Linux), będziesz miał dostęp do znacznie szerszej gamy różnych bibliotek (zarówno wieloplatformowych jak i specyficznych dla danego systemu) no i przede wszystkim nie będziesz musiał się użerać z niemerytorycznymi odpowiedziami "dlaczego Turbo Pascal".
Co do pierwotnego pytania.
TP ma moduł Graph, niestety jest bardzo wolny w działaniu i do gier to on się chyba nigdy nie nadawał.
No i nie ma tam raczej żadnej funkcji do czytania plików BMP. To trzeba by oprogramować samodzielnie (na podstawie wygóglanej budowy takiego pliku) albo znaleźć gotowiec.
Albo użyć alternatywnej/własnej biblioteki do grafiki pod Turbo Pascalem, znalezionych gdzieś w zapomnianych czeluściach Internetu...
Ale im głębiej w to brnąć tym mniejszy chyba ma to sens.
Pod Free Pascalem widzę że jest moduł SDL. To jest bardzo popularna biblioteka do grafiki i dźwięku, obsługuje różne formaty plików, no i łatwiej będzie ci znaleźć jakieś przykłady (choć pewnie zwykle będą w C).
Do tego można zaprząc jakieś OpenGL i nagle masz akcelerowane 3D i gwarancję dobrej zabawy na całe miesiące (albo aż ci się odechce – którekolwiek będzie pierwsze).
. Mam następne pytanie jak się umieszcza w pliku dane, bardzo proszę o odpowiedz, jak nazywa się ta procedura, z góry dziękuję bo zapomniałem, już nie pamiętam. A co do przesiadki, pomyślę...
Masz bana na google?
https://www.google.com/search?q=turbo+pascal+obsługa+plików
Kurs podstawowy praktycznie każdego języka programowania omawia to zagadnienie!
Ok już w porządku. Udało się. Wszystko działa
Są nowe Jednostki TPU w turbo pascalu : APP.TPU , COLORSEL.TPU , DIALOGS.TPU , DRIVERS.TPU , EDITORS.TPU , MEMORY.TPU , MENUS.TPU , MSGBOX.TPU , OBJECTS.TPU , OUTLINE.TPU, STDDLG.TPU, STRINGS.TPU, TCVN.TPU , TEXTVIEW.TPU , TURBO3.TPU , VALIDATE.TPU , VIEWS.TPU , WINDOS.TPU
Podałbym pliki, ale nie dam rady wstawić.
Dodaję pliki
@Cuzz: nie rób bałaganu na forum — jeden wątek to jeden problem. Forum to nie czat, dyskusji nie ciągnie się w nieskończoność. Jeśli rozwiązałeś problem z wyświetlaniem bitmapy na ekranie, to dyskusję uznaje się za zakończoną. Plusujesz pomocne posty, jeden z nich oznaczasz jako rozwiązanie problemu (zaznaczasz fajeczkę przy nim) i to wszystko. Jeśli masz kolejny problem, o którym chciałbyś podyskutować, to załóż kolejny wątek.
Ten moduł był tworzony przez autora tej publikacji https://helion.pl/ksiazki/tworzenie-gier-2d-i-3d-w-jezyku-turbo-pascal-piotr-besta,2d3dtp.htm
Miałem ją w dzieciństwie, ale tytuł to ma ona na wyrost bo tłumaczy tylko jak rysować rzeczy na ekranie, nie ma tam de facto nic o algorytmach czy strukturach danych, więc po przeczytaniu tego niekoniecznie będzie się umiało napisać samodzielnie Warcrafta, Dune czy Quake jak buńczucznie oznajmia tekst wewnątrz książki. Rysować pixele w 13h czy wyświetlić trójwymiarowy oteksturowany sześcian już owszem. Nic jednak w niej nie ma o grafach wyświetlania, jak Quake trzyma w pamięci mapy i tak dalej. Próby tłumaczenia przez autora czym jest assembler też oceniam bardzo średnio. Jest też co nieco o DMA i odtwarzaniu WAV na soundblasterach za ich pośrednictwem. We wczesnych 2000ych jak się mieszkało na prowincji i nie umiało w angielski i nie znało nikogo innego kto się bawił w programowanie to jednak było sporo.