Brauche Hilfe bei meinem Code

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Blitzkrieg Bop

Betreff: Brauche Hilfe bei meinem Code

BeitragSa, Apr 10, 2004 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier der COdE! Mein Frage: Wie kann ich BB nun sagen, das Die Neuen Bilder nur in einem Besttimen Bereich gemalt werden dürfen?
Also die ganze Fläche über dem strich soll man nicht bemalen dürfen.

Code: [AUSKLAPPEN]


Graphics 800,600,16,2
SetBuffer BackBuffer()
AppTitle "Darstellung"

anz = 4 ; Anzahl der Rects

Dim posX(anz),posY(anz),col(anz)

posX(0) = 270
posY(0) = 0
col(0) = Rnd(100,255)



While Not KeyHit(1)
 Cls

;linie malen:
   Rect 0,100,800,2,1
   
   
 If wahl = 1


  posX(array) = MouseX()-xm

  posY(array) = MouseY()-ym
 


If MouseHit(1) Then wahl = 0



 EndIf

 For I = 0 To array
  Color col(I),col(I),col(I)
  Rect posX(I),posY(I),100,100,1
  If wahl = 0 And I > 0 Then
   If RectsOverlap(MouseX(),MouseY(),1,1,posX(I),posY(I),100,100) Then
    If MouseHit(2) Then
     For E = I To array-1
      posX(E) = posX(E+1)
      posY(E) = posY(E+1)
      col(E) = col(E+1)
     Next
     array = array - 1
    EndIf
   EndIf
  EndIf
 Next

;And MouseY() < 50 And MouseX() < 370 And MouseX() > 260

 If wahl = 0 And array < anz Then
  If RectsOverlap(MouseX(),MouseY(),1,1,posX(0),posY(0),100,100) Then
   If MouseHit(1) Then   
    wahl = 1
    array = array + 1
    col(array) = Rnd(100,255) 
    xm = MouseX()-posX(0)
    ym = MouseY()-posY(0)
   EndIf
  EndIf
 EndIf

 Color 255,255,255
 Text 0,0,"Anzahl der Bilder: "+array
   Text 0,50,"Mausy()"+MouseY()
   Text 0,100,"Mausx()"+MouseX()
   Text 0,150,"Wahl"+wahl

FlushMouse
 Flip
Wend
End
~ Hey Ho Let's Go ~

sami

BeitragSa, Apr 10, 2004 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
schau mal in der hilfe unter viewport
 

Blitzkrieg Bop

BeitragSa, Apr 10, 2004 21:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi! KEine schlechte idde nur:
Einerseit muss oben das Rechteck zu sehen sein und unter dem Strich muss auch der Viewport belegt sein,. Ich kann aber keine 2 Viewports
machen, also scheidet das aus oder?
~ Hey Ho Let's Go ~

Holzchopf

Meisterpacker

BeitragSa, Apr 10, 2004 22:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Natürlich kann man 2 Viewports machen:

Code: [AUSKLAPPEN]

Graphics 800,600,0,2

Viewport 0,0,400,600
ClsColor 70,100,255
Cls

Viewport 400,0,400,600
ClsColor 255,70,100
Cls

WaitKey()
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

Blitzkrieg Bop

BeitragSa, Apr 10, 2004 23:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab folgende sim obigen Code eingebaut:
Viewport 270,0,100,100
Cls

Viewport 0,101,800,600
Cls

es geht nicht.

Hier nochmal der Code:
Code: [AUSKLAPPEN]

Graphics 800,600,16,2
SetBuffer BackBuffer()
AppTitle "Darstellung"

anz = 4 ; Anzahl der Rects

Dim posX(anz),posY(anz),col(anz)

posX(0) = 270
posY(0) = 0
col(0) = Rnd(100,255)

Viewport 270,0,100,100
Cls

Viewport 0,101,800,600
Cls

While Not KeyHit(1)
 Cls

;linie malen:
   Rect 0,100,800,2,1
   
   
 If wahl = 1


  posX(array) = MouseX()-xm

  posY(array) = MouseY()-ym
 


If MouseHit(1) Then wahl = 0



 EndIf

 For I = 0 To array
  Color col(I),col(I),col(I)
  Rect posX(I),posY(I),100,100,1
  If wahl = 0 And I > 0 Then
   If RectsOverlap(MouseX(),MouseY(),1,1,posX(I),posY(I),100,100) Then
    If MouseHit(2) Then
     For E = I To array-1
      posX(E) = posX(E+1)
      posY(E) = posY(E+1)
      col(E) = col(E+1)
     Next
     array = array - 1
    EndIf
   EndIf
  EndIf
 Next

;And MouseY() < 50 And MouseX() < 370 And MouseX() > 260

 If wahl = 0 And array < anz Then
  If RectsOverlap(MouseX(),MouseY(),1,1,posX(0),posY(0),100,100) Then
   If MouseHit(1) Then   
    wahl = 1
    array = array + 1
    col(array) = Rnd(100,255) 
    xm = MouseX()-posX(0)
    ym = MouseY()-posY(0)
   EndIf
  EndIf
 EndIf

 Color 255,255,255
 Text 0,0,"Anzahl der Bilder: "+array
   Text 0,50,"Mausy()"+MouseY()
   Text 0,100,"Mausx()"+MouseX()
   Text 0,150,"Wahl"+wahl

FlushMouse
 Flip
Wend
End
~ Hey Ho Let's Go ~

Holzchopf

Meisterpacker

BeitragSa, Apr 10, 2004 23:54
Antworten mit Zitat
Benutzer-Profile anzeigen
ÄHEM, du musst die Viewports in der Hauptschleife jedesmal wieder neu setzen; ViewPort erzeugt ein Bereich, in dem nachfolgend alle Grafiken eingezeichnet werden können, Grafiken (und auch Teile deren), die ausserhalb des mit Viewport definierten Bereiches liegen, werden nicht gemalt. Das Erneute vestlegen eines Viewportes hat kein Verlust des bereits gezeichneten Bildschirm- (Buffer- oder Bild-) Inhaltes zur folge.

Hier ein kleiner Code zur Verständigung:

Code: [AUSKLAPPEN]

Graphics 800,600,16,2
SetBuffer BackBuffer()

While Not KeyHit(1)

   mx=MouseX()
   my=MouseY()

   Viewport 0,0,800,300
   ClsColor 128,100,70
   Cls

   Color 140,140,140
   Rect mx-20, my-20, 40, 40

   Viewport 0,300,800,300
   ClsColor 70,100,128
   Cls

   Color 120,120,120
   Rect mx-30, my-30, 60, 60

   Flip
Wend

End
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group