komm nicht weiter

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

martin1972

Betreff: komm nicht weiter

BeitragMi, Okt 18, 2006 0:14
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo zusammen!!!
hab nen raster gemacht wenn ich da drauf anklickenverschwindet immer das weiße recht eck.wenn ich das nägste feld anklicke soll das eine weg gehn und da das neue stehn.bei mir blinkt es kurz auf und verschwindet sofort wieder.wer kann mir da weiter helfen




Const screen_x=1024
Const screen_y=768
Const screen_m=2 ;
;
Const screen_t=16;

Graphics3D screen_x,screen_y,screen_t,screen_m
SetBuffer BackBuffer() ;

;
;
Global mausx,mausy
Global Cammera=CreateCamera() ;
Global licht=CreateLight(1) ;
;
RotateEntity licht,0,90,0 ;
Dim a(100)
Dim b(100)
;
;
endeplaneten=Rnd(50)
Global ball=CreateSphere(17) ;
Global tex=LoadTexture("welt.jpg") ;
EntityTexture ball,tex ;
PositionEntity ball,0,0,2.999;
For i=1 To 45;endeplaneten
Read a(i)
Read b(i)
Next




;hauptmenue
While Not KeyHit(1)
TurnEntity ball,0,.01,0 ;

maus()


RenderWorld ;
Color 22,222,222
For i=1 To 45;endeplaneten
Rect a(i),b(i),50,50,0

Next



Flip ;





Wend
End

Function maus()

mausx=MouseX()
mausy=MouseY()
If MouseHit(1)=1
For i=1 To 45
If a(i)<MouseX() And a(i)+50>MouseX()
If b(i)<MouseY() And b(i)+50>MouseY()
Color 222,222,222
Rect a(i),b(i),50,50,1


End If
End If
Next
End If
Flip
End Function

;data
Data 340,260,340,310,340,360,340,410,340,460;5
Data 390,210,390,260,390,310,390,360,390,410,390,460,390,510;12
Data 440,210,440,260,440,310,440,360,440,410,440,460,440,510;12-19
Data 490,210,490,260,490,310,490,360,490,410,490,460,490,510;19-26
Data 540,210,540,260,540,310,540,360,540,410,540,460,540,510;22-33
Data 590,210,590,260,590,310,590,360,590,410,590,460,590,510;33-40
Data 640,260,640,310,640,360,640,410,640,460;40-45

Hagbard

BeitragMi, Okt 18, 2006 0:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Dim c(100)

.
.
.
Code: [AUSKLAPPEN]
Function maus()

mausx=MouseX()
mausy=MouseY()

For i=1 To 45

If a(i)<MouseX() And a(i)+50>MouseX() And b(i)<MouseY() And b(i)+50>MouseY() Then

  Color 222,222,222

  If MouseDown(1) 
    c(i) = 1
  EndIf

EndIf

  If c(i) = 1 Then
    Rect a(i),b(i),50,50,1
  EndIf

  Text 20 + I*20, 20, c(i)

Next     
Flip
End Function


So kann das aussehen!

So wie du das gemacht hast, wird ein Kästchen nur weiß, wenn man auch gerade draufklickt, weil MouseHit oder MouseDown ja gleich wieder 0 wird, wenn die taste losgelassen wird.

Stattdessen musst du den Wert dauerhaft speichern und das in einer Variable, die True wird, wenn du auf ein best. Kästchen klickst.

Noch ein Tip:
Dein Programm flackert ganz schön. Du solltest dir nochmal ansehenwo und wie du Flip benutzt hast!
 

martin1972

BeitragMi, Okt 18, 2006 13:07
Antworten mit Zitat
Benutzer-Profile anzeigen
hi Hagbard
wo er das den am besten wo ich das flip rein setzte das es aufhört zu flackern

D2006

Administrator

BeitragMi, Okt 18, 2006 14:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast zwei mal ql:Flip. Das ist der Fehler. Nur einmal, nachdem alles gezeichnet wurde. Also das in der Funktion "maus()" löschen.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group