Interface Programmieren

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

mavi

Betreff: Interface Programmieren

BeitragMi, Sep 09, 2009 22:05
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo bb gemeinde

Ich hänge mal wieder an einem kniffligen(für mich) Fall....ich bin gerade das interface am programmieren,.... es sollte ähnlich wie bei wow sein...ich möchte eins von 5 zielen anklicken können und dessen hp in einem extra fenster anzeigen lassen...nur ich möchte es variabel gestalten dass ich auch nur 3 mitglieder anzeigen lassen kann...wie realisiere ich das?

Ich probier schon ziemlich lange dran hier mal mein "billiges Interface"
Code: [AUSKLAPPEN]
Graphics 800,600,16,0
SetBuffer BackBuffer()

Global timer=CreateTimer(25)

player_name$ = "LoW"
font_player = LoadFont("Verdana", 16,1,0,0)
neu$ = LSet(player_name$, 18)


Repeat
Color 255,255,255
;Actionbar
Oval 175,550,50,50,1
Oval 575,550,50,50,1
Rect 200,550,400,50,1
;buttons
Color 255,0,0
Rect 225,552,46,46,1   ;Button 1
Rect 273,552,46,46,1   ;Button 2
Rect 321,552,46,46,1   ;Button 3
Rect 369,552,46,46,1   ;Button 4
Rect 417,552,46,46,1   ;Button 5
Rect 465,552,46,46,1   ;Button 6
Rect 530,552,46,46,1   ;Button_MENU


Rect 5,5,150,75,0      ;Border Player_FRAME





;Player_Frame
   ;leben
   Color 255,0,0
   Rect 10,45,100,15,1 ;Variable für Berechnung einfügen
   ;energie
   Color 0,0,255
   Rect 10,62,100,15,1   ;Variable für Berechnung einfügen
   ;border
   Color 255,255,255
   Rect 10,45,100,15,0
   Rect 10,62,100,15,0
   ;Name
   SetFont font_player
   Text 10,10, neu$
   ;Classicon
   Rect 115,45,32,32,0   

WaitTimer(timer)
Flip:Cls
Until KeyHit(1):End

skey-z

BeitragMi, Sep 09, 2009 22:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Stichwort Types
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Dottakopf

BeitragDo, Sep 10, 2009 10:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Dazu brauchst du types und evt. ein paar arrys.
Wenn du nicht weist was types sind und wa man damit macht kannst du es hier nachlesen/durcharbeiten:

Tut1
https://www.blitzforum.de/foru...hp?t=25321

Tut2
https://www.blitzforum.de/foru...hp?t=25694

Tut3
https://www.blitzforum.de/foru...hp?t=25694

Wenn du dir noch nicht sicher bist mit den grundelementen von BB dann rate ich dir erstmal von Types ab, da diese eine gewisse komplexität mit sich bringen! Wenn du sie aber einmal beherrscht, wirst du sie lieben.

Achja schnell noch einen Tipp: der Befehl rect und text ist sehr langsam, evt. helfen dir Guis(mGui,BlitzUi,draw3d2 SGG). Drawimage ist schneller als rect

Gruß
Dottakopf
 

mavi

BeitragDo, Sep 10, 2009 16:22
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für eure hilfe...erstmal...ich tu mir mal die type tuts zugemüte führen (: und so

Ich wusste granicht das DrawImage schneller ist als Rect ich dachte andersrum deshalb hab ihc das gezeichnet....so kann ich ja "Bilder erstellen" und laden...

Eingeproggt

BeitragDo, Sep 10, 2009 18:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Shocked Wieder was gelernt Shocked

Ich konnte das mit DrawImage vs. Rect selbst grad nicht glauben und hab es mir daher genauer angeschaut:

Code: [AUSKLAPPEN]
Global gfx_w=800
Global gfx_h=600
Graphics gfx_w,gfx_h,0,2
SetBuffer BackBuffer()
SeedRnd MilliSecs()

Local timer=CreateTimer(50)

Global size=50
Global fill=0
Local img=CreateImage(size,size)
SetBuffer ImageBuffer(img)
Rect 0,0,size,size,fill
SetBuffer BackBuffer()

Repeat
   start=MilliSecs()
   For i=1 To 100
      DrawImage img,Rand(0,gfx_w-size),Rand(0,gfx_h-size)
   Next
   DebugLog "DrawImage: "+(MilliSecs()-start)
   
   start=MilliSecs()
   For i=1 To 100
      Rect Rand(0,gfx_w-size),Rand(0,gfx_h-size),size,size,fill
   Next
   DebugLog "Rect: "+(MilliSecs()-start)
   
   Flip 0:Cls
   WaitTimer timer
Until KeyHit(1)
End


Egal, ob ich "size" klein oder groß setze, egal ob gefüllt oder nicht - DrawImage ist schneller, auf meinem PC fast immer 0ms.
Ja, bei so Zeitmessungen in Bltz gibts immer n paar Leute die uns erklären dass das ungenau / irrelevant ist. (Sieht man auch am Anfang, dass da beide Befehle länger brauchen als nach ein paar Hauptschleifen-Durchläufen) Aber der Unterschied ist so eindeutig und immer wieder festzustellen - für mich isses bewiesen.

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Sep 10, 2009 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Rect wird aber schneller sein, wenn man den Puffer vorher sperrt

Code: [AUSKLAPPEN]
   LockBuffer BackBuffer()
   
   start=MilliSecs()
   For i=1 To 1000
      Rect Rand(0,gfx_w-size),Rand(0,gfx_h-size),size,size,fill
   Next
   DebugLog "Rect: "+(MilliSecs()-start)
   
   UnlockBuffer BackBuffer()
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Nicdel

BeitragDo, Sep 10, 2009 20:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, mit Lockbuffer ist Rect tatsächlich schneller.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group