Memory access vaiolation

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Dicker Hobbit

Betreff: Memory access vaiolation

BeitragDi, Mai 31, 2011 17:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute
ich habe eine frage und zwar erscheint bei meinem Programm ständig die Fehlermeldung (siehe Titel) und ich kann mir nicht genau erklären woran das liegt... danke schonmal im vorraus
lg Dicker Hobbit

BlitzBasic: [AUSKLAPPEN]

Graphics 640, 480, 16, 1
SetBuffer BackBuffer()
Cls

;Variablen Bild
Global P= LoadImage("P.png")
MidHandle P


Global y=ImageWidth(P) * MouseYSpeed() /2

Global x=ImageHeight(P) * MouseXSpeed() /2


;Hauptschleife

Repeat
Cls

BildundMausspeed()

Flip
Until KeyDown(1)




;Funktionen

Function BildundMausspeed()

Local timer= MilliSecs()/1000
;Global y=ImageWidth(P) * MouseYSpeed() /2

; Global x=ImageHeight(P) * MouseXSpeed() /2


For i=1 To 60
DrawImage P, 320, 240

ResizeImage P, x , y

WaitTimer timer
Next


End Function

Eingeproggt

BeitragDi, Mai 31, 2011 17:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Dein Problem wird hauptsächlich daran liegen dass dein Bild nicht global ist.
Aber auch sonst gibts da noch ein paar Dinge die du nochmal überarbiten musst:
-) x und y würd ich in der Hauptschleife berechnen, davor ists witzlos weil das nur exakt einmal gemacht wird.
-) Dein Timer auf den du wartest ist kein Timer sondern lediglich ne Zahl, siehe die Online-Hilfe zu Waittimer.

mfG, Christoph.

PS: Das nächste mal bitte dazu sagen in welcher Zeile der Fehler kommt. Bei so nem Code wie deinem gehts noch aber bei längeren finden wir den Fehler auch nicht sofort wenn du nicht mehr dazu sagst.

EDIT: Meine Vermutung mit global is natürlich mist... dann liegts eher am Timer wie oben beschrieben.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
  • Zuletzt bearbeitet von Eingeproggt am Di, Mai 31, 2011 18:00, insgesamt einmal bearbeitet

Xeres

Moderator

BeitragDi, Mai 31, 2011 17:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Debugger einschalten. Welche Zeile & welcher Fehler wird angezeigt?
MouseXSpeed (& MouseYSpeed) wird vor der Schleife 0 zurückgeben und den Fehler verursachen.
Aber davon abgesehen ist ResizeImage für Echtzeiteffekte vollkommen ungeeignet. Das du das 60 mal hintereinander machst, macht es nicht besser.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Dicker Hobbit

BeitragDi, Mai 31, 2011 20:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok ich glaub meine Ansatz war schon falsch ...
wie würdet ihr das lösen ...:
Die Function soll ein Bild malen das je nach schnelligkeit der Maus (also wie schnell man sieh hin und her bewegt ) das Bild größer oder kleiner malt...
danke schonmal für eure hilfe
lg Dicker Hobbit

Xeres

Moderator

BeitragDi, Mai 31, 2011 20:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit den 2D befehlen bleibt nur, ein paar Bilder vorher zu berechnen und dann passend an zu zeigen - sieht sicher nicht so aus, wie du dir das vorstellst.
Die sinnvollste Variante wird es sein, auf 3D um zu steigen, z.B. mit der Draw3D von hectic kann man das in Echtzeit machen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group