Image wird nach einiger zeit nicht mehr gefunden

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Ana

Betreff: Image wird nach einiger zeit nicht mehr gefunden

BeitragMo, Apr 13, 2009 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Also das ganze ist teil eines größeren aber ich denke das Problem ist hier zu suche
(wie macht man diese Code zeilen?)

.darstellungsschleife
Color 255,255,255

waffenimage = CreateImage (x + 500, y + 150)
SetBuffer ImageBuffer(waffenimage)
DrawImage griff,0,0
DrawImage heft,0 + 150,0
DrawImage klinge,0 + 180,0
SetBuffer FrontBuffer()


SetBuffer BackBuffer()
Viewport x,y,500,150
Cls
MaskImage waffenimage, 255,0,255
DrawImage waffenimage, x,y
Flip
Goto anfang

damit soll erreicht werden das wenn griff, heft oder klinge verändert worden sind nicht einfach ein neues Bild drüber gelegt wird sondern es neu gezeichtnet wird und als ein großes image gespeichert. Klappt auch wunderbar zumindest wenn man ab und an was tut. Lässt man das ganze so 5 Minuten laufen meldet sich BB und behauptet Image does not exist und makiert die stelle MaskImage waffenimage, 255,0,255. Allerdings war es ja die Paar minuten vorher fehlerfrei da. Kennt jemand das Problem oder hat ne ahung woran das liegen kann?
 

matze-t

BeitragMo, Apr 13, 2009 13:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Da gibt verschieden Dinge, an denen des liegen könnte:

1. Graphics / Graphics3D löscht alle Grafiken aus dem Speicher, also wenn du das irgendwann mal verwendest sind alle Bilder weg.

2. Was wahrscheinlicher ist: CreateImage legt jedes mal ein neues Bild an - Bis dein Speicher voll ist. Versuch mal das alte Bild mit "FreeImage waffenbild" wieder zu löschen bevor du das neu erstellst.

Xeres

Moderator

BeitragMo, Apr 13, 2009 13:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Benutzte für Code die [ code ][/ code ] Tags.

Du erstellst 5 Minuten lang alle paar Millisekunden mit Createimage eine neues Bild... irgendwann explodiert dir da -bildlich gesprochen- der Speicher.
Erstellen und laden von Bildern erledigt man 1x vor der Hauptschleife!
Bitte vergiss GoTo! Verwende eine ordentliche Schleife mit Repeat until oder while wend.
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)

Ana

BeitragMo, Apr 13, 2009 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen dank, allerdings verwend ich normal auch die normalen schleifen, allerdings hat das einfach nicht mit normalen Schleifen geklappt und so macht es keinen ärger und es ist mein erstlingswerk wäre ja doof wenn man nicht alles was einem so unter die finger kommt da ein baut oder? Wink
 

da_poller

BeitragMo, Apr 13, 2009 18:09
Antworten mit Zitat
Benutzer-Profile anzeigen
alles außer GOTO Razz

Ana

BeitragMo, Apr 13, 2009 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
was ist den so schlecht daran?
 

da_poller

BeitragMo, Apr 13, 2009 20:19
Antworten mit Zitat
Benutzer-Profile anzeigen
es fördert unübersichtliche codes.. verwende lieber:
Function
while-wend
for-next
repeat-forever
select-case
...

Ana

BeitragMo, Apr 13, 2009 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut ich werds beherzigen aber den lass ich jetzt so, viel zu unübersichtlich da noch was dran zu machen Wink
(Nein ich feile da noch dran rum und das ganze ist auch noch in den While strukturen da, in denen es nicht funktioniert hat und von daher auch nicht sonderlich unübersichtlich.)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group