Menu

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.

Show posts Menu

Topics - Markus

#1
Bug Reports / Webseite
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
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
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 / =>
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
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
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
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
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
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
Quellcode-Datei->Druckvorschau

die Vorschau sieht ok aus aber der Ausdruck ist nur halb so breit.
#16
Mein Plan um dieses dumme Internet durch was vernümpftiges zu ersetzen.

Firefox/IE mit Flashplayer etc. alles in die Mülltonne
HTML/Javaskript/Java/PHP/ASP alles Tonne

Nun wird der GLBasic Webplayer erfunden als Ersatz für den Browser.
Navigation nur über Adressen aus einer "GLWebseite",
also nicht mehr diese schwule URL eingabe per Hand.

Dateizugriffe nur über ein manuelles Interface vom Player und immer als
Ziel einen Internet Download Ordner wo dann weiter nichts passiert.

Eine Webseite wird zu einem Buch mit Seiten die ein Format haben.
Innerhalb einer Seite wird die XY Pos. in % angegeben .
Somit kann man endlich mal wieder was gescheit drucken.
Dieses Buch würde sich downloaden bzw. speichern lassen (wenn erlaubt) als ganzes wie eine Archiv Datei.

Und ganz wichtig , es gibt keine Seiten die neue Seiten erzeugen können .
Ein "Buch" wie ich es nenne ist ein in sich geschlossen Einheit aber der GLPlayer kann ein neues laden
wenn dort ein Link drin ist .

Ein "Buch" wie auch die "Seiten" können natürlich Server seitig generiert werden .
Wenn ein "Buch" vollständig geladen wurde ist es erst benutzbar .

Bei einem Shopsystem können ausgefüllte Seiten zurück an den Server geschickt werden.

Bei Abgabe von "Seiten" können neue zurück gegeben werden .

Diesen Browser Ersatz könnte man in GLBasic schreiben und auf alle Plattformen übertragen :-)

... das reicht erstmal für meine verrückten Ideen ...

Und dann gehört die Welt Gernot  :enc:
#18
Wenn ich eine Anwendung auf dem Android AVD starte wird der default font
(smalfont.png der bei mir im Media Ordner liegt)
wohl nicht gefunden und darum nicht geladen.

Wenn man die App als Win32 startet wohl.

Zum umgehen habe ich den jetzt selber geladen und gesetzt.
#19
Wäre nützlich das die Lesezeichen mit gespeichert werden und wenn man eine Datei wieder
öffnet das die wieder eingetragen werden.
Könnte man über eine INI lösen zum Projekt.
[Dateiname]
Bookmark1=121
Bookmark2=234
...
#20
Habe nix dazu gefunden , stand auch nicht in der Hilfe unter Werkzeuge.
Ich denke die sind fest eingebaut .

Kann man da selber eine EXE einbinden im Menü über eine simple INI oder so?
Schließlich kann man mit der IDE selber EXEn erzeugen die vieleicht nützlich sind.