Bild stimmt mit berechnung nicht überein

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

dominik

Betreff: Bild stimmt mit berechnung nicht überein

BeitragFr, Mai 21, 2004 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich hab nen bild (32*32) und des soll mehrfach, per zufalls position, in ein gitternetz gezeichnet werden. Die Berechnungen müssen auch alle stimmen weil sich die verschiebung seltsamerweise nur alle (3,8,14,18) positionen (IMMNER Gleich) wiederholt.

Testets am besten ainfach mal, dann wisst ihr was ich mein. lässt sich irgentwie nen bischen schwer erklären.

Ach und es verschiebt sich seltsamerweise auch nur in der Y-Richtung. aber des bild is ja eigentlich quadratisch. ???????

!ACHTUNG! geb am anfang net mehr als 20 ein erstens past eh net mehr auf den bildschrim und außerdem kanns sonst nen bischen länger dauern bis sich des gitter aufgebaut hat.

Code: [AUSKLAPPEN]
Graphics 1024, 768, 32
bild1 = LoadImage("bild1.bmp")
grose = Input ("Größe: ")
Dim ax(grose), ay(grose), zx(grose), zy(grose)
SeedRnd MilliSecs()
Cls

;Gitter zeichnen (Aufbaue)
;___________________________________________________
  For zr = 1 To grose
    Text zr*32, 96, zr
    Text 10, (96)+zr*32, zr
    Delay 40
  Next

  For zz = 1 To grose + 1
    Line 32, (zz*32)+96, 30+(32*grose), zz*32+96
    Delay 90
  Next

  For zz = 1 To grose + 1
    Line (zz*32), 128, zz*32, 128+(32*grose)
    Delay 90
  Next
;____________________________________________________
SetBuffer BackBuffer()

;Ziele für einzelne Quadrate verteilen
For i = 1 To grose
  zx(i) = Rand(0,32)
  zy(i) = zy(i)+(32*i)+96                     ;Geordnet
;  zy(i) = ((Rand(0,grose))*32)+96             ;Zufällig
Next

;Anfangspositionen festlegen
For i = 1 To grose
  ax(i) = i*32
  ay(i) =  0
Next

;Quadrate auf zielpositionen verteilen
Repeat
Cls

For i = 1 To grose
  DrawImage bild1, ax(i), ay(i)
Next

For i = 1 To grose
  If ay(i) < zy(i) Then ay(i) = ay(i) + 10
Next

;Gitter zeichnen
;___________________________________________________
  For zr = 1 To grose
    Text zr*32, 96, zr
    Text 10, (96)+zr*32, zr
  Next

  For zz = 1 To grose + 1
    Line 32, (zz*32)+96, 30+(32*grose), zz*32+96
  Next

  For zz = 1 To grose + 1
    Line (zz*32), 128, zz*32, 128+(32*grose)
  Next
;____________________________________________________

For i = 1 To grose
  If ay(i) <> zy(i) Then ende = 0
Next

Flip
Until ende = 1 Or KeyDown(1)


WaitKey
End


PS: des bild muss 32*32 sein. müsst ihr euch selber machen.
 

m

BeitragFr, Mai 21, 2004 15:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

For i = 1 To grose
  If ay(i) < zy(i) Then ay(i) = ay(i) + 8
Next


die zahl die du addierst mus durch 32 teilbar sein Wink

dominik

BeitragFr, Mai 21, 2004 15:44
Antworten mit Zitat
Benutzer-Profile anzeigen
eigetnlich logisch. danke Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group