Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Markus

Pages: [1] 2
1
Bug Reports / Webseite
« on: 2012-Apr-25 »
Wollte nur sagen das bei dem Link zu GP2X.de Shop wegen dem Bundle
Product not found
kommt und ich dort über die Suche es auch nicht finde.

Wenn man im Showroom sich einen Eintrag anguckt kann man die Sprache nicht
wechseln bzw. kommt da Error - wrong game

Hier im Forum ist ein " am Ende zu viel bei Logfile: DE , da kommt dann Not Found

Ich bin unschuldig  :x

2
Sowas brauche ich damit nicht jedes mal eine neue Struktur erzeugt wird.
Vieleicht geht sowas auch schon und ich weiß es noch nicht.

Code: GLBasic [Select]
FUNCTION >>>ByRef<<< FindPlayer AS TPlayer:Nr

                FOREACH P IN Players[]
                        IF P.Nr=Nr THEN RETURN P
                NEXT

ENDFUNCTION
 

Tatsache ist das ich hier den echten Inhalt vom Array bekomme
Code: GLBasic [Select]
                LOCAL P AS TPlayer
                FOREACH P IN Players[]
                        P.Draw()
                        IF P.Nr=1 THEN P.Update() //das geht
                NEXT
 

Plan B geht nicht  (das Byref ist bei PR wohl schon automatisch bei)
Code: GLBasic [Select]
FUNCTION FindPlayer:Nr, PR AS TPlayer

                FOREACH PR IN Players[]
                        IF PR.Nr=Nr                            
                                BREAK
                        ENDIF
                NEXT

ENDFUNCTION
 

Sowas macht eine Kopie
Code: GLBasic [Select]
FUNCTION FindPlayer:Nr, PR AS TPlayer

                FOREACH P IN Players[]
                        IF P.Nr=Nr  
                                PR=P
                                BREAK
                        ENDIF
                NEXT

ENDFUNCTION
 



3
IDE/Syntax / Funktions Rückgaben
« on: 2012-Apr-24 »
Das Funktionen einfach nur Ja/Nein zurück geben wenn sie das gemacht haben was sie sollten
finde ich nützlich. Zumindest bei den Dingern die was laden/speichern.

Wenn LoadFont einen Rückgabewert hätte :

IF LOADFONT("xxxxxxxxx.png", 1)=false then Debug "Font nicht gefunden ..."

Die Klammern sollten dann aber optional sein wenn man keinen Wert braucht.
LOADFONT "xxxxxxxxx.png", 1

4
Bug Reports / (Erledigt) HIBERNATE & MOUSEAXIS
« on: 2012-Apr-23 »
Ich habe eben durch Zufall die HIBERNATE Funktion gefunden.
Die ist ganz nützlich.
Aber sobald ich die einbaue bekommt man von MOUSEAXIS keine gescheiten Werte mehr.
MouseWheel z.B. kommt noch ab und an ganz kurz durch und Geschwindigkeit ist 0.

Code: GLBasic [Select]
        REPEAT

                GETSCREENSIZE w,h
                STRETCHSPRITE bgsprite3, 0, 0, w, h

                //0=X - Geschwindigkeit
                //1=Y - Geschwindigkeit
                //2=Rad (1 auf, -1 ab)
                //3=linke Maustaste
                //4=rechte Maustaste
                //5=mittlere Maustaste

                mxsp%=MOUSEAXIS(0)
                mysp%=MOUSEAXIS(1)

                wheel%=MOUSEAXIS(2)
                bm%=MOUSEAXIS(5)

                b1click=b1
                b2click=b2
                MOUSESTATE mx,my,b1,b2
                IF b1<>b1click AND b1=1
                        b1click=TRUE
                ELSE
                        b1click=FALSE
                ENDIF
                IF b2<>b2click AND b2=1
                        b2click=TRUE
                ELSE
                        b2click=FALSE
                ENDIF

                keyasc$ = INKEY$( )
                keycode% = KEY(1) //ESC

//...

                PRINT "mx="+mx+" my="+my + " b1click="+b1click,0,0
                PRINT "mxsp="+mxsp+" mysp="+mysp +" wheel=" + wheel,0,16
               
                SHOWSCREEN
                HIBERNATE //dann geht mein Mouse Move nicht mehr und das Wheel
               
        UNTIL FALSE
 

5
IDE/Syntax / =>
« on: 2012-Apr-22 »
=> ist Syntyx error und man muß >= schreiben.
Das läßt sich doch bestimmt einfach erweitern.

Wenn ich z.B. gucken möchte ob die Mauspos. in einem Rechteck ist schreibe ich immer mx=>x1
weil = der Rand ist und es dann nach innen mit > weiter geht.
Auf der rechten Seite schreibe ich mx<=x2
Die XY Koordinaten gehen ja auch von links nach rechts und oben nach unten.

6
GLBasic - de / (Erledigt) Break ???
« on: 2012-Apr-22 »
Eigentlich wollte ich die Schleife bei gefunden mit dem Break verlassen.
Aber das Break kommt immer  :rant: warum das denn?
Sieht doch eigentlich so aus IF G.ID=ID THEN F=G ;BREAK ENDIF
nur das ENDIF der Zeilenumbruch ist.

Bei Visual Basic nennt sich das Exit For , bei anderen nur Exit was ich brauche.

Code: GLBasic [Select]

TYPE TTest
        ID
ENDTYPE

GLOBAL MeineListe[] AS TTest

LOCAL A AS TTest
A.ID=1

LOCAL B AS TTest
B.ID=2

LOCAL C AS TTest
C.ID=3

DIMPUSH MeineListe[],A
DIMPUSH MeineListe[],B
DIMPUSH MeineListe[],C

LOCAL Found AS TTest
Found=FindID(3)

DEBUG "Gefunden " + Found.ID +"\n"

END

FUNCTION FindID AS TTest: ID

        LOCAL F AS TTest
        LOCAL G AS TTest
        FOREACH G IN MeineListe[]
                DEBUG "Eintrag ID "+G.ID +"\n"
                IF G.ID=ID THEN F=G ;BREAK      //mal mit und ohne Break angucken
        NEXT

        RETURN F

ENDFUNCTION
 

7
Bug Reports / Variable already exists
« on: 2012-Apr-22 »
Das Verhalten finde ich merkwürdig.
Im Projekt habe ich Explizite Deklaration "An"

Code: GLBasic [Select]
TYPE TTest

        x1
        y1
        x2
        y2

        FUNCTION ChangeViewPort: BYREF w,BYREF h

                        w=(self.x2-self.x1)+1
                        h=(self.y2-self.y1)+1

                        IF self.y1=0 AND self.y2=0
                                VIEWPORT 0,0,-1,-1
                        ELSE
                                VIEWPORT self.x1,self.y1,w,h
                        ENDIF

        ENDFUNCTION

ENDTYPE

LOCAL A AS TTest
A.x1=0
A.y1=0
A.x2=320
A.y2=320

LOCAL w,h
A.ChangeViewPort(w,h)

END
 

Quote

_______________________________________
*** Configuration: WIN32 ***
precompiling:
GPC - GLBasic Precompiler V.9.829 SN:471f0175 - 2D, WIN32
"Test.gbas"(29) warning : variable already exists : w
"Test.gbas"(29) warning : variable already exists : h
Wordcount:13 commands
compiling:
C:\Users\Gang\AppData\Local\Temp\glbasic\gpc_temp0.cpp: In function `int __GLBASIC__::__MainGameSub_()':
C:\Users\Gang\AppData\Local\Temp\glbasic\gpc_temp0.cpp:98: error: `w' was not declared in this scope
C:\Users\Gang\AppData\Local\Temp\glbasic\gpc_temp0.cpp:98: error: `h' was not declared in this scope
*** FATAL ERROR - Bitte die Compiler-Ausgabe ins Forum kopieren
_______________________________________
*** Fertig ***
Dauer: 1.4 sek. Zeit: 13:14
Erstellen: 0 erfolgreich.
*** 1 FEHLGESCHLAGEN ***

8
GLBasic - de / (Erledigt) Pointer anzeigen?
« on: 2012-Apr-22 »
Wie kann ich denn die Speicheradresse von dieser Variable anzeigen???

Debug will Anything gibt mir das aber nicht aus.
Mit Format geht auch nicht. Str gibt es nicht.
Im Debug Stop wird es nicht angezeigt.

(suche grad eine Ursache darum brauche ich das)

Code: GLBasic [Select]
TYPE TTest

        a%

ENDTYPE

LOCAL A AS TTest
A.a=0

DEBUG A

END
 

9
Mir ist grad aufgefallen das die Variablen die Strukturen haben nicht beim Haltepunkt
aufgelistet werden.
Das wäre doch nützlich.
Die Adresse wo sich die Struktur gerade im Speicher befindet müßte man auch sehen können.

[attachment deleted by admin]

10
Ich kapier das nicht, ich sitz da jetzt schon Stunden dran und finde die Ursache nicht^^

In der Funktion TGuiDraw die ich extra mal aus TGui raus genommen habe
passiert was komisches wenn ich die sonst noch gar nicht benutzte Variable
s.vx1 auf -1 setze.  :help:
Statt dem ganzen Gui sieht man nur noch das erste Element, als ob das Programm aus
meiner rekursiven Malschleife raus springt.

Das Projekt habe ich auf 2 Bilder pro Sek. damit man die Debugs besser lesen kann.

EDIT: Ich glaube es geht der Pointer auf meine Struktur flöten...  :noggin:

Haupt Programm
Code: GLBasic [Select]
// --------------------------------- //
// Project: MRGUI
// Start: Thursday, April 19, 2012
// MR 19.04.2012
// IDE Version: 10.283

MainLoop()
END

FUNCTION MainLoop:

        SYSTEMPOINTER TRUE

        LOCAL Gui AS TConnect

        LOCAL G AS TGui

        LOCAL sp%=1

        LOCAL y%=0

    G_CreateBG()

    LOCAL Begin AS TGui
        LOCAL Window AS TGui=G.CreateWindow  (0, 0,100,100,"Dialog");y=y+5+sp
    Gui.Add(Begin,Window)

        G=G.CreateLabel(1, y, 99, y+5,"Spielstände");y=y+5+sp
        Gui.Add(Window,G)


        LOCAL List1 AS TGui=G.CreateList    (1, y, 93, y+5*4,"List")
        Gui.Add(Window,List1)

        LOCAL Slider2 AS TGui=G.CreateSlider  (94, y, 99, y+5*4,"SliderY")
        Gui.Add(Window,Slider2)

        y=y+5*4+sp

        LOCAL Slider1 AS TGui=G.CreateSlider  (1, y, 93, y+5,"SliderX");y=y+5+sp
        Gui.Add(Window,Slider1)

        LOCAL i%
        LOCAL ty%=List1.py1-2.5
        FOR i=0 TO 5

                G=G.CreateOption(List1.px1+1 ,ty ,List1.px1+ 19,ty+5,i)
                IF i=1 THEN G.valuei=1
                Gui.Add(List1,G)
                G=G.CreateLabel(List1.px1+20 ,ty ,List1.px1+ 79,ty+5,"Level "+i+" - 19.04.12 1"+i+":15")
                Gui.Add(List1,G)
                G=G.CreateButton(List1.px1+80 ,ty ,List1.px1+ 90,ty+5,"X")
                Gui.Add(List1,G)
                ty=ty+6
        NEXT

        LOCAL Button2 AS TGui=G.CreateButton  (1, y, 50, y+5,"Laden")
        Gui.Add(Window,Button2)

        LOCAL Button1 AS TGui=G.CreateButton  (51, y, 99, y+5,"Speichern als");y=y+5+sp
        Gui.Add(Window,Button1)

        G=G.CreateTextbox  (51, y, 99, y+5,"Level 3 - 21.04.2012 15:35");y=y+5+sp
        G.focus=1
        Gui.Add(Window,G)

        y=y+5+sp
        G=G.CreateLabel(1, y, 99, y+5,"Einstellungen");y=y+5+sp
        Gui.Add(Window,G)

        LOCAL Frame1 AS TGui=G.CreateFrame   (1, y, 50, y+5*5,"Schwierigkeitsgrad")
        Gui.Add(Window,Frame1)

        G=G.CreateOption  (1+1,y+ 5, 49,y+ 5+5,"Einfach")
        G.valuei=1
        Gui.Add(Frame1,G)
        G=G.CreateOption  (1+1,y+ 5+5+1, 49,y+ 5+5+1+5,"Normal")
        Gui.Add(Frame1,G)
        G=G.CreateOption  (1+1,y+ 5+5+1+5+1, 49,y+ 5+5+1+5+5+1,"Schwer")
        G.enabled=FALSE
        Gui.Add(Frame1,G)

        LOCAL Frame2 AS TGui=G.CreateFrame   (51, y, 99, y+5*5,"Akustik")
        Gui.Add(Window,Frame2)

        G=G.CreateCheckbox(51+1, y+5, 99-1, y+5+5,"Töne")
        G.valuei=1
        Gui.Add(Frame2,G)

        G=G.CreateCheckbox(51+1, y+5+5+1, 99-1, y+5+5+5+1,"Musik")
        G.valuei=1
        Gui.Add(Frame2,G)

        y=y+5*5+sp

        DEBUG "Connect Einträge=" + BOUNDS(G_HierarchyList[],0) +"\n"

        LOCAL wheel%
        LOCAL bm%
        LOCAL mx%,my%,b1%,b2%
        LOCAL keyasc$
        LOCAL keycode%
        LOCAL vx%,vy%,width%,height%

        REPEAT

                //0=X - Geschwindigkeit
                //1=Y - Geschwindigkeit
                //2=Rad (1 auf, -1 ab)
                //3=linke Maustaste
                //4=rechte Maustaste
                //5=mittlere Maustaste

                wheel%=MOUSEAXIS(2)
                bm%=MOUSEAXIS(5)

                MOUSESTATE mx,my,b1,b2

                keyasc$ = INKEY$( )
                keycode% = KEY(1) //ESC

                Gui.Draw(Window)

                Gui.Update(Window,mx,my,b1,b2,bm,wheel,keyasc$) //Keys & Mouse

                SHOWSCREEN

        UNTIL FALSE

ENDFUNCTION
 

Das GUI Modul was Probleme macht
Code: GLBasic [Select]
// --------------------------------- //
// Project: MRGUI
// Start: Thursday, April 19, 2012
// MR 21.04.2012
// IDE Version: 10.283

//For a Combobox use a Button and a List

CONSTANT G_Window       =1
CONSTANT G_Label        =2
CONSTANT G_Button       =3
CONSTANT G_Slider       =4
CONSTANT G_List         =5
CONSTANT G_Checkbox     =6
CONSTANT G_Option       =7
CONSTANT G_Frame        =8
CONSTANT G_Textbox  =9

CONSTANT bgsprite1=101
CONSTANT bgsprite2=102
CONSTANT bgsprite3=103

TYPE TConnect
        Parent AS TGui
        Child AS TGui

        FUNCTION Add:ParentX AS TGui,ChildX AS TGui

                self.Parent=ParentX
                self.Child=ChildX
                DIMPUSH G_HierarchyList[],self

        ENDFUNCTION

        FUNCTION Draw:Parent AS TGui

                //DEBUG Parent.text$ + "\n"
                LOCAL vx%,vy%,width%,height%
                GETVIEWPORT vx,vy,width,height //merken

                DEBUG "Draw " + Parent.text$ + "\n"
                TGuiDraw(Parent)

                LOCAL w%,h%

                LOCAL C AS TConnect
                //LOCAL I%
                //FOR I = 0 TO BOUNDS(G_HierarchyList[],0)-1
                //      C=G_HierarchyList[I]

                FOREACH C IN G_HierarchyList[]
                        IF C.Parent = Parent
                        Parent.ChangeViewPort(w,h)
                                C.Draw(C.Child)
                        ENDIF
                NEXT

                VIEWPORT vx,vy,width,height //wieder herstellen

        ENDFUNCTION

        FUNCTION Update:Parent AS TGui,mx%,my%,b1%,b2%,bm%,wheel%,keyasc$

                Parent.Update(mx,my,b1,b2,bm,wheel,keyasc$)

                LOCAL C AS TConnect
                FOREACH C IN G_HierarchyList[]
                        IF C.Parent = Parent
                                C.Update(C.Child,mx,my,b1,b2,bm,wheel,keyasc$)
                        ENDIF
                NEXT

        ENDFUNCTION

ENDTYPE
GLOBAL G_HierarchyList[] AS TConnect

TYPE TGui
        typ%            //label,textbox,...

        // % 0 bis 100 = breite
        px1#
        py1#
        px2#
        py2#

        x1%                     //real window pos
        y1%
        x2%
        y2%

        //visible real window pos
        vx1%
        vy1%
        vx2%
        vy2%

        text$

        valuei%         //bei Textbox Cursor Pos.
        valuefx#        //bei Slider -1 bis 1
        valuefy#

        enabled%
        visible%
        focus%          //bei Eingabe

        //SubList[] AS TGui <<< geht nicht ^^

        FUNCTION Init: typ% , x1# , y1# , x2# , y2# , text$

                self.vx1=0
                self.vy1=0
                self.vx2=0
                self.vy2=0

                self.px1=x1
                self.py1=y1
                self.px2=x2
                self.py2=y2

            G_ProcentToReal( x1,y1 , x1,y1 )
            G_ProcentToReal( x2,y2 , x2,y2 )

                self.typ=typ

                self.x1=x1
                self.y1=y1
                self.x2=x2
                self.y2=y2

                self.text$=text$
                self.valuei=0
                self.valuefx=0.0
                self.valuefy=0.0
                self.enabled=TRUE
                self.visible=TRUE
                self.focus=FALSE

        ENDFUNCTION

        FUNCTION ChangeViewPort: BYREF w%,BYREF h%
        //FUNCTION ChangeViewPort: BYREF w,BYREF h

                        LOCAL x%,y%
                        x=self.x1
                        y=self.y1

                        w=(self.x2-self.x1)+1
                        h=(self.y2-self.y1)+1

                        IF self.y1=0 AND self.y2=0
                                VIEWPORT 0,0,-1,-1
                        ELSE
                                VIEWPORT x,y,w,h
                        ENDIF

        ENDFUNCTION

        FUNCTION TextWidth%: tx$

          LOCAL sx%,sy%
          GETFONTSIZE sx,sy
          RETURN sx*LEN(tx$)

        ENDFUNCTION

        FUNCTION TextHeight%:

          LOCAL sx%,sy%
          GETFONTSIZE sx,sy
          RETURN sy

        ENDFUNCTION

        FUNCTION Update: mx%,my%,b1%,b2%,bm%,wheel%,keyasc$

                //...
                //Wenn sichtbar und enabled und Focus bei Textbox den Text verändern

        ENDFUNCTION //Update

        FUNCTION CreateWindow AS TGui: x1#,y1#,x2#,y2#,text$

                LOCAL G AS TGui
                G.Init(G_Window,x1,y1,x2,y2,text$)
                RETURN G

        ENDFUNCTION

        FUNCTION CreateLabel AS TGui: x1#,y1#,x2#,y2#,text$

                LOCAL G AS TGui
                G.Init(G_Label,x1,y1,x2,y2,text$)
                RETURN G

        ENDFUNCTION

        FUNCTION CreateTextbox AS TGui: x1#,y1#,x2#,y2#,text$

                LOCAL G AS TGui
                G.Init(G_Textbox,x1,y1,x2,y2,text$)
                RETURN G

        ENDFUNCTION

        FUNCTION CreateButton AS TGui: x1#,y1#,x2#,y2#,text$

                LOCAL G AS TGui
                G.Init(G_Button,x1,y1,x2,y2,text$)
                RETURN G

        ENDFUNCTION

        FUNCTION CreateSlider AS TGui: x1#,y1#,x2#,y2#,text$

                LOCAL G AS TGui
                G.Init(G_Slider,x1,y1,x2,y2,text$)
                RETURN G

        ENDFUNCTION

        FUNCTION CreateList AS TGui: x1#,y1#,x2#,y2#,text$

                LOCAL G AS TGui
                G.Init(G_List,x1,y1,x2,y2,text$)
                RETURN G

        ENDFUNCTION

        FUNCTION CreateCheckbox AS TGui: x1#,y1#,x2#,y2#,text$

                LOCAL G AS TGui
                G.Init(G_Checkbox,x1,y1,x2,y2,text$)
                RETURN G

        ENDFUNCTION

        FUNCTION CreateOption AS TGui: x1#,y1#,x2#,y2#,text$

                LOCAL G AS TGui
                G.Init(G_Option,x1,y1,x2,y2,text$)
                RETURN G

        ENDFUNCTION

        FUNCTION CreateFrame AS TGui: x1#,y1#,x2#,y2#,text$

                LOCAL G AS TGui
                G.Init(G_Frame,x1,y1,x2,y2,text$)
                RETURN G

        ENDFUNCTION

ENDTYPE //Gui

FUNCTION G_ProcentToReal: px#,py#,BYREF x#,BYREF y#

        LOCAL vx%,vy%,width%,height%
        GETVIEWPORT vx,vy,width,height

        px=px/100.0
        py=py/100.0

    LOCAL m# = MIN(width,height)

        x=px*width  //m
        y=py*height //m

    //DEBUG "px " + px + " py " +py +" x " + x + " y " +y  +"\n"

ENDFUNCTION

FUNCTION G_CreateBG:

        //macht die Farbverlauf Balken 1x als Sprites

        LOCAL vx%,vy%,width%,height%
        GETVIEWPORT vx,vy,width,height //merken Element drüber

        LOCAL width%=32,h%=32

        CREATESCREEN 0, bgsprite1, width, h

        USESCREEN 0

        LOCAL ly#,mu#,r%,g%,b%
        FOR ly=0 TO h-1
         mu#=ly / (h-1)
         r=Intp( 64.0 , 255.0 ,mu)
         g=Intp( 64.0 , 255.0 ,mu)
         b=Intp(128.0 ,255.0 ,mu)
         DRAWLINE 0,ly,width-1,ly,RGB(r,g,b)
        NEXT

        CREATESCREEN 0, bgsprite2, width, h

        USESCREEN 0

        FOR ly=0 TO h-1
         mu#=ly / (h-1)
         r=Intp(255.0 , 64.0 ,mu)
         g=Intp(255.0 , 64.0 ,mu)
         b=Intp(255.0 ,128.0 ,mu)
         DRAWLINE 0,ly,width-1,ly,RGB(r,g,b)
        NEXT

        CREATESCREEN 0, bgsprite3, width, h

        USESCREEN 0

        FOR ly=0 TO h-1
         mu#=ly / (h-1)
         r=Intp( 0.0 , 128.0 ,mu)
         g=Intp( 0.0 , 128.0 ,mu)
         b=Intp( 0.0 , 128.0 ,mu)
         DRAWLINE 0,ly,width-1,ly,RGB(r,g,b)
        NEXT

        USESCREEN -1

ENDFUNCTION

//Interpolation A to B
FUNCTION Intp#: a#,b#,mu# //mu = 0.0 bis 1.0
 RETURN a+(b-a)*mu
ENDFUNCTION

FUNCTION TGuiDraw: s AS TGui

        //######################################################################################## ???
        //diese werden noch gar nicht benutzt ^^
        s.vx1=0 // wenn ich -1 mache ist mein GUI unsichtbar ^^
        s.vy1=0
        s.vx2=0
        s.vy2=0
        //########################################################################################

        LOCAL w%,h%
        LOCAL vx%,vy%,width%,height%
        LOCAL bgcolor
        LOCAL ColorL
        LOCAL ColorD
        LOCAL tx%=0
        LOCAL ty%=0

        IF s.visible=TRUE

                GETVIEWPORT vx,vy,width,height //merken Element drüber

                IF s.x1<vx THEN RETURN
                IF s.x2>vx+width THEN RETURN

                IF s.y1<vy THEN RETURN
                IF s.y2>vy+height THEN RETURN

                s.ChangeViewPort(w,h)

                //######################################################################################## ???
                //echte sichtbare Pos. //############ bring das ForEach durcheinander !!!???
                //s.vx1=vx
                //s.vy1=vy
                //s.vx2=vx+w-1
                //s.vy2=vy+h-1
                //TGuiDebugThis(s)
                //########################################################################################

                bgcolor=RGB(0,0,64)
                IF s.enabled=FALSE
                        STRETCHSPRITE bgsprite3, 0, 0, w, h //AUS
                ELSEIF s.focus<>0
                        STRETCHSPRITE bgsprite2, 0, 0, w, h //AN mit Focus
            ELSE
                        STRETCHSPRITE bgsprite1, 0, 0, w, h //AN Normal
                ENDIF

                //Rahmen
                IF s.focus
                        ColorL=RGB(0,0,64)
                        ColorD=RGB(255,255,255)
                ELSE
                        ColorL=RGB(255,255,255)
                        ColorD=RGB(0,0,64)
                ENDIF

                IF s.typ=G_Label
                ELSE
                        DRAWLINE 0,0,w-1,0,ColorL //Oben
                        DRAWLINE 0,0,0,h-1,ColorL //Links
                        DRAWLINE 0,h-1,w-1,h-1,ColorD //Unten
                        DRAWLINE w-1,0,w-1,h-1,ColorD //Rechts
                ENDIF

                IF s.typ=G_Window OR s.typ=G_Frame OR s.typ=G_Label OR s.typ=G_Checkbox OR s.typ=G_Option OR s.typ=G_Button  OR s.typ=G_Textbox
                        tx=w/2-s.TextWidth(s.text$)/2 //Mitte
                ENDIF
                IF s.typ=G_Window OR s.typ=G_Frame
                        //die nicht
                ELSE
                        ty=h/2-s.TextHeight()/2
                ENDIF

                IF s.typ=G_Slider
                        //dient nur zum rumgeklicke
                        //Kugel Malen
                        //x  = -1 bis 1
                        //y  = -1 bis 1
                        //valuefx#
                        //valuefy#
                        PRINT "+",w/2-s.TextWidth("+")/2,h/2-s.TextHeight()/2
                ELSEIF s.typ=G_List
                        //Liste hat kein Text , nur Inhalt
                ELSE
                        PRINT s.text$,tx,ty //BitmapFont
                ENDIF

                IF s.typ=G_Checkbox AND s.valuei<>0 THEN PRINT " +",0,ty //BitmapFont
                IF s.typ=G_Option AND s.valuei<>0 THEN PRINT " +",0,ty //BitmapFont
                IF s.typ=G_Textbox AND s.valuei<>0 THEN PRINT " +",0,ty //BitmapFont

        ENDIF //Sichtbar

ENDFUNCTION //Draw

FUNCTION TGuiDebugThis: D AS TGui

        DEBUG " vx1 " + D.vx1
        DEBUG " vy1 " + D.vy1
        DEBUG " vx2 " + D.vx2
        DEBUG " vy2 " + D.vy2

        DEBUG " px1 "+D.px1
        DEBUG " py1 "+D.py1
        DEBUG " px2 "+D.px2
        DEBUG " py2 "+D.py2

        DEBUG " typ "+D.typ

        DEBUG " x1 "+D.x1
        DEBUG " y1 "+D.y1
        DEBUG " x2 "+D.x2
        DEBUG " y2 "+D.y2

        DEBUG " text "+D.text$
        DEBUG " valuei "+D.valuei
        DEBUG " valuefx "+D.valuefx
        DEBUG " valuefy "+D.valuefy
        DEBUG " enabled "+D.enabled
        DEBUG " visible "+D.visible
        DEBUG " focus "+D.focus
        DEBUG "\n"

        //KEYWAIT

ENDFUNCTION
 

11
Eigentlich wollte ich was anderes testen.

Code: GLBasic [Select]
TYPE TTest

        x1
        y1
        x2
        y2

        FUNCTION ChangeViewPort: BYREF w,BYREF h

                        LOCAL x,y
                        x=self.x1
                        y=self.y1

                        w=(self.x2-self.x1)+1
                        h=(self.y2-self.y1)+1

                        IF self.y1=0 AND self.y2=0
                                VIEWPORT 0,0,-1,-1
                        ELSE
                                VIEWPORT x,y,w,h
                        ENDIF

        ENDFUNCTION

ENDTYPE

LOCAL A AS TTest
A.x1=0
A.y1=0
A.x2=320
A.y2=320

LOCAL w,h
A.ChangeViewPort(w,h)

END

 

Quote
*** Configuration: WIN32 ***
precompiling:
GPC - GLBasic Precompiler V.9.829 SN:471f0175 - 2D, WIN32
"Test.gbas"(34) warning : variable already exists : w
"Test.gbas"(34) warning : variable already exists : h
Wordcount:15 commands
compiling:
C:\Users\Gang\AppData\Local\Temp\glbasic\gpc_temp0.cpp: In function `int __GLBASIC__::__MainGameSub_()':
C:\Users\Gang\AppData\Local\Temp\glbasic\gpc_temp0.cpp:113: error: `w' was not declared in this scope
C:\Users\Gang\AppData\Local\Temp\glbasic\gpc_temp0.cpp:113: error: `h' was not declared in this scope
*** FATAL ERROR - Bitte die Compiler-Ausgabe ins Forum kopieren

12
GLBasic - de / (erledigt) Types und Liste
« on: 2012-Apr-19 »
Ich hab grad ein Brett vor Kopf.
In anderen Sprachen gibt es Listen wo ich Objekte rein tun kann, wie kann man das in GLBasic lösen?

Code: GLBasic [Select]
TYPE TGui
        x1
        y1
        x2
        y2
        text$
        valuei
        valuef#
        enabled
        visible
        focus
        SubList[] //AS TGui <<< ???

        FUNCTION Add: x1,y1,x2,y2,text$
       
                LOCAL G AS TGui
       
            //G_ProcentToReal( x1,y1 , x1,y1 )
            //G_ProcentToReal( x2,y2 , x2,y2 )
       
                G.x1=x1
                G.y1=y1
                G.x2=x2
                G.y2=y2
                G.text$=text$
                G.valuei=0
                G.valuef#=0.0
                G.enabled=TRUE
                G.visible=TRUE
                G.focus=FALSE
       
                DIMPUSH SubList[], G //hier ist das nun der falsche Typ
       
        ENDFUNCTION
//...

ENDTYPE //Gui
 

13
Ich kann den Schieberegler/Schubregler von meinem Cyborg 3D Gold nicht abfragen .
Habe alle Befehle aus der Anleitung da rein getan und der Kommentar Throttle kommt von dort
aber da wird kein Wert angezeigt . Unter Windows sehe ich den Balken , der geht jedenfalls .
Bitte bitte ich brauche den Wert auch .

 :help:

Code: GLBasic [Select]
TYPE TJoy
 jn$ = "?"
 x# = 0
 y# = 0
 z# = 0
 rx# = 0
 ry# = 0
 rz# = 0
 b%[32]
 dx# = 0
 dy# = 0
 
 FUNCTION Get: n //0 bis 9
        self.jn$ = GETJOYNAME$(n)
        self.x = GETJOYX(n)
        self.y = GETJOYY(n)
        self.z = GETJOYZ(n) // Throttle / Schieberegler geht nicht
        self.rx = GETJOYRX(n)
        self.ry = GETJOYRY(n)
        self.rz = GETJOYRZ(n)
        LOCAL bu
        FOR bu=0 TO 31
         self.b[bu] = GETJOYBUTTON(n, bu) //0-31 Buttons
        NEXT
        self.dx = GETDIGIX(n) // Hat switch
        self.dy = GETDIGIY(n)
 ENDFUNCTION

 FUNCTION Draw:
        LOCAL py=0,sy=10
        PRINT self.jn$ ,0,py ; py=py+sy
        PRINT "x "+self.x ,0,py ; py=py+sy //Links & Rechts
        PRINT "y "+self.y ,0,py ; py=py+sy //Oben & Unten
        PRINT "z "+self.z ,0,py ; py=py+sy
        PRINT "rx "+self.rx ,0,py ; py=py+sy
        PRINT "ry "+self.ry ,0,py ; py=py+sy
        PRINT "rz "+self.rz ,0,py ; py=py+sy //drehen
        LOCAL bu
        FOR bu=0 TO 31
                PRINT "b "+self.b[bu] ,0,py ; py=py+sy  //button
        NEXT
        PRINT "dx "+self.dx ,0,py ; py=py+sy //-1 links nach 1 rechts
        PRINT "dy "+self.dy ,0,py ; py=py+sy //-1 oben nach 1 unten
 ENDFUNCTION
 
ENDTYPE

LOCAL Joy AS TJoy
LOCAL n = GETNUMJOYSTICKS( )
//PRINT "Anzahl " + n,0,0
//SHOWSCREEN
//KEYWAIT

n = 0
Joy.Get(n)

LOCAL Liste[] AS TJoy
DIMPUSH Liste[], Joy

ALLOWESCAPE TRUE

REPEAT
        FOREACH Joy IN Liste[]
                Joy.Get(0)
                Joy.Draw()
                //DELETE Joy
        NEXT
        SHOWSCREEN
UNTIL FALSE
END
 

14
Bug Reports / FILEREQUEST$ unter Win7
« on: 2012-Apr-19 »
Ich guck mir grad alle Befehle an.

Dieser geht bei mir nicht wie in der Anleitung beschrieben und im Debug Modus kommt
*** Unhandled exception ***
   ExceptionCode = 0xc0020043  :help:

Code: GLBasic [Select]
LOCAL file$
file$=FILEREQUEST$(TRUE, "Texte *.txt|*.txt|Alle *.*|*.*")
PRINT file$, 0, 100
SHOWSCREEN
MOUSEWAIT
 



15
Bug Reports / Druckvorschau und Drucken
« on: 2012-Apr-18 »
Quellcode-Datei->Druckvorschau

die Vorschau sieht ok aus aber der Ausdruck ist nur halb so breit.

Pages: [1] 2