Bild bleibt nicht da

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

joni8a

Betreff: Bild bleibt nicht da

BeitragSa, Apr 07, 2007 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, der folgende code funktioniert eigentlich ganz gut nur das problem ist das bild was ich laden will bleibt nicht da, ich denke es ist so weil es nur geladen wird wenn ich auf den einen schalter drücke, aber ich weiss nicht wie ich es sonst machen sollt.

Code: [AUSKLAPPEN]

Graphics 640,480
SetBuffer BackBuffer()
HidePointer

   Repeat
   Cls
   

   
   Rect 80,100,400,250,0
   Color 17,13,255
   Rect 8,8,100,20
   Color 255,0,0
   Text 10,10,"Bild laden.."
   Color 17,13,255
   Rect 115,8,100,20
   Color 255,0,0
   Text 145,10,"Text"
   Color 17,13,255
   Rect 222,8,100,20
   Color 255,0,0
   Text 255,10,"Test"
   Color 255,255,255
   Rect 500,120,100,200,0
   Color 17,13,255
   Oval 531,329,40,30
   Color 255,0,0
   Text 535,335,"Down"
   Color 17,13,255
   Oval 532,82,40,30
   Color 255,0,0
   Text 542,90,"Up"
   
   If RectsOverlap(mx,my,10,10,8,8,100,20)    And MouseHit(1)
   
   name=Input("Name des bildes")
   bild=LoadImage("bild.bmp")
   ResizeImage bild,400,250
   DrawImage bild,80,100
   EndIf
   

   EndIf
   If RectsOverlap(mx,my,10,10,115,8,100,20)   And MouseHit(1)
   
   EndIf
   If RectsOverlap(mx,my,10,10,223,8,100,20)   And MouseHit(1)
   
   EndIf
   If RectsOverlap(mx,my,10,10,532,82,40,30)   And MouseHit(1)
   
   EndIf
   If RectsOverlap(mx,my,10,10,531,329,40,30)   And MouseHit(1)
   
   EndIf
   
   
      
   
   mx=MouseX()
   my=MouseY()
      
   Color 255,0,0   
   Rect mx,my,10,10
   Color 255,255,255
      
   Flip
   Until KeyHit(1)
      

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Apr 07, 2007 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem mit dem Bild ist, das es nur einmal innerhalb der If...Endif eingezeichnet wird.
Das zweite Problem ist der Mousehit(1), da bei jedem Aufruf der Speicher des Maushit(1) gelöscht wird.
also einfach MH =Mousehit(1) am anfang der Schleife speichern und dann nur noch MH zu nutzen
Das Bild in jedem Schleifendurchgang zeichnen wenn es exitiert.


Code: [AUSKLAPPEN]
    MH=MouseHit (1)
    If RectsOverlap (mx,my,10,10,8,8,100,20)And MH Then
        name = Input ("Name des bildes")
        bild = LoadImage ("bild.bmp")
        ResizeImage bild,400,250
    EndIf
    If Bild <> 0 Then DrawImage bild,80,100
[BB2D | BB3D | BB+]
 

joni8a

BeitragSa, Apr 07, 2007 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
danke, aber nun sagt er: "image does not exist"
 

Dreamora

BeitragSa, Apr 07, 2007 17:58
Antworten mit Zitat
Benutzer-Profile anzeigen
dann ist das bild nicht am gleichen ort wie deine bb datei.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

joni8a

BeitragSa, Apr 07, 2007 18:35
Antworten mit Zitat
Benutzer-Profile anzeigen
sry es war ein fehler von mir

EDIT: Kann man auch bestimmen wo input erscheinen soll?

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Apr 07, 2007 19:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit locate aber nur in BB2D und BB3D
[BB2D | BB3D | BB+]

Smily

BeitragSa, Apr 07, 2007 20:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Es wäre aber besser, sich eine eigene Input-Routine zu schreiben ^^
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
 

ChristianK

BeitragSa, Apr 07, 2007 20:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Zum Beispiel so: Wink

Code: [AUSKLAPPEN]
SetBuffer BackBuffer( )

Repeat
   Cls
   
   key = GetKey( )
   
   If key <> 0 And key <> 8 And key <> 27
      txt$ = txt$ + Chr( key )
   EndIf
   
   If key = 8
      txt$ = Mid( txt$, 1, Len( txt$ ) - 1 )
   EndIf
   
   Text 10, 10, txt
   
   Flip
Until key = 27
End
 

joni8a

BeitragSa, Apr 07, 2007 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, ich noch mal. Ich habe noch mal ein paar fragen. Wenn ich ein bild geladen habe wie kann ich das denn verändern zb text reinschreiben und das denn speichern.

Smily

BeitragSa, Apr 07, 2007 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
setbuffer imagebuffer(dein_bild)

dann kannst du mit normalen Grafikbefehlen das bild verändern ^^
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
 

joni8a

BeitragSo, Apr 08, 2007 10:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, es funktioniert auch sehr gut, aber. Wenn ich in das bild zeichenen will dann geht der cursor weg. Und ich kann auch dem ganzen bildschirm zeichenen und nicht nur im bild aber das kann man ja ganz leicht ändern.

Code: [AUSKLAPPEN]

Graphics 640,480
SetBuffer BackBuffer()
HidePointer

   Repeat
   Cls
   

   bildz=0
   Rect 80,100,400,250,0
   Color 17,13,255
   Rect 8,8,100,20
   Color 255,0,0
   Text 10,10,"Bild laden.."
   Color 17,13,255
   Rect 115,8,100,20
   Color 255,0,0
   Text 145,10,"Text"
   Color 17,13,255
   Rect 222,8,100,20
   Color 255,0,0
   Text 255,10,"Test"
   Color 255,255,255
   Rect 500,120,100,200,0
   Color 17,13,255
   Oval 531,329,40,30
   Color 255,0,0
   Text 535,335,"Down"
   Color 17,13,255
   Oval 532,82,40,30
   Color 255,0,0
   Text 542,90,"Up"
   mh=MouseHit(1)
   mh2=MouseHit(2)
   x=0
   y=0
   If RectsOverlap(mx,my,10,10,8,8,100,20)    And mh
   Rect 50,50,280,30,0
   Locate 52,59 name$=Input("Name des bildes:")
   bild=LoadImage(name$+".bmp")
   ResizeImage bild,400,250
   
   EndIf
   
    If bild <> 0 Then DrawImage bild,80,100

   

   If RectsOverlap(mx,my,10,10,115,8,100,20)   And mh
   
   Rect 50,50,280,30,0
   Locate 52,59 schrift$=Input("Text:")
   

   EndIf
   
   If schrift$ <> 0 Then Text mx+10,my,schrift$
   If mh2
   SetBuffer ImageBuffer(bild)
   x=mx
   y=my
   Text x,y,schrift$
   EndIf
   
   If RectsOverlap(mx,my,10,10,223,8,100,20)   And mh
   
   EndIf
   If RectsOverlap(mx,my,10,10,532,82,40,30)   And mh
   
   EndIf
   If RectsOverlap(mx,my,10,10,531,329,40,30)   And mh
   
   EndIf
   
   
      
   
   mx=MouseX()
   my=MouseY()
      
   Color 255,0,0   
   Rect mx,my,10,10
   Color 255,255,255
      
   Flip
   Until KeyHit(1)
   

   
 
      
 

darki

BeitragSo, Apr 08, 2007 19:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Find ich komisch das die maus den weg ist

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group