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