Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Area-Commands (graphicslib) OLD!
#11
Moin,
gibt's das (oben gezeigte) in AmiBlitz?
Wenn nein: Warum nicht?
Zitieren
#12
hackball schrieb:Moin,
gibt's das (oben gezeigte) in AmiBlitz?

Du meinst sicherlich als Library oder Include oder ?
Soweit ich das sehe nicht, es gibt in der normalen graphics.lib AreaElipse_ AreaDraw_ usw...
Aber das wird wohl kaum dem entsprechen das du gemacht hast

Zitat:Wenn nein: Warum nicht?

Weil du es nicht machst Wink Big Grin
Zitieren
#13
Blackbird schrieb:
hackball schrieb:Moin,
gibt's das (oben gezeigte) in AmiBlitz?
Du meinst sicherlich als Library oder Include oder ?
Soweit ich das sehe nicht, es gibt in der normalen graphics.lib AreaElipse_ AreaDraw_ usw...
Aber das wird wohl kaum dem entsprechen das du gemacht hast
Zitat:Wenn nein: Warum nicht?
Weil du es nicht machst Wink Big Grin

Hm, aber da müßte ich noch viel mehr machen, z.B. in Wanderers Includes wildern.... :lol:
Nee, dafür ist der o.g. Src ja jetzt frei, da könnt ihr das als Maintainer mal schön selbst einbauen. :mrgreen:
Zitieren
#14
hackball schrieb:Ich glaube, ich weiß (wieder), warum es manchmal crasht. Die maximale Anzahl an Area-Steps wird nicht gecheckt. da müßte man einen Branch einbauen oder einen Fehler werfen.

Code:
...
LEA      gfxbas(pc),a0
MOVE.l         (a0),a6
LEA        buff(pc),a0
MOVE.l         (a0),a1
LEA     areainf(pc),a0  ;eigene structur
MOVE.l         #360,d0   ;<<<<<   hard coded max steps for polygon !!!
JSR      _initarea(a6)  ;err.l=InitArea_(*ai.AreaInfo,&buff$,360)
...

*Edit: gfxbase könnte man auch direkt nach a6.... usw.

:roll: Mach ich dann mal, Sünden der Jugend usw.......
Zitieren
#15
Ooops, muß ich erst mal wissen, was für Libnumbers noch frei sind.?
Zitieren
#16
Hier ist noch ein simples Beispiel für diese Lib:

Code:
; please be sure `overflow errors` ore disabled !! thenkks !
;
; linepattern demo for the RayAreaLibrary (C) by Frank Brandis
;

;FindScreen0    ;getting first screen (ted)
Screen0,3

Window1,0,0,320,250,$140e,"RayAreaLib , PatternDemo",1,0

*rp=RastPort(1)
WJam0

; first,test some linepatterns

;the binary values are better than Hex or Decimal
;note: 1 is a point,0 not .

pt.w=%1111111100000000:LinePattern *rp,pt:Wline 20,30,200,30,1
pt.w=%1100110011001100:LinePattern *rp,pt:Wline 20,40,200,40,1
pt.w=%1111000011110000:LinePattern *rp,pt:Wline 20,50,200,50,1
pt.w=%1010101010101010:LinePattern *rp,pt:Wline 20,60,200,60,1
pt.w=%1100000011000000:LinePattern *rp,pt:Wline 20,70,200,70,1
pt.w=%0011110000110000:LinePattern *rp,pt:Wline 20,80,200,80,1
pt.w=%1111111111111111:LinePattern *rp,pt:Wline 20,90,200,90,1

;setting up a fillpattern
;usefull for Wbox,WCls  etc. ( NOT for SetRast_*rp,pen !!)

Pattern *rp,$5555,$AAAA,$AAAA,$5555  ;rasters
WBox 20,100,300,130,1

Pattern *rp,$FFFF,$0000,$FFFF,$0000   ;Stripes
WBox 20,140,300,170,2

Pattern *rp,$FFFF,$FFFF,$FFFF,$FFFF  ; full colour !!
WBox 20,180,300,210,3

Repeat:Until WaitEvent=$200

End    ;end of line     :)

NoCli
WBStartup

Maybe usefull, to anyone? Big Grin
Zitieren
#17
Hm, stellt euch mal vor, man würde das LinePattern ROL oder ROR verändern und dann ein Rechteck mit einem entsprechend unterbrochenem LinePattern zeichnen, solange man das Rechteck mit der Mouse zeichnet...

Auflösung....
Zitieren
#18
BTW:
Die Library gibt es fertig hier (1.5kB):

*Edit: Libnr# ist 22, also DevBeta, nach meinem Katalog. Sorry.
Zitieren
#19
Hier ein paar visuell ansprechendere Beispiele für Patterns, die man für das Füllen benutzen kann:

Na, überzeugt?
Zitieren
#20
Ok.

Hier ist der Editor. Achtung!!! SEEEEEHHR ALT!! Classic, sozusagen. :roll:

Und der Code zum Laden der Patterns.


Code:
NEWTYPE.lv
  a.w
  nam.s            ;pattern name
  patt.w[16]     ;$0000,$7FFF usw.;4x4 gross
End NEWTYPE


Dim List pattlist.lv(30)
USEPATH pattlist()

DEFTYPE.w
Dim patt.w(16,16)  ;malflaeche

....


.loadpatts
ResetList pattlist()
Gosub clearall
g$=ASLFileRequest$("name of file to load",pa$,fi$,"#?.patt",WindowX,WindowY,WindowWidth,WindowHeight)
If g$<>""
  If ReadFile(0,g$)
    FileInput0
    If Inkey$(8)="BB^PATED"  ;kennung ok
      ClearList pattlist()
      While NOT Eof(0)
        If AddLast(pattlist())
          \nam=Edit$(30)
          For a=0To15
            \patt[a]=Cvl(Inkey$(4))
         Next
        EndIf
      Wend
      CloseFile0
    Else
      CloseFile0
      EasyRequest"pattern ed message:","file format not ok !"," ok "
    EndIf
    GTChangeList1,#liste
    ResetList pattlist():numb=-1
    GTChangeList1,#liste,pattlist()
  Else
    EasyRequest"pattern ed message:","file not found !"," ok "
  EndIf
EndIf
Use Window1
Return

Und die Beispiel-Muster, zuguterletzt.
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 6 Gast/Gäste