000
07.09.2004, 10:18 Uhr
schrottXXL
Gebranntes Kind Parzellenbesitzer
      
Beiträge: 1459 Dabei seit: 07.10.2003, 19:53 Uhr |
Da die Doppelpostsperre leider ein Weiterschreiben am alten Thread verhindert ( ) ...
So, konnte den Programmcode nach ein wenig Ausprobieren dank Matthias Tipp (danke ) "etwas" reduzieren : format_source('If firstst = 1 And FOstart.loaded = 1 Or resized = 1 And FOstart.loaded = 1 Then For cre = 0 To schwammstufen If cre > 0 Then Load PICtrf(cre) Load PICtrfSW(cre) End If PICtrfSW(cre).Width = PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * ma�stabX PICtrfSW(cre).Height = PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * ma�stabY PICtrf(cre).Width = PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * ma�stabX PICtrf(cre).Height = PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * ma�stabY If cre < schwammstufen Then PICtrfSW(cre).PaintPicture PICschwammSW.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * ma�stabX, PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * ma�stabY ', , , , , &H660046 PICtrf(cre).PaintPicture PICschwamm.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * ma�stabX, PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * ma�stabY ', , , , , &H660046 Else PICtrfSW(cre).PaintPicture PICschwammnassSW.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * ma�stabX, PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * ma�stabY ', , , , , &H660046 PICtrf(cre).PaintPicture PICschwammnass.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * ma�stabX, PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * ma�stabY ', , , , , &H660046 End If Next firstst = 0 resized = 0 End If ')Und so wird der Schwamm draufgepinselt: format_source('If trf < schwammstufen Then Picture1.PaintPicture PICtrfSW(trf).Image, klickX - 0.5 * PICschwamm.Width * ma�stabX * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), klickY - 0.5 * PICschwamm.Height * ma�stabY * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), , , , , , , &H8800C6 Picture1.PaintPicture PICtrf(trf).Image, klickX - 0.5 * PICschwamm.Width * ma�stabX * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), klickY - 0.5 * PICschwamm.Height * ma�stabY * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), , , , , , , &H660046 Else Picture1.PaintPicture PICtrfSW(trf).Image, klickX - 0.5 * PICschwamm.Width * ma�stabX * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), klickY - 0.5 * PICschwamm.Height * ma�stabY * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), , , , , , , &H8800C6 Picture1.PaintPicture PICtrf(trf).Image, klickX - 0.5 * PICschwamm.Width * ma�stabX * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), klickY - 0.5 * PICschwamm.Height * ma�stabY * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), , , , , , , &H660046 End If ')Macht das ganze deutlich übersichtlicher und einfacher . Hätt ich auch mal selbst drauf kommen können .
Ich verstehe aber immer noch nicht ganz, warum das so schei�langsam läuft. Trotz Vorskalierung läuft das ganze kein bisschen schneller. Und an der Berechnung der Position kanns wirklich nicht liegen, das ist ja witzlos. Komisch: Vor allem solange der Schwamm gro� ist, dauerts.
Hm ... sicherlich ist das auch etwas dumm, dass ich bei jeder Veränderung alles (Opfer, Schwamm, ...) neu druafpinseln muss - und dann auch noch doppelt, aber da wei� ich leider keine Alternative.
Erklärt aber trotzdem noch nicht ganz, warum das so langsam ist  Kann ja nich sein, das VB so langsam pinselt ... Ich schau mir den Programmkot nochmal an ... 
Edit: Ich habe jetzt mal das mit dem Schwammwurf in ein neues Projekt "extrahiert" - und siehe da: es läuft immer noch kein bisschen schneller  Was zum Teufel mach ich falsch? format_source('Public schwammstufen, ma�stabx, ma�staby, z1, z2
Private Sub Form_Click() loaded = 1 firstst = 1 schwammstufen = 4 maÃ?stabx = 1 maÃ?staby = 1 z1 = "2" z2 = "0.4"
If firstst = 1 And loaded = 1 Or resized = 1 And loaded = 1 Then For cre = 0 To schwammstufen If cre > 0 Then Load PICtrf(cre) Load PICtrfSW(cre) End If PICtrfSW(cre).Width = PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabx PICtrfSW(cre).Height = PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?staby PICtrf(cre).Width = PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabx PICtrf(cre).Height = PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?staby If cre < schwammstufen Then PICtrfSW(cre).PaintPicture PICschwammSW.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabx, PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?staby ', , , , , &H660046 PICtrf(cre).PaintPicture PICschwamm.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabx, PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?staby ', , , , , &H660046 Else PICtrfSW(cre).PaintPicture PICschwammnassSW.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabx, PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?staby ', , , , , &H660046 PICtrf(cre).PaintPicture PICschwammnass.Picture, 0, 0, PICschwamm.Width * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?stabx, PICschwamm.Height * (Val(z1) - Val(z2) / (schwammstufen / 4) * cre) * maÃ?staby ', , , , , &H660046 End If Next firstst = 0 resized = 0 End If 'PICtrf(4).Visible = True 'PICtrf(4).ZOrder End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) klickX = X klickY = Y myx = 1500 myy = 1800 byklickX = myx byklickY = myy
For trf = 0 To schwammstufen Picture1.Cls If trf < schwammstufen Then Picture1.PaintPicture PICtrfSW(trf).Image, klickX - 0.5 * PICschwamm.Width * maÃ?stabx * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), klickY - 0.5 * PICschwamm.Height * maÃ?staby * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), , , , , , , &H8800C6 Picture1.PaintPicture PICtrf(trf).Image, klickX - 0.5 * PICschwamm.Width * maÃ?stabx * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), klickY - 0.5 * PICschwamm.Height * maÃ?staby * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), , , , , , , &H660046 Else trf = schwammstufen Picture1.PaintPicture PICtrfSW(trf).Image, myx + klickX - byklickX - 0.5 * PICschwamm.Width * maÃ?stabx * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), klickY - 0.5 * PICschwamm.Height * maÃ?staby * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), , , , , , , &H8800C6 Picture1.PaintPicture PICtrf(trf).Image, myx + klickX - byklickX - 0.5 * PICschwamm.Width * maÃ?stabx * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), klickY - 0.5 * PICschwamm.Height * maÃ?staby * (Val(z1) - Val(z2) / (schwammstufen / 4) * trf), , , , , , , &H660046 End If DoEvents Next End Sub') P.S.: ENTFERNT DOCH BITTE MAL DIE DUMME DOPPELPOSTSPERRE!!!  ----- Bleib cool man(n)!
Und lass dich nicht durch Philipp's Gespamme aus der Ruhe bringen ...  Dieser Beitrag wurde am 07.09.2004 um 12:31 Uhr von schrottXXL verändert |