Laden!!!

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Svolf

Betreff: Laden!!!

BeitragSa, Apr 08, 2006 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,...

ich möchte bevor man ins Menu kommt es noch ein wenig verschönern.
Ich dachte da an ein Ladebalken. Nur leider geht meiner irgendwie nicht. Ich wollte es so machen, dass er immer die Linie um 10 weiter zeichnet, aber leider geht das nicht, oder gibs sowas das BB das mit dem Laden so macht, wie ers benötigt und so ein Ladebalken schon gibt.

Code: [AUSKLAPPEN]
Graphics 800,600
SetBuffer BackBuffer()
Global x1 = 10
Global y1 = 300
Global x2 = 60
Global y2 = 300
ClsColor 255,255,255
Cls
Color 255,0,0
x = 1
If x = 1 Then 
Line x1,y1,x2,y2
x1 = x1 + 10
x2 = x2 + 10
x = x + 1
EndIf
 If x = 2 Then 
Line x1,y1,x2,y2
EndIf   
WaitKey
 
  • Zuletzt bearbeitet von Svolf am Sa, Apr 08, 2006 17:38, insgesamt einmal bearbeitet
 

Svolf

Betreff: Re: Laden!!!

BeitragSa, Apr 08, 2006 17:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke im Vorraus!!!!

Blitzcoder

Newsposter

BeitragSa, Apr 08, 2006 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du den Backbuffer benutzt, musst du am ende flip machen, damit er die Puffer wechselt:
BlitzBasic: [AUSKLAPPEN]

Graphics 800,600,0,2
SetBuffer BackBuffer()
Global x1 = 10
Global y1 = 300
Global x2 = 60
Global y2 = 300
ClsColor 255,255,255
Cls
Color 255,0,0
x = 1
If x = 1 Then
Line x1,y1,x2,y2
x1 = x1 + 10
x2 = x2 + 10
x = x + 1
EndIf
If x = 2 Then
Line x1,y1,x2,y2
EndIf
Flip
WaitKey


ich hab früher mal ne ganz simple function für sowas geschrieben(function + bsp):

BlitzBasic: [AUSKLAPPEN]

Graphics 800,600,0,2

breite=450
hoch=25
proz=15

SetBuffer BackBuffer()
Repeat

If KeyDown(200) Then proz=proz+1
If KeyDown(208) Then proz=proz-1

If KeyDown(203) Then breite=breite-1
If KeyDown(205) Then breite=breite+1

If KeyDown(209) Then hoch=hoch-1
If KeyDown(201) Then hoch=hoch+1

statusbar(proz,MouseX(),MouseY(),breite,hoch)
Color 255,0,0
frames=MilliSecs()-a
frames=1000/frames
Text 0,0,"FPS: "+frames
a=MilliSecs()
Flip
Cls
Until KeyDown(1)
End

Function statusbar(prozent#,xposition,yposition,breite,hoehe)

;Rahmen zeichnen
Color 255,255,255
Rect xposition,yposition,breite,hoehe,0

;Balken zeichnen
balkenbreite=(breite/100)
balkenbreite=balkenbreite*prozent#
Color 0,0,255
Rect xposition+1,yposition+1,balkenbreite,hoehe-2

End Function


Tasten:

Pfeil rechts/links: Breite ändern
Pfeil oben/unten: Prozentzahl ändetn
Bild hoch/runter: Höhe ändern
Der Balken erscheint immer an der Mausposition


MfG Blitzcoder
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

rkinghell

BeitragSa, Apr 08, 2006 17:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.
Ich hätte es so gelöst:

BlitzBasic: [AUSKLAPPEN]

Graphics 800,600
SetBuffer BackBuffer()

laenge = 1

For x = 1 To 100
laenge = laenge + 1
Plot laenge, 10
Flip
Next

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Apr 08, 2006 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier hab ich auch mal eine simple Function!

BlitzBasic: [AUSKLAPPEN]
Graphics 800 ,600
SetBuffer BackBuffer ()
;
LadeAnzeige(0) ; Prozentwert angeben
Delay 600 ; simuliert das laden
LadeAnzeige(30)
;
Delay 100 ; simuliert das laden
LadeAnzeige(32)
;
Delay 300 ; simuliert das laden
LadeAnzeige(39)
;
Delay 800 ; simuliert das laden
LadeAnzeige(62)
;
Delay 1500 ; simuliert das laden
LadeAnzeige(92)
;
Delay 200 ; simuliert das laden
LadeAnzeige(100)
;
WaitKey
Function LadeAnzeige (Prozent)
Local x1 = 100
Local XBreit = 600
Local y1 = 280
Local yBreit = 40
Cls
;Rahmen
Color 0 ,255,64
Rect x1 - 1 ,y1 - 1 ,XBreit + 2 ,yBreit + 2 ,0
;Innenfläche
Color 255 ,128,64
Prozentbreit = xbreit * Prozent / 100
Rect x1,y1,Prozentbreit,yBreit ,1
Color 255,255,255
Text x1+XBreit /2,y1+yBreit/2,Prozent + "%",1,1
Flip
End Function
[BB2D | BB3D | BB+]
 

Svolf

BeitragSa, Apr 08, 2006 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Hier hab ich auch mal eine simple Function!


Kann man bei deiner function den Balken auch ausfüllen und könntest du mir sagen was das bedeutet:

Code: [AUSKLAPPEN]
Prozentbreit = xbreit * Prozent / 100
    Rect x1,y1,Prozentbreit,yBreit ,1


wäre echt nett!!!

Blitzcoder

Newsposter

BeitragSa, Apr 08, 2006 19:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Etwas Mathematik und schon hat mans verstanden:

Es gibt eine Variable, die heisst xbreit und legtvon anfang an fest, wie breit die komplette ladeleiste werden soll. Nun werden die aktuellen Prozent genommen und durch 100 geteil.
Daraus ergibt sich, dass wenn man 100% hat, der wert 1 ist. und die breite der leiste * 1 ist, dass die leiste voll ist. Wenn man 50% durch 100 teil, erhällt man 0.5 * Breite, also die Hälfter der Breite. Jetzt wird das rechteck gezeichnet. Die werte:

x1 -> die x-position der ladleiste
y1 -> die y-position der ladleiste
prozentbreit -> die eben errechnete Breite
ybreit -> Etwas doof ausgedrückt, es ist eigentlichg die höhe Very Happy
1 -> Das rechteck ist nicht ausgefüllt(Eigentlich brauch man das nicht, weil es Standardmäßig so ist, aber es schate nicht, der übersichtlichkeit wegen)



Alles verstanden?Rolling Eyes

MfG Blitzcoder
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

Absoluter Beginner

BeitragSa, Apr 08, 2006 19:34
Antworten mit Zitat
Benutzer-Profile anzeigen
ein Ladebildschirm ohne das wirklich was geladen wird
wtf , einmal vielleicht aber spätenstens nach dem 3. Start nervts
Error Inside!
 

Svolf

BeitragSa, Apr 08, 2006 19:55
Antworten mit Zitat
Benutzer-Profile anzeigen
joar glaube auch, dass es nur jemand einmal spielen wird bei 100 Fragen xD,...

was ich mal fragen wollte wie es aussieht mit ein Bild einblenden und wieder ausblenden muss man ja bestimmt mit transperent machen,...wie das ghet!!!

Blitzcoder

Newsposter

BeitragSa, Apr 08, 2006 20:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit 2d geht das leider gar nicht.

Deshalb wird bei sowas gerne auf die 3d functions zurückgegriffen.
Man nimmt sprites mit dem entsprachenden Bildern und macht diese dann mit entityalpha transperent


MfG Blitzcoder
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

Svolf

BeitragSa, Apr 08, 2006 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
oder via Video =D

also in ein Videoschnittprogram ein Bild ausblenden etc,..und einfügen =)

rkinghell

BeitragSa, Apr 08, 2006 21:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Svolf hat Folgendes geschrieben:
oder via Video =D

also in ein Videoschnittprogram ein Bild ausblenden etc,..und einfügen =)


Stimmt, aber das ist dann doch etwas umständlich und eventuell auch etwas groß.
Ich hab' nochmal was kleines gebastelt ^_^.

BlitzBasic: [AUSKLAPPEN]
Graphics 800,600
SetBuffer BackBuffer()

For q = 1 To 400
Cls

If breite < 100 Then r = 0 : g = 255 : b = 0
If breite > 100 Then r = 255 : g = 255 : b = 0
If breite > 200 Then r = 255 : g = 127.5 : b = 0
If breite > 300 Then r = 255 : g = 0 : b = 0

breite = breite + 1

If breite < 40 Then Text 10,10,"Loading"
If breite > 40 Then Text 10,10,"Loading ."
If breite > 80 Then Text 10,10,"Loading .."
If breite > 120 Then Text 10,10,"Loading ..."
If breite > 160 Then Text 10,10,"Loading ...."
If breite > 200 Then Text 10,10,"Loading ....."
If breite > 240 Then Text 10,10,"Loading ......"
If breite > 280 Then Text 10,10,"Loading ......."
If breite > 320 Then Text 10,10,"Loading ........"
If breite > 360 Then Text 10,10,"Loading ........."
If breite = 400 Then Text 10,10,"Loading .........."

Text 10,30,breite/4 + "%"

Color r,g,b
Rect 10,50,breite,30
Color 255,255,255
Rect 10,50,400,30, False

Flip
Next

Repeat

Text 10,90,"Press Escape to Quit"

Flip
Until KeyHit(1)
End
 

Svolf

BeitragSa, Apr 08, 2006 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
ey geil danke das ist ja geil,..kannste mal nur sagen wir das funkt im einzelnen (muss dazu lernen) wäre echt cool =)

SpionAtom

BeitragSa, Apr 08, 2006 23:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Das geht aber noch schöner. Smile Hab die Idee von rkinghell genommen und in eine Funktion geschrieben. Das ist dabei rausgekommen.

Code: [AUSKLAPPEN]

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

   prozent = 0

   Repeat
      
      Cls
      Ladebalken(20, 540, prozent)
      Color 255, 255, 255
      Text 20, 520, "Loading " + String$(". ", prozent / 10)
      Flip()
      prozent = prozent + 1
      If prozent > 100 Then prozent = 100   
      
   Until KeyDown(1)
   End
   
;Ladebalken (x-Position, y-Position, Prozentsatz(0-100), [Breite], [Höhe]
Function Ladebalken(x = 20, y = 540, p = 50, b = 760, h = 40)

   Color 255, 255, 255
   Rect x, y, b, h, 0
   pz = Int(b * p / 100) - 2
   For i = 1 To pz
   Color 50, 50, 255 * p / 100
   Rect x + i, y + 1, 1, h - 2, 1
   Next
   Color 255, 255, 255
   t$ = Str$(p) + "%"
   Text x + (b - StringWidth(t$)) / 2, y + (h - StringHeight(t$)) / 2, t$

End Function
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080
 

Svolf

BeitragSa, Apr 08, 2006 23:46
Antworten mit Zitat
Benutzer-Profile anzeigen
auch nicht schlecht. Kann mich eienr aufklären wie man sowas macht,..?

SpionAtom

BeitragSo, Apr 09, 2006 0:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Svolf hat Folgendes geschrieben:
auch nicht schlecht. Kann mich eienr aufklären wie man sowas macht,..?


Wenn du konkreter fragst, kann man dir besser helfen. Verstehst du die Prozentrechnung nicht, die Grafikbefehle, den Farbverlauf, die Schleife, die Funktion...


Was ich noch anmerken wollte: So ein Ladebalken ist immer etwas langweilig. Gerade bei einem Ladebldschirm kann man seiner Phantasie (ob man das noch so schreibt?) freien lauf lassen. Wie wäre es zum Beispiel mit einem Graustufen-Bild, das sich langsam von oben nach unten einfärbt, oder eine lustige Figur, die einmal durch das Bild wandert. Alles schöner und kreativer als ein Ladebalken. Nun kommt es aber auch darauf an, ob man ein Spiel macht oder eine "seriöse Desktop-Anwendung". Aber wenigsten den Ladebalken sollte man verstanden haben, bevor man sich an die leicht kompizierteren Animationen ranwagt. Exclamation
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080
 

Svolf

BeitragSo, Apr 09, 2006 0:14
Antworten mit Zitat
Benutzer-Profile anzeigen
mit functionen komme ich nicht klar,..=(

SpionAtom

BeitragSo, Apr 09, 2006 0:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du Funktionen im allgemeinen nicht verstehst, empfehle ich dir zunächst die Tuts aus der Blitz-hilfe.

Wenn du nicht verstehst, wie du meine Funktion anwenden sollst: Alles was du brauchst, ist in einer Schleife Ladebalken mit ein paar Werten dahinter zu schreiben, so wie ich das gemacht habe. Die ersten beiden Zahlen geben die Position an, die dritte Zahl gibt den Fortschritt an. Dieser muss zwischen 0 und 100 sein.

Wenn du nicht verstehst, wie meine Funktion was macht:
Zunächst male ich den weißen Rahmen, dann kommt eine For..Next-Schleife, die von ganz Links den Balken auffüllt, und zwar entsprechend der Prozentzahl. Die Farbe hängt dabei auch von der Prozentzahl ab. Daher wird der Balken, wenn er auf die 100% zugeht immer blauer.
Als letztes wird die Prozentzahl noch mal in den Balken geschrieben. Da rechne ich so komisch rum, weil ich den Text immer genau in der Mitte des Balkens haben möchte.

Weiß jetzt nicht, ob ich dir geholfen habe, kannst ja im Zweifelsfall nochmal nachhaken Razz
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

rkinghell

BeitragSo, Apr 09, 2006 9:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Tach!
Ich hab dir eine PN geschrieben, Svolf.
@SpionAtom: Nicht schlecht, das Loading ... war bei mir etwas umständlicher.

Man könnte aber auch einen Kreis als Balken nehmen. Das heißt einen Kreis zeichnen, zwei Linien machen und die eine mit Sin und Cos drehen und den Platz zwischen den Linien beliebig einfärben.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group