Schrift Fade

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Mathias-Kwiatkowski

Betreff: Schrift Fade

BeitragSa, Apr 21, 2007 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
diesen code:

BB Code

Code: [AUSKLAPPEN]
Graphics 640,480,16,1

Dim sintab(359)
For i=0 To 359
  sintab(i)=Sin(i)*20
Next

font=LoadFont("Arial",48,1,0,0)
image=textwave_create("GAME OVER",font)

While Not KeyHit(1)
  Cls
   Color 255,0,0
   Rect 0,0,640,480
  angle=(angle+3) Mod 360
  textwave_draw(image,197,216,angle)
  Flip
Wend
FreeFont font
FreeImage image
End



;---------------------------------------------------------------------
;image=Identität eines Bildes
;x    =Bildschirmkoordinate X
;y    =Bildschirmkoordinate Y
;angle=Winkel in Grad (0-359)
;---------------------------------------------------------------------
Function textwave_draw(image,x,y,angle)
  width =ImageWidth (image)
  height=ImageHeight(image)
  For i=0 To width-1
    DrawImageRect image,x+i,y+sintab((angle+i) Mod 360),i,0,1,height
  Next
End Function



;---------------------------------------------------------------------
;text=Beliebiger Text
;font=Identität einer Schrift
;---------------------------------------------------------------------
Function textwave_create(txt$,font)
  SetFont font
  width =StringWidth (txt$)
  height=StringHeight(txt$)
  image =CreateImage (width,height)
  image2=CreateImage (width,height)
  SetBuffer ImageBuffer(image2)
  Color 255,255,255
  Text 0,0,txt$
  MaskImage image2,255,255,255
  SetBuffer ImageBuffer(image)
  For i=0 To width-1
    pro=250-(400*Abs(width/2-i))/width
    Color pro,pro,pro/2
    Rect i,0,1,height,1
    DrawImageRect image2,i,0,i,0,1,height
  Next
  SetBuffer BackBuffer()
  FreeImage image2
  Return image
End Function


in Bmax Umwandeln, habe mich auch dran versucht, es geht leider nur nicht warum?


Code: [AUSKLAPPEN]
Import "bbtype.bmx"
Import "bbvkey.bmx"

Graphics 640,480

Global sintab[359+1]
For i=0 To 359
  sintab(i)=Sin(i)*20
Next

image=textwave_create("GAME OVER",font)

While Not VKeyHit(1)
  Cls
   
  angle=(angle+3) Mod 360
  textwave_draw(image,197,216,angle)
  Flip
Wend
End



'---------------------------------------------------------------------
'image=Identität eines Bildes
'x    =Bildschirmkoordinate X
'y    =Bildschirmkoordinate Y
'angle=Winkel in Grad (0-359)
'---------------------------------------------------------------------
Function textwave_draw(image,x,y,angle)
  width =ImageWidth (image)
  height=ImageHeight(image)
  For i=0 To width-1
    DrawImageRect image,x+i,y+sintab((angle+i) Mod 360),i,0
  Next
End Function



'---------------------------------------------------------------------
'text=Beliebiger Text
'font=Identität einer Schrift
'---------------------------------------------------------------------
Function textwave_create(txt$,font)
'  SetFont font
  width =TextWidth (txt$)
  height=TextHeight (txt$)
  image =CreateImage (width,height)
  image2=CreateImage (width,height)
  SetColor 255,255,255
  DrawText txt$,0,0
 
  For i=0 To width-1
    pro=250-(400*Abs(width/2-i))/width
    SetColor pro,pro,pro/2
    DrawRect i,0,1,height
    DrawImageRect image2,i,0,i,0
  Next
 
  Return image
End Function


bin dankbar um jede hilfe ^^

simi

BeitragSa, Apr 21, 2007 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
wäre toll wenn man wissen würde, was nicht geht.... Rolling Eyes
 

ChristianK

BeitragSa, Apr 21, 2007 15:39
Antworten mit Zitat
Benutzer-Profile anzeigen
In BlitzMax gibt es keine Buffer mehr. Wink

Lunatix

BeitragSa, Apr 21, 2007 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Mal ganz davon abgesehen, das ich das nicht als "von BB zu BlitzMax" umgewandelt ansehe... das ist kein "korrektes BlitzMax"...
-> image ist ein INT handle, wird vom GarbageCollector nicht aus dem speicher netfernt
-> deine Variablen tauchen einfach irgendwo im code auf, ohne deklariert worden zu sein
-> "%$#..." wären in ":Int,:String,:Float" methode übersichtlicher

Und ja, es gibt keine Buffer in max... -> Writepixel
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Artemis

BeitragSa, Apr 21, 2007 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Code ist per File -> Import BB Project entstanden.

Man sollte sich aber merken: Das ist eigentlich der größte Sch**ß, der in die IDE eingebaut werden konnte, da man BB-Code nicht einfach in BlitzMax-Code umwandeln kann. Was diese Import-Funktion macht, ist die KeyHits/Downs umzuschreiben und ein paar andere Funktionen einfach auf eine leere Funktion umzulenken, oder umzuschreiben.
 

Dreamora

BeitragSa, Apr 21, 2007 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Vor allem optimiert die Funktion nicht auf OO.

Aber obiger Code kann aus 2 Gründen eh nicht umgewandelt werden:

1. Buffer - Wie gesagt gibts keine DrawTargets mehr
2. DrawImageRect gibts nimmer. Es gibt zwar eine Funktion die so heisst, die tut aber was anderes. Es gibt im englischen Codearchiv verschiedene rekonstruktionen, inwiefern die mit dem neuen DX7 Modul noch gehen weiss ich jedoch net, da net versucht (meine von damals heisst DrawImageArea)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group