Re: Adresse suchen um ein Pixel zusetzen.
Verfasst: 25.06.2010 13:48
Funktioniert, ist aber a...rm lahm (2-3 Bilder die Sekunde).
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Jo,schalt mal den Debugger aus ,falls der aus war möchte ich deinen Rechner nicht geschenkt haben.ralle hat geschrieben:Funktioniert, ist aber a...rm lahm (2-3 Bilder die Sekunde).
Eben, das ist der Mist. In 0.0025 sec brauche ich 112 Pixel senkrecht von unten nach oben, dabei muss jeder einzelne Pixel gleich angezeigt werden. Es müssen davon 32 Zeilen je 2 Pixel breit von rechts nach links geschrieben werden. Das Timing muss zu 99% stimmen. Zur Zeit schafft das nur GFA-Basic mit dem Timing.Du "siehst" ein geänderten Pixel doch eh erst wenn du FlipBuffers() ausgeführt hast.
Code: Alles auswählen
Global Integer datenspeicher, datenlaenge, lauf, wert, n_dat, test
Global Integer x, y, xs, ys, farbe, zz
Global Card wert1
Global String datei_in
Global t#
Global Const zeile_z As Double = 0.0025
Dim MediaPath As String = App.Path & "\media\"
Form f0 = "nipkow" , , , 600, 400 : .AutoRedraw = 1 : BackColor = RGB(200, 200, 200)
Ocx Form bild = , 200, 10, 64, 112 : .Appearance = 0 : .AutoRedraw = 1
Ocx RichEdit rtf1 = , 10, 80 , 150, 150 : BackColor = RGB(200, 200, 200)
rtf1.ScrollBars = basVertical
rtf1.DisableNoScroll = 1
Ocx TextBox ed1 = , 10, 50, 150, 20
Ocx Command CO(1) = "Wav laden", 10, 10, 70, 25
n_dat = 92
xs = 63
ys = 112
Do
Sleep
Loop Until Me Is Nothing
Sub abspielen
If !Exist(MediaPath & datei_in) Then
rtf1.SelText = ("Fehler..." + Chr(10))
Exit Sub
Else
datenlaenge = FileLen(MediaPath & datei_in)
datenspeicher = mAlloc(datenlaenge + 1)
BLoad MediaPath & datei_in , datenspeicher
EndIf
Set Me = bild
For lauf = n_dat To datenlaenge Step 4
wert = LPeek(datenspeicher + lauf)
If wert = -325976064
lauf = lauf + 7 * 4
wert = LPeek(datenspeicher + lauf)
If wert = -325976064
x = x - 2
y = ys
anfang:
If (Timer - t) < zeile_z Then GoTo anfang
BitBlt bild.hDC2, 0, 0, 64, 112, f0.hDC, 300, 10
t = Timer
GoTo weiter
End If
End If
If wert = 0
lauf = lauf + 7 * 4
wert = LPeek(datenspeicher + lauf)
If wert = 0
x = xs
y = ys
GoTo weiter
EndIf
End If
wert1 = HiWord(wert)
farbe = wert1 / 256
Color RGB(farbe + 80 , farbe + 80 , farbe + 80)
y = y - 1
Pset x, y
Pset x - 1, y
weiter:
Next
Sub CO_Click(index%)
datei_in = ed1 & ".wav"
abspielen()
Sub tb_KeyDown(Code&, Shift&)
Du schaffst es nicht die paar Pixel in 25 ms darzustellen ?super_castle hat geschrieben: Eben, das ist der Mist. In 0.0025 sec brauche ich 112 Pixel senkrecht von unten nach oben, dabei muss jeder einzelne Pixel gleich angezeigt werden. Es müssen davon 32 Zeilen je 2 Pixel breit von rechts nach links geschrieben werden. Das Timing muss zu 99% stimmen. Zur Zeit schafft das nur GFA-Basic mit dem Timing.
Gruss
Oh, man, Mensch les dir oben mal die Zeit genau Raus.Du schaffst es nicht die paar Pixel in 25 ms darzustellen ?
Sorry ,aber selte solch einen Unfug gelesen.
Das folgende Bild wird in meinem Player in unter 16 ms erstellt.
Na, wer wird denn Aufgeben......ob du nicht wirklich umsteigst und aufhörst zu flamen Oder ob du nicht ein anderes
projekt anfangen solltes.
Jup, du hast recht, das ist der Bremsklotz...Und wenn du schon PB drawing schwierig findest ,..