TileImageRect und TileBlockRect ?????

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Bms

Betreff: TileImageRect und TileBlockRect ?????

BeitragDi, Aug 24, 2004 20:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hy.
Benötige ne Funktion(besser gesagt: 2 )
nämlich tileimagerect und tileblockrect.(gibts noch nich.)

ich könnte natürlich auch das teilbild extra nehmen, aber - wieso nich mal kompliziert versuchen? Rolling Eyes

mal ein ansatz:

Code: [AUSKLAPPEN]

function tileimagerect(bild,x,y)
for a=0 to 640/imagewidth(bild)
 for b=0 to 480/imageheight(bild)
  drawimage bild,x+a,y+b
 next
next
end function


aber wieso fungzionirt das nicht? Question Question Question

thanxx for help.
 

David

BeitragDi, Aug 24, 2004 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Was willste denn erreichen?
Willst du ein bestimmtes Rechteck eines Bildes immer wieder über den ganzen Bildschirm zerstreuen?

Wenn ja, isses irgendwie klar, das dein Code nicht funktioniert...

grüße
http://bl4ckd0g.funpic.de

Travis

BeitragDi, Aug 24, 2004 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Wahrscheinlich siehst du jetzt nur ein einfarbiges Rechteck/Quadrat, richtig? Ich kenne das Problem.

In deinen Schleifen in denen du von 0 bis 640 bzw von 0 bis 480 gehst, musst du sprünge/steps einbauen. So malst du das Bild ja in Einerschritten immer wieder neu. Somit wird das bereits gezeichnete vom nächsten Bild wieder überdeckt.

Versuche mal das

Code: [AUSKLAPPEN]

drawimage bild,x + (a *(640/imagewidth(Bild))), y + (b*(480/imageheight(bild)))
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.
 

David

BeitragDi, Aug 24, 2004 20:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Guckma, vielleicht hilfts dir ja:

Code: [AUSKLAPPEN]

Graphics 640, 480, 32
SetBuffer BackBuffer()

Global img = LoadImage( "c:\TestBitmap.bmp" )

While Not KeyHit( 1 )
   TileImageRect( img, 0, 0, 24, 24 )
   
   Flip
   Cls
Wend

End

Function TileImageRect( img, px, py, width, height )
   Local maxX = ( 640 / width ) + 1
   Local maxY = ( 480 / height ) + 1
   
   For x = 0 To maxX
      For y = 0 To maxY
         DrawImageRect( img, x * width, y * width, px, py, width, height )
      Next
   Next
End Function


grüße
http://bl4ckd0g.funpic.de

Bms

BeitragDi, Aug 24, 2004 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
@david:

es funktioniert !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
jer. Very Happy Very Happy Very Happy Very Happy Very Happy

Bms

BeitragDi, Aug 24, 2004 21:00
Antworten mit Zitat
Benutzer-Profile anzeigen
hab di function noch erweitert...

Code: [AUSKLAPPEN]

Function TileImageRect( img, px, py, width, height,xx,yy )
Local maxX = ( 640 / width ) + 1
Local maxY = ( 480 / height ) + 1

For x = 0 To maxX
For y = 0 To maxY
DrawImageRect( img, x * width+xx, y * height+yy, px, py, width, height )
Next
Next
End Function


... sodass ich das scrollen kann. wenn aber xx und/oder yy ungleich 0 sind, dann entsteht ein nichtbedeckter rand. wie kann man das verhindern?

Kabelbinder

Sieger des WM-Contest 2006

BeitragDi, Aug 24, 2004 21:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun, soeine Function ist ja auch umgehbar:

Code: [AUSKLAPPEN]

bild1 = LoadImage("Schopf Alk.bmp")
bild2 = CreateImage(50,50)
SetBuffer ImageBuffer(bild2)
Cls
DrawImageRect bild1,0,0,50,0,50,50
SetBuffer FrontBuffer()
TileBlock bild2

WaitKey
End
<Wing Avenger Download> ◊◊◊ <Macrophage Download>

Bms

BeitragMi, Aug 25, 2004 13:12
Antworten mit Zitat
Benutzer-Profile anzeigen
und nochmal überarbeitet zeigt sich:
es geht!! Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy
übrigens: 64 und 48 sind die tilegrößen( nicht dass noch jemand fragt )

Code: [AUSKLAPPEN]

Function TileImageRect( img, px, py, width, height,xx,yy )
;XX und YY (= offset für scrolling) überprüfen
While xx<-64
 xx=xx+64
Wend
While xx>0
 xx=xx-64
Wend
While yy<-48
 yy=yy+48
Wend
While yy>0
 yy=yy-48
Wend
Local maxX = ( 640 / width ) + 2
Local maxY = ( 480 / height ) + 2

For x = 0 To maxX
For y = 0 To maxY
DrawImageRect( img, x * width+xx, y * height+yy, px, py, width, height )
Next
Next
End Function


nun kann ich das auch scrollen ohne rand. Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group