Handleiding voor BRUSH-TO-BOB (B2B): """"""""""""""""""""""""""""""""""""""" Dit programma zet een 'BRUSH' om naar een 'BOB' of naar een 'SPRITE', met kleuren en al. Wat is een 'BRUSH'? """""""""""""""""""" Een Brush kennen we van het programma DeluxePaint (of Graphicraft enz.). Dit is een tekening van een bep. omvang. Het hoeft dus GEEN heel scherm te zijn. Zo'n Brush wordt in Dpaint gebruikt bv. om een stukje van een tekening ergens anders nog een keer neer te zetten. Wat is een 'BOB' en wat is een 'SPRITE'? """""""""""""""""""""""""""""""""""""""" BOBs (Blitter Objects) en Sprites worden bv. door AmigaBasic gebruikt om de boel in beweging te zetten. Een stuiterend balletje bv. (zie de voorbeeld- programma's op de Basic-diskette). Sprites (die kennen nog we van de CBM 64) bewegen sneller dan BOBs, maar hun breedte mag hoogstens 16 beeldpuntjes zijn (niet veel dus!) en je mag maar 3 kleuren gebruiken (de achtergrondkleur niet meegerekend). De vorm en nog een paar andere gegevens moeten natuurlijk wel doorgegeven worden aan AmigaBasic, zodat die er wat mee kan doen: dit gebeurt via het Object-Formaat (Object.Shape). Kijk maar op pag. 7-9 van het Basic-handboek. Maar als je dat snapt, ben je heel knap... Daarom heeft Commodore een speciaal programma laten maken: de Object-Editor (staat ook op de Basic-diskette). Hiermee kun je dus puntjes zetten, lijntjes trekken, cirkels zetten, afijn alles om een Object te maken en hem op te slaan, zodat je hem later in Basic kunt gebruiken. Waarom dan toch B2B als we de Object-Editor al hebben? """""""""""""""""""""""""""""""""""""""""""""""""""""" Helaas is de Object-Editor rotzooi... Je kunt de kleuren niet veranderen, ook niet eens hoeveel kleuren je wilt hebben (de 'diepte' van het scherm), uitvergroten gaat ook al lastig, en over het bedieningsgemak maar niet te spreken... Maar waarom zouden we zo'n tekenprogramma gebruiken (wat DAT is het toch eigenlijk!) als.... we DPaint al hebben!!!!! Een beter programma om plaatjes te maken is er niet. En bovendien, de meeste al gemaakte plaatjes komen uit Dpaint. Helaas schrijft DPaint plaatjes nooit weg in 'Object-Formaat' maar in zg. ILBM-formaat. Dit is een soort standaard op de Amiga, want bv. Graphicraft gebruikt ook ILBM. Vandaar B2B! Gebruik van het programma """""""""""""""""""""""""" Het programma is geschreven in Basic en daarna omgezet in machinetaal (gecompileerd) om zodoende de snelheid te verhogen. De liefhebbers die het programma in Basic willen hebben moeten hun vinger maar opsteken en het tegen me zeggen. Het heet dus: B2B. Als je dit intikt in CLI, start het automatisch op. Het programma heeft 2 'libraries' (bibliotheken) nodig: dit zijn verzamelingen machinetaalprogramma's die Commodore gratis voor ons heeft gemaakt. Het zijn 'graphics.bmap' en 'dos.bmap' en ze staan ook op de Basic-diskette, in de directory 'Basicdemos'. Vervolgens moet je de naam van de Brush intikken. Wil je bv. het vuurwerk met de naam 'fireworks' inladen dat in directory 'brush' staat op de 'Dpaint' diskette, dan voer je als naam in: Dpaint:brushes/fireworks Vervolgens wordt deze brush opgeladen. Daarna moet je met de menubalk bovenaan werken. Je weet wel, naar boven gaan met de muis, rechterknop ingedrukt houden en kiezen maar... Van achter naar voren zijn dit de mogelijkheden: 'Belangrijk!' """"""""""""" 'info': ja, hoor es, zelf kijken! 'Flags' """"""" Met flags (=Vlaggen, dat betekent dat je ze wel of niet kunt aanzetten. Dit wordt aangegeven door een "V-tje") bepaal je een aantal 'eigenaardigheden' van het toekomstige Object. Dit geldt overigens niet voor sprites. 'SaveBOB': de BOB wordt, wanneer hij een andere positie op het scherm krijgt in je Basic-programma, op het scherm afgedrukt op z'n ouwe plaats. Net als het tekenen met een Brush in Dpaint dus. 'SaveBack': het tegenovergestelde, de ouwe achtergrond wordt er weer neer gezet. Net als een soort sprite. 'Overlay': als deze optie gekozen is, is zijn de punten van het Object die niet gezet ('aan' dus) zijn, transparant. De achtergrond wordt daar dus NIET bedekt. Ook dit geeft weer een sprite-effect. 'Type' """""""" Hiermee kun je bepalen of je het Object als 'sprite' of als 'BOB' wilt wegschrijven. 'Sprite' kun je zoals gezegd alleen kiezen als de breedte niet groter is dan 16 pixels, en je, als max. aantal kleuren in Dpaint, 4 gekozen hebt. Anders is deze optie uitgeschakeld. 'Akties' """"""" 'Stoppen' spreekt voor zich. 'Andere brush laden': Als je toch die andere brush bedoeld had. Het programma start dan overnieuw. 'Object wegschrijven' spreekt ook voor zich. Je moet dan de naam intikken waaronder je het zaakje wilt opslaan. Hoe wordt het Object opgeslagen? """""""""""""""""""""""""""""""" Zoals gezegd: in Object-Formaat. Alle relevante gegevens zitten hierin. Maar... alleen als het Object een sprite is worden OOK de 3 kleuren in dit formaat gezet. Als het een BOB is dus niet. Je zou dan met de Basic- instruktie 'PALETTE' iedere kleur weer opnieuw moeten vaststellen. Vervelend dus... Daar heb ik het volgende op bedacht: de kleuren van een BOB worden in een aparte 'file' (gegevensbestandje) gezet, met de naam die je zelf hebt ingetikt plus de toevoeging .col erbij. Dus 'BOBby.col' zijn de kleuren van de BOB met de naam 'BOBby'. Voor iedere kleur 2 bytes, dus de 'file' is max. 64 bytes lang, dus zoveel ruimte kost het toch ook weer niet, he? Hoe kan ik dan het Object in mijn eigen Basicprogramma gebruiken? """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" Heel simpel: met de standaard instructies OPEN en OBJECT.SHAPE, kijk maar op blz. 8-92 van het Basic-handboek. Alleen moeten de kleuren in het aparte bestandje nog opgeladen worden. Hiervoor het ik een korte subroutine geschreven die je in je programma kunt opnemen. Een voorbeeld-programma dat een Object en de kleuren oplaadt, het benodigde scherm enz. opent, en je met de muis het Object over het scherm laat bewegen, heb ik 'LaadObject' genoemd. Ook dit programma moet je gehad hebben bij B2B. Tot slot: """"""""" Zou ik er nog op willen wijzen dat ik om de 'brush' op te laden de subroutine 'LoadILBM' van de Basic-diskette heb gebruikt. Want waarom zouden we het wiel opnieuw uitvinden? Daarover zijn 2 opmerkingen te maken: 1) Het copyright is van Commodore 2) Normaal wordt het plaatje opgeladen beginnende vanaf de linkerbovenhoek. In B2B niet. Antwoorden mijnerzijds: 1) Niet zeiken 2) In het programma heb ik de instruktie GET gebruikt om de opgeladen brush 'op te pakken' en in het geheugen op te slaan. Maar GET is alleen geldig BINNEN het kader van de window. Daarom heb ik door wat te klooien het plaatje naar rechts-beneden opgeschoven. Daardoor is het mogelijk dat er bij te lange plaatjes gekke dingen gaan gebeuren. Bij normaal gebruik (niet al te grote brushes) is er niks aan de hand. Ik hoop dat dit programma veel werk uit handen neemt, want bij het maken van mooie graphics moet je je kunnen concentreren op het tekenwerk, en niet op het programmeerwerk! Jacco! de Leeuw, Zaandam P/a BBS de SAEN, 075-314430