kategoria: Blitz
[#31] Re: Nauka Blitz Basic

@pch, post #30

[#32] Re: Nauka Blitz Basic

@mmarcin2741, post #29

Nietrafione. Robienie beki z niczego. Jeśli ktoś kuma angielski, to wie, że żaden dick tam nie padł. Ubaw mają tylko ci, którzy nie mają pojęcia jak się dick'a wymawia. Sorry za offtop

@Tukinem: Blitz będzie szybszy od Amosa, ale cudów bym się nie spodziewał. Na gry typu R-Type potrzebny jest assembler.

Ostatnia aktualizacja: 14.03.2022 12:55:11 przez mastaszek
[#33] [post oznaczony jako OT] wyświetl Re: Nauka Blitz Basic
[#34] [post oznaczony jako OT] wyświetl Re: Nauka Blitz Basic
[#35] [post oznaczony jako OT] wyświetl Re: Nauka Blitz Basic
[#36] Re: Nauka Blitz Basic

@pch, post #31

Dzięki. Udało mi się załadować. A jest jakieś polecenie, by wczytać paletę kolorów z ładowanego IFFa? Chodzi mi o coś w stylu GETPALETTE.
[#37] Re: Nauka Blitz Basic

@tukinem, post #36

LoadBitmap
LoadPalette

Oba wczytują palette - sprawdź manual albo lepiej, gdy masz kursor na danej komendzie w TED-zie to naciśnij SHIFT HELP

Edit
Naciskając HELP dostaniesz podgląd skladni na górnej belce.
Naciskając SHIFT HELP, otworzy się amigaguide z opisem komendy.
Nie wszystkie komendy mają opis.

Ostatnia aktualizacja: 14.03.2022 17:20:36 przez pch
[#38] Re: Nauka Blitz Basic

@pch, post #37

Właśnie LoadBitmap nie wczytuje mi palety. Może dlatego, że IFF ma paletę 8-kolorową, a ekran miałem 32 kolorowy?

Jeszcze jedno pytanie. LoadBitMap działa jedynie w trybie AMIGA. Przełączając na ten tryb znika mi otwarty DISPLAY w trybie BLITZ i pojawia się Workbench na czas załadowania bitmapy i przełączenia z powrotem do trybu BLITZ. Da się jakoś ominąć to, żeby nie mrugał ekran?
[#39] Re: Nauka Blitz Basic

@tukinem, post #38

Nie pamiętam czy te dwie komendy działają w QAMIGA, - sprawdź, jeśli działają to ekran nie zniknie (zamiast przechodzić do AMIGA przejdź do QAMIGA)

Jeśli nie zadziała to na starcie gdy jesteś jeszcze w Amiga, wczytaj wszystkie obrazki i palety a potem tylko wyświetlaj potrzebna
[#40] Re: Nauka Blitz Basic

@tukinem, post #38

LoadBitmap nie wczytuje mi palety.

Chyba musisz najpierw zainicjować paletę:

InitPalette 0,32
Use Palette 0

Poza tym zmiana koloru Print to Pen oraz Paper dla tła. Przy Text zmiana koloru to Ink kolor tekstu,kolor tla (lub na odwrot, nie pamietam).

Colour kolor_textu,kolor_tła
[#41] Re: Nauka Blitz Basic

@pch, post #37

Tryb QAMIGA jak najbardziej działa z LoadBitmap.

Komenda LoadBitmap ma taką składnię po naciśnięciu SHIFT+HELP:
LoadBitMap BitMap#,Filename$[,Palette#]

Więc wpisałem tak:
LoadBitMap 0,"_plik.iff"


Wczytało obrazek. Żeby odczytać paletę, to należy wpisać tak?

LoadBitMap 0,"_plik.iff",3


Chodzi o 8-kolorową paletę.
[#42] Re: Nauka Blitz Basic

@tukinem, post #41

Ostatni argument (opcjonalny) dla LoadBitmap to paleta (jako objekt) do którego zostanie wczytana paleta z obrazka.
Jest to swego rodzaju uproszczenie dla :
Loadpalette
Loadbitmap
by pominąć te pierwsza komendę.
Loadpalette samo inicjuje objekt palety.
LoadBitmap... Nie pamiętam, może potrzebować initpalette.

Żeby taka palette wymusić na aktualnym SLICE to używasz jednej z poniższych komend:
Showpalette lub usepalette

Jeśli nie używasz SLICE tylko DISPLAY to potrzebujesz komendy
Displaypalette

Poświęć chwilę na czytanie manuala- to naprawdę tam jest.

Ostatnia aktualizacja: 15.03.2022 20:20:48 przez pch
[#43] Re: Nauka Blitz Basic

@pch, post #42

Poświęć chwilę na czytanie manuala- to naprawdę tam jest

albo przykładów, które podlinkowałem to tam też jest :)
[#44] Re: Nauka Blitz Basic

@pch, post #42

Dzisiaj siadłem i trochę pokombinowałem w Blitzu.

Użyłem Use Palette 0 i działa, ale mam 3 pytania.

1. Program wczytuje najpierw bitmapę w swojej palecie, którą później poprawia komendą Use Palette 0 pomimo, że ta komenda jest przed komendą Use Bit Map 0. Czy da się tak zrobić, aby wyświetlić od razu obrazek w docelowej palecie?

2. Sam obraz pod prockiem 68000 7MHz wczytuje się bardzo powoli. Tzn wyświetla się "płynnym" scrollem z góry na dół zamiast ukazać się od razu w całości. Czy zawsze tak jest?

3. Chciałem utworzyć dyskietkę bootowalną z grą, lecz nie uruchamia się podczas bootowania. Zatrzymuje się w AmigaDOS. Pod Workbenchem startuje bez problemu. Jak to zrobić, aby się bootowało z ADFa? Plik startup-sequence w drawerze DF0:S prawidłowo utworzyłem w razie czego.


Z 1 pytaniem poradziłem sobie tak, że na zmianę dawałem komendy:
QAMIGA
LoadPalette 0,"obraz"
BLITZ
Use Palette 0
QAMIGA
LodaBitMap 0,"obraz"
BLITZ


Z 3 pytaniem natomiast dałem radę tak, że skopiowałem całe BLITZLIBS: do DF0:LIBS.

Jeśli coś nie tak zrobiłem, to proszę o poprawienie mnie.


Ostatnia aktualizacja: 17.09.2022 21:33:18 przez tukinem
[#45] Re: Nauka Blitz Basic

@tukinem, post #44

A masz bootblock bootojacy ?
Na pewno nie popełniłeś literówki przy s-s ?
A nie jest też tak że gra wymaga jakiejś biblioteki której nie ma na dyskietce i dlatego wygląda to że wyskakuje okno AmigaDos.
Podeślij obraz, sprawdzę co i jak .
[#46] Re: Nauka Blitz Basic

@Norbert, post #45

No właśnie teraz dopisałem, że skopiowałem całe BLITZLIBS: do DF0:LIBS i uruchamia się.

TUTAJ wrzuciłem ADFa. Bootowanie działa. Jest tam też blik soko_blitz.bb2 z kodem. Po uruchomieniu należy wcisnąć "c" lub "t" aby wczytało w docelowej palecie. Wciśnięcie "a" wczyta bitmapę w palecie domyślnej.
[#47] Re: Nauka Blitz Basic

@tukinem, post #44

To jest troche inaczej.
Blitz, faktycznie wczytuje obrazek do pamieci (przypisze go do obiektu "bitmap" o numerze jaki podajesz w komendzie loadbitmap) ale nie wczytuje domyslnie palety tego obrazka chyba ze podasz oststni parametr (3ci) komendy loadbitmap (teraz juz nie pamietam ale moze wczytuje te palete nawet bez podania tego parametru i domyslnie ptrzypisze ja do objektu palette nr.0)

W kazdym razie ta komenda wczytuje obrazek - wiec Ty nie "poprawiasz" obrazka komenda "use palette" a tylko kazezsz blitzowi ustawic objekt palety o danym numerze jako aktywny i przekopiowac informacje o tej palecie do aktywnego ekranu (jesli use palette dales w amiga mode, lub aktywnego slice jesli dales te komende w blitz mode) - wtedy kolory sie zminia/poprawia

Wiec by obrazek miec od razu we wlasciwych kolorach to musisz go wyswietlic PO przekopiowaniu informacji o palecie (czylui kolenosc jaka podales pozniej jest OK)

Co do predkowsci to nie wiem. w jaki sposob wyswietlasz ten obrazek?
[#48] Re: Nauka Blitz Basic

@pch, post #47

Ja bym jednak uzyl:

bitmap 0,320,256,4
loadbitmap 0,"obrazek",0
blitz
slice 0,44,4
use slice 0 ;<- byc moze zbedne bo chyb komenda "slice" od razu aktywuje robiony slice
use palette 0
show 0
mousewait
end
[#49] Re: Nauka Blitz Basic

@pch, post #48

Samo slice 0,44,4 wyświetla na górze ekranu różne glitche. Chyba trzeba pełną komendę "slice" wpisać.
U mnie zamiast
slice 0,44,3
było:
slice 0,44,320,256,$fff8,3,8,32,320,320
Wtedy nie miałem żadnych glitchy na ekranie. Może najlepiej wrzucę tu cały kod tego programu.
WBStartup
VWait 100
BLITZ

Slice 0,44,320,256,$fff8,3,8,32,320,320
Use Slice 0
BitMap 0,320,256,3
Use BitMap 0
Show 0

BitMapOutput 0
InitPalette 0,4

Cls 0

QAMIGA : ;uzylem tego trybu, aby nie pojawialo sie okienko workbencha

LoadPalette 0,"obrazek"
LoadBitMap 0,"obrazek"

BLITZ

UsePalette 0
MouseWait

FreePalette 0
FreeBitMap 0
FreeSlices
Amiga
End
[#50] Re: Nauka Blitz Basic

@pch, post #48

Wpisałem teraz Twój kod i działa. Po "mousewait" przełączyłem się na QAMIGA i wpisałem loadbitmap 0,"obrazek2" aby załadować drugi obrazek, a ten już wczytuje się znowu od góry do dołu. Jak zmieniłem QAMIGA na AMIGA wtedy nie ma tego efektu wczytywania z góry na dół, ale wyskakuje na ten czas okienko workbencha. Strasznie dziwne to wszystko.

W Amosie to było po prostu:

Load IFF "obrazek",0
Wait Key
Load IFF "obrazek2",0
Wait Key
End


I wczytywało od razu cały obrazek na ekran wraz z paletą
Podoba mi się natomiast w Blitzu, że CrunchyDAT bardzo ładnie pakuje pliki. Plik który jest na moim ADFie spakował 44% pojemności.
[#51] Re: Nauka Blitz Basic

@tukinem, post #49

Jesli minimalna forma slice dla Ciebie nie bardzo dziala to uzywaj smialo pelnej - nie ma problemu

Co do samego programu to masz tam troche balaganu i kilka zbednych komend.

Dlaczego na starcie wchodzisz w BLITZ skoro za chwile musisz przeskakoczyc do QAMIGA (by zaladowac obrazek) no a potem wrocic do BLITZ by wyswietlic "slice"?

BitMapOutput - -mozesz tutaj pominac no chyba ze zamierzasz cos pisac na ekranie (na tej bitmapie)
InitPalete -- zbedne bo LoadBitmap zainicjuje palete dla Ciebie
LoadPalette -- zbedne, dodaj tylko cyfre 0 jako 3ci argument przy LoadBitmap
Free... -- wszytskie te komendy mozesz pominac bo jesli zakonczysz wlasciwie program (a konczysz wlasciwie bo komenda End - to blitz posprzata za Ciebie to co zostalo stworzone)

WBStartup

pic$="sciezkaDoObrazka"
BitMap 0,320,256
LoadBitMap 0,pic$,0
VWait 100

BLITZ
Slice 0,44,4
Use Palette 0
Show 0

MouseWait
End


uruchom ten listing dwukrotnie - najpierw tak jak podalem a potem usun 0 (3ci argument w LoadBitMap) - zobaczysz ten sam efekt o ktorym mowiles w 1szym pytaniu
[#52] Re: Nauka Blitz Basic

@tukinem, post #50

Zaladuj oba obrazki do ospowiednich bitmap na starcie programu (w AMIGA mode) a potem dzialaj tylko w Blitz.

Na EAB mam watek o miejscu (w kodzie) wczytywania include-ow (pewnie to sie tez odnosi do obrazkow) - bylem BARDZO zaskoczony wynikiem (i nie tylko ja) - moglbym powiedziec ze roznica w predkosci dzialania calosci byla okolo 8 razy
[#53] Re: Nauka Blitz Basic

@pch, post #51

O kurczę teraz oba obrazki wskakują momentalnie dzięki wielkie.

Miałem trochę problem, bo w kodzie napisałeś BitMap 0,320,256 i nie wpisałeś ostatniego argumentu o ilości bitplanów, ale poradziłem sobie z tym.

Gdybyś miał czas i cierpliwość, to wytłumaczyłbyś mi jak wycinać i wklejać shape'y oraz używać sprajtów w Blitzu.
[#54] Re: Nauka Blitz Basic

@tukinem, post #53

Narysuj sobie boby (shape sie nazywa w blitzie) w dpaincie i nagraj jako iff
wgraj ten obrazek do jakiegos BitMap object (LoadBitmap)
jesli wgrales wiecej niz jeden to uzyj Use Bitmap by ustawic potrzebny obrazek jako aktywny
uzyj komendy GetaShape by wyciac potrzebny kawalek i przypisac go do shape (boba)
GetaShape nrBoba,pozycjaX,pozycjaY,szerokosc,wysokosc
jesli chesz uzywac danego boba jako sprajta to musisz go zamienic komenda GetaSprite nrSproajta,nrBobaDoZamiany
[#55] Re: Nauka Blitz Basic

@pch, post #54

no i teraz masz do wyboru 3 sposoby na rysowanie boba (shape) na ekranie:
BLIT (BLOCK - ultra szybka wersja blita - jesli tylko sie da to uzywam)
QBLIT
BBLIT
lepiej jakbys sam przeczytal jak uzywac jakiego bo to Twoja decyzja na ktory sie zdecydujesz - kazdy ma zalety i wady (QBLI i BBLIT wymagaja dodatkowo zainicjowania buforow i musisz sie naprawde w czytac w przyklady by zrozumiec gdzie i jak wstawic dodatkowe komendy jakie one wymagaja)
[#56] Re: Nauka Blitz Basic

@pch, post #55

sprajty sa latwiejsze bo masz jedna komende do ich rysowania SHOWSPRITE
ale mozesz sie zakrecic przy poprawnym ustawianiu ich kolorow (kdzies tu mam watek o tym bo sam bylem zakrecony)
[#57] Re: Nauka Blitz Basic

@pch, post #52

Zaladuj oba obrazki do ospowiednich bitmap na starcie programu (w AMIGA mode) a potem dzialaj tylko w Blitz.

czyli mam np. zapisać to tak?
pic1$="obrazek1"
pic2$=:obrazek2"
LoadBitMap 0,pic1$,0
LoadBitMap 1,pic2$,0

BLITZ
Use Palette 0
Show 0

MouseWait
Show 1


czy to nie o to chodzi?

chyba nie...

co do bobów to mam przygotowane obrazki w pliku iff, ale one są już przystosowane do trybu Dual Playfield.

Ostatnia aktualizacja: 18.09.2022 15:19:00 przez tukinem
[#58] Re: Nauka Blitz Basic

@tukinem, post #57

Tak tylko przed
show 1
Dodaj
Use palette 1

I w LoadBitmap (tym drugim daj 1 na końcu)
[#59] Re: Nauka Blitz Basic

@pch, post #58

A jeśli będą np. 4 tła w różnych momentach gry, to mam wpisać tak (paleta wszędzie jest jednakowa):
AMIGA
BitMap 1,320,256,1
BitMap 2,320,256,1
BitMap 3,320,256,1
BitMap 4,320,256,1

LoadBitMap 1,obraz1$,1
LoadBitMap 2,obraz2$,1
LoadBitMap 3,obraz3$,1
LoadBitMap 4,obraz4$,1

BLITZ
Use Palette 1
Show 1 : VWait 10 : MouseWait
Show 2 : VWait 10 : MouseWait
Show 3 : VWait 10 : MouseWait
Show 4 : VWait 10 : MouseWait

AMIGA
End



A jeszcze jedno pytanie, bo już mnie drażni ciągłe restartowanie. Da się jakoś przerwać działanie uruchomionego programu? Np. Jeśli dam Amiga+X i uruchomię, to da się jakoś przerwać uruchomiony program?

Ostatnia aktualizacja: 18.09.2022 16:06:13 przez tukinem
[#60] Re: Nauka Blitz Basic

@tukinem, post #59

Control, lewy alt, c
tak przerywasz ale debugger musi być aktywny (w prefsach kompilatora)

Jak masz dużo obrazków to trzymanie ich wszystkich w pamięci pewnie nie będzie dobrym pomyślem

Wtedy raczej lepiej zrobić jeden lub dwa obiekt bitmap a gdy potrzeba zmienić obrazek na jakiś dalszy (spoza tych dwóch) to wychodzisz do amiga mode i dajesz LoadBitmap do jednego z nich

To już sam wybierzesz co lepsze

Ostatnia aktualizacja: 18.09.2022 16:24:36 przez pch
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem