*Oh nein* noch eine Konsole

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

skey-z

Betreff: *Oh nein* noch eine Konsole

BeitragFr, März 11, 2005 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiss, das es hier auf diesem Board schon zig Konsolen gibt, aber ich habe heute eine für mich gebastelt und möchte sie euch nicht vorenthalten, ist auch hauptsächlich für die Newbies hier gedacht, also bitte nicht schimpfen, ist auch das erste mal, dass ich was mit types hinbekommen habe.

hier erst mal der Code:
Code: [AUSKLAPPEN]
AppTitle "Konsole"
Graphics 800,600,16,1
SetBuffer BackBuffer()

   ;Globale Variablen für die Konsole
Global eingabe$, a.anzeige, arial01, arial02, kons
   ; Globale Variablen für FPS-Copunter
Global frames, FramesJeSekunde,frame, zaehlstart


   ;Type Anzeige für die Konsole erstellen
Type anzeige   ;
 Field anz$, i
End Type

kons=LoadImage("kons03.png")
MaskImage kons,0,0,255

   ;Schriften Laden
arial01=LoadFont("Arial",25,0,0,0)   ;Konsole
arial02=LoadFont("Arial",20,0,0,0)   ;Text in der Hauptschleife

   ;=============================
   ;   HAUPTSCHLEIFE
   ;=============================

Repeat
 
 ClsColor 0,0,0
 Cls
 
   ;Konsole durch ^ Taste aufrufen/schliessen
 If KeyHit(41)  Then
    konsole=Not konsole
    FlushKeys()
 EndIf
 If konsole=True Then GameKonsole()


   ;FPS-Counter anzeigen/ausschalten
 If frames=True Then
     Framecounter()
    SetFont arial01
     Text 200,550,FramesJeSekunde+" fps"
 EndIf
   ;informationen anzeigen
 SetFont arial02
 Text 450,20,"Konsole öffnen/schliessen mit: ^"
 Text 450,50,"FPS an/aus mit: >fps1< u. >fps0<"
 Text 450,80,"Screenshot mit: >screen<"

 Flip
 

Until KeyHit(1)

End

;   Functionen
;=============================

   ;Konsole
Function GameKonsole()
   ;Rahmen zeichnen

   DrawImage kons,10,0
   ;Schriftfarbe
     Color 255,0,0


   ;Eingabe+schreiben
     keyget=GetKey()
     If keyget>31 Then eingabe$=eingabe$+Chr$(keyget)
     If (keyget=8) And Len(eingabe$)>0 Then eingabe$=Left$(eingabe$, Len(eingabe$)-1)
     If StringWidth(eingabe$)>295 Then eingabe$=Left$(eingabe$, Len(eingabe$)-1)

     SetFont arial01
     Text 22,460, Lower(eingabe$)+"|"
     

   ;Bei enter neuen eintrag ins fenster platzieren, andere weiter hoch schieben
   ;und die Eingabezeile löschen
     If KeyHit(28) Then
      For a.anzeige = Each anzeige
        a\i=a\i+1
      Next

   ;alle Einträge die nicht in das Fenster Passen, werden gelöscht
      If First anzeige<>Null Then
           a=First anzeige
         If a\i>15 Then
            a=First anzeige
            Delete First anzeige
         EndIf
      EndIf
   
   ;neuen Eintrag anheften
         a.anzeige= New anzeige
        a\anz$=eingabe$
        a\i=a\i+1
        eingabe$=""
     EndIf
     For a.anzeige=Each anzeige
     SetFont arial02
     Color 255,255,0
      Text 22,460-(a\i*30), "[ "+a\anz$+" ]"
     Next

   ;auf bestimmte Eingaben prüfen
     If First anzeige<>Null Then
      a=Last anzeige

     If a\anz$="fps1" Then
       frames=True
         For a.anzeige = Each anzeige
              a\i=a\i+1
            Next
         Color 128,255,255
         a.anzeige= New anzeige
           a\anz$="fps on"
         a\i=a\i+1
     EndIf
     If a\anz$="fps0" Then
       frames=False
         For a.anzeige = Each anzeige
              a\i=a\i+1
            Next
         Color 128,255,255
         a.anzeige= New anzeige
           a\anz$="fps off"
         a\i=a\i+1
     EndIf


     If a\anz$="screen" Then
       screenshot()
         For a.anzeige = Each anzeige
              a\i=a\i+1
            Next
         Color 128,255,255
         a.anzeige= New anzeige
           a\anz$="screenshot taken"
         a\i=a\i+1
     EndIf

     If a\anz$="quit" Then End

     EndIf

     ;Anzeigen__________________

   ;Schriftfarbe wieder auf weiß setzen
    Color 255,255,255
End Function


   ;FPS-Counter
Function Framecounter()
   frame=frame+1
   
   If zaehlstart + 1001 < MilliSecs() Then
      FramesJeSekunde=frame
      frame=0
      zaehlstart = MilliSecs()
   EndIf
   
End Function

   ;Screenshot
Function screenshot()
   
   SaveBuffer(FrontBuffer(),"screen.bmp")
   
End Function


dann hier ein Screen:
user posted image

wer das ganze mit Bitmaprahmen ansehen möchte, kann es sich hier:
http://home.arcor.de/skey-z/konsole.rar
runterladen, es sind insgesamt 5 enthalten(kons00.png-kons04.png)

Wer sich den Code nur kopieren will, sollte
Code: [AUSKLAPPEN]

Drawimage kons,10,0

durch folgendes ersetzen
Code: [AUSKLAPPEN]

   ;Rahmen zeichnen
     Color 0,0,0
     Rect 10,0,410,490
     Color 255,255,0
     Rect 10,0,410,490,0
     Rect 10,455,410,35,0
   ;Schriftfarbe
     Color 255,0,0


PS: ich weiss, das es noch besser geht, vor allem vom Code her,
aber ich habe heute keine Nerven mehr fürs Proggen, dieselbigen
habe ich dabei schon verloren*fg*

Also viel spass damit, wenn ihr es verwenden wollt.

Spikespine

BeitragFr, März 11, 2005 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Bau am besten noch die Standartfunktionen (mit den Pfeiltasten den Cursor verschieben, Shift macht groß, etc...) ein, dann isses besser
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax

skey-z

BeitragSa, März 12, 2005 9:59
Antworten mit Zitat
Benutzer-Profile anzeigen
wir auf jedenfall noch erweitert, nur wie gesagt hatte ich gestern keine nerven mehr dazu weiterzu machen und huete muss ich arbeiten und bin auf nem Geburtstag, also vor morgne wird es nichts mehr

nX^

BeitragSa, März 12, 2005 11:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier noch was:
Code: [AUSKLAPPEN]
;Screenshot
Function screenshot()
   
   SaveBuffer(FrontBuffer(),"screen" + i + ".bmp")
   
End Function
For i = 0 To 1000
Next

Da werden die screens nciht mehr überschrieben Very Happy

Holzchopf

Meisterpacker

BeitragSa, März 12, 2005 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
nex hat Folgendes geschrieben:
Hier noch was:
Code: [AUSKLAPPEN]
;Screenshot
Function screenshot()
   
   SaveBuffer(FrontBuffer(),"screen" + i + ".bmp")
   
End Function
For i = 0 To 1000
Next

Da werden die screens nciht mehr überschrieben Very Happy


Hä? wie soll das funktionieren? In der Funktion wird i immer wieder 0 sein, ausserdem wird die For-Next-Schleife gar nie ausgeführt...
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

Sir Dan

BeitragSa, März 12, 2005 12:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
;Screenshot
Function screenshot()     
   SaveBuffer(FrontBuffer(),"screen" + i + ".bmp")
i = i + 1
End Function


So geht es aber
(\_/)
(O.o)
(> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.
 

Ensign Joe

BeitragSa, März 12, 2005 12:57
Antworten mit Zitat
Benutzer-Profile anzeigen
und beim neustart werden die alten wieder überschrieben...
Ich habe jetzt eine Pommesbude aufgemacht am Münchner Hauptbahnhof.
Und da ich Herbert Görgens heiße, heißt diese Pommesbude
Herbert's Pommesbude Smile

rambo256

BeitragSa, März 12, 2005 13:10
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
;Screenshot
Function screenshot()

Repeat
screen = OpenFile(\"screen\"+i+\".bmp\")

If screen = 1 Then i = i+1

Until screen = 0

SaveBuffer(FrontBuffer(),\"screen\" + i + \".bmp\")

CloseFile screen

End Function



und so auch nicht nach einem neustart...
Asus F53z

Das Leben ist eine reine Konkatenation...

Artemis

BeitragSa, März 12, 2005 13:15
Antworten mit Zitat
Benutzer-Profile anzeigen
rambo256 hat Folgendes geschrieben:
BlitzBasic: [AUSKLAPPEN]
;Screenshot
Function screenshot()

Repeat
screen = OpenFile(\"screen\"+i+\".bmp\")

If screen = 1 Then i = i+1

Until screen = 0

SaveBuffer(FrontBuffer(),\"screen\" + i + \".bmp\")

CloseFile screen

End Function


und so auch nicht nach einem neustart...

SO BESSER:BlitzBasic: [AUSKLAPPEN]
Function screenshot()  

Repeat
i = i + 1
Until FileType(\"screen\"+i+\".bmp\") = 0

SaveBuffer(FrontBuffer(),\"screen\" + i + \".bmp\")

End Function

skey-z

BeitragMo, März 14, 2005 10:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Verbesserung, hatte ich auch schon so in der art eingbaut, aber der hat direkt 100 Screens auf einmal gemacht, deswegen hatte ich es erst wieder rausgenommen.

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group