Brauche 'BrushBuffer' denn es nicht gibt?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

hectic

Sieger des IS Talentwettbewerb 2006

Betreff: Brauche 'BrushBuffer' denn es nicht gibt?

BeitragSo, März 26, 2006 19:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie der Titel schon sagt, bräuchte ich ein 'BrushBuffer'. Also ein Brush den ich während der Laufzeit bemalen kann. Kann man sowas in irgend einer Weise faken? Von mir aus auch per GrabImage oder was auch immer, ich brauche nur ein Brush, denn ich auf ein Triangle ziehen kann...

5k41

BeitragSo, März 26, 2006 19:38
Antworten mit Zitat
Benutzer-Profile anzeigen
bestimmt falsch, aber könntest du nicht ein Brush mit einem Bild erstellen, welches du per Setbuffer Imagebuffer(bild) dann bemalst?

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

Mr.Keks

BeitragSo, März 26, 2006 19:44
Antworten mit Zitat
Benutzer-Profile anzeigen
man kann tatsächlich mit ql:setbuffer ql:texturebuffer() auf texturen rummalen. und da du ja dem brush ne textur zuweisen kannst, sollte das doch alles super funktionieren ^^.
MrKeks.net

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, März 26, 2006 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei 'SetBuffer ImageBuffer' kommt dann 'Image does not exist'... Crying or Very sad

Mr.Keks

BeitragSo, März 26, 2006 21:12
Antworten mit Zitat
Benutzer-Profile anzeigen
darum habe ich ja auch texturebuffer geschrieben Wink
MrKeks.net

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, März 27, 2006 3:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Inarie, danke es hat gelappt!!! Ich bin so froh Very Happy Ein Grinsen von einem Ohr zum anderem. Mache gleich Sockentanz hier... Für alle die es auch wissen möchten...

Code: [AUSKLAPPEN]
;Feuer-Rauch-Partikel laden und verarbeiten
image=LoadAnimImage("data\00.png",32,32,27,1)
texture=CreateTexture(32,32,258)

For y=0 To 31
 For x=0 To 31
  SetBuffer ImageBuffer(image)
  rgb=ReadPixel(x,y) And $FF
  rgb=rgb+(rgb*256)+(rgb*65536)+(rgb*16777216)
  SetBuffer TextureBuffer(texture)
  WritePixel x,y,rgb
 Next
Next

Global brushRFP=CreateBrush()
BrushTexture brushRFP,texture
FreeTexture texture
FreeImage image

SetBuffer BackBuffer()

Jubel, jubel, freu, freu...

Markus2

BeitragMo, März 27, 2006 12:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Sowas gehört nicht in die Schleife
SetBuffer ImageBuffer(image)
SetBuffer TextureBuffer(texture)

Schöner wäre so
ba=ImageBuffer(image)
bb=TextureBuffer(texture)
Schleifen ...
ReadPixel (x,y,[buffer])
ReadPixel (x,y,ba)

Bei Readpixel/Writepixel kannst du den Buffer direkt angeben .
Wenn du Lock und Unlock benutzt kannst du
mit ReadPixelFast arbeiten aber dann solltest du nicht
außerhalb des Image/Texture malen .

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, März 27, 2006 18:57
Antworten mit Zitat
Benutzer-Profile anzeigen
@Markus2, hab eben mal folgendes ausprobiert, und es funktionierte nicht.

Code: [AUSKLAPPEN]
;Feuer-Rauch-Partikel laden und verarbeiten
image=LoadAnimImage("data\00.png",32,32,27,1)
texture=CreateTexture(32,32,258)

buffer1=SetBuffer ImageBuffer(image)
buffer2=SetBuffer TextureBuffer(texture)

For y=0 To 31
 For x=0 To 31
  rgb=ReadPixel(x,y,buffer1) And $FF
  rgb=rgb+(rgb*256)+(rgb*65536)+(rgb*16777216)
  WritePixel x,y,rgb,buffer2
 Next
Next

Global brushRFP=CreateBrush()
BrushTexture brushRFP,texture
SetBuffer BackBuffer()
FreeTexture texture
FreeImage image
Origin ghx,ghy

Das zu übertragende Bild wird nicht übertragen. Keine Fehlermeldung vom Debugger...

Mr.Keks

BeitragMo, März 27, 2006 19:11
Antworten mit Zitat
Benutzer-Profile anzeigen
setbuffer gibt ja auch keinen wert zurück ^^
Code: [AUSKLAPPEN]
;Feuer-Rauch-Partikel laden und verarbeiten
image=LoadAnimImage("data\00.png",32,32,27,1)
texture=CreateTexture(32,32,258)

LockBuffer ImageBuffer(image)
LockBuffer TextureBuffer(texture)

For y=0 To 31
 For x=0 To 31
  rgb=ReadPixelFast(x,y,ImageBuffer(image)) And $FF
  rgb=rgb+(rgb*256)+(rgb*65536)+(rgb*16777216)
  WritePixelFast x,y,rgb,TextureBuffer(texture)
 Next
Next

LockBuffer ImageBuffer(image)
LockBuffer TextureBuffer(texture)

Global brushRFP=CreateBrush()
BrushTexture brushRFP,texture
SetBuffer BackBuffer()
FreeTexture texture
FreeImage image
Origin ghx,ghy
MrKeks.net

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, März 27, 2006 19:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey cool, jetzt funktioniert wieder alles. Very Happy Habe anstelle der letzten beiden LockBuffer zu UnlockBuffer gemacht. Hoffe mal das es so richtig ist. Das mit den doppelten Buffers habe ich bisher nicht verstanden. Habt mich wieder mal ein Schritt weiter gebracht... SetBuffer BackBuffer() und Origin konnte ich auch wieder raus nehmen, da sie bereits am Anfang des Programms schon eingestellt werden... Noch ein bischen und ich werde die erste Beta meines Spiels mal vorstellen... Very Happy

Vielen Dank nochmal!.. Cool

Mr.Keks

BeitragMo, März 27, 2006 21:30
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, das mit dem lockbuffer war natürlich schwachsinn... da war ich wohl mal wieder zu schnell auf dem absendebutton Wink
MrKeks.net

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group