BASIC

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 - mangoo

Pages: [1]
1
Code Snippets / Dictionary / Hashmap
« on: 2011-May-15 »
Hallo zusammen,

da ich auf die schnelle kein Dictionary in glbasic gefunden habe, hier ein einfaches Dictionary bzw. eine Hashmap  für Strings. 
Damit kann man sich zu einem String Schlüssel einen String Wert halten/holen

Z.B.

dic as Dictionary
dic.set("kuh","muh")

speichert für den wert "kuh" den wert "muh"


Hinterher kann man sich diesen wieder holen mit

dic.get$("kuh")

wenn man "kuh" nochmals setzen würde würde der wert einfach überschrieben werden.

dic.get liefert 0 wenn der wert nicht gefunden wurde
dic.clear löscht alle elemente
dic.count gibt die anzahl wieder



Code: GLBasic [Select]
// --------------------------------- //
// Project: feuerware
// Start: Sunday, May 15, 2011
// IDE Version: 9.089

//GLOBAL dic AS Dictionary

//dic.set("a","b")
//dic.set("a","c")
//dic.set("d","edd")

//DEBUG dic.get$("a")
//DEBUG dic.get$("d")
//DEBUG dic.size()



//hashmap:  "a" => "b"
TYPE Dictionary

        keys$[]
        values$[]
       
        //adds or replace a key value pair
        FUNCTION set: key$,value$
               
                FOR i=0 TO LEN(self.keys$)-1
                        IF self.keys$[i] = key$
                                self.values$[i] = value$
                                RETURN
                        ENDIF
                NEXT
                       
                //not found, redim
                REDIM self.keys$[LEN(self.keys$)+1]
                REDIM self.values$[LEN(self.values$)+1]
                self.keys$[LEN(self.keys$)-1] = key$
                self.values$[LEN(self.values$)-1] = value$

        ENDFUNCTION
       
       
        // returns 0 if doesnt exist
        FUNCTION get$: key$
                FOR i=0 TO LEN(self.keys$)-1
                        IF self.keys$[i] = key$
                                RETURN self.values$[i]
                        ENDIF
                NEXT
                RETURN 0
        ENDFUNCTION
       
       
        //how many key values are there?
        FUNCTION size:
                RETURN LEN(self.keys$)
        ENDFUNCTION
       
        //clears all items
        FUNCTION clear:
                REDIM self.keys$[0]
                REDIM self.values$[0]
        ENDFUNCTION

        FUNCTION remove%: key$
                FOR i=0 TO LEN(self.keys$)-1
                        IF self.keys$[i] = key$
                                DIMDEL self.keys$[],i
                                DIMDEL self.values$[],i
                                RETURN i
                        ENDIF
                NEXT
                RETURN -1              
        ENDFUNCTION
       
ENDTYPE

2
Bug Reports / IPhone MouseState Problem
« on: 2011-Mar-11 »
hi,

habe bei meinem iphone spiel das problem, dass wenn der finger ausm bild ist, also man z.b. den finger zu weit über den bildschirm streicht und über den rand rausgeht, dass dann wenn der finger zurückgeht (ohne abzuheben), dieser nicht mehr erkannt wird.

 erst wenn ich den finger abhebe und aufsetze geht es wieder.

ich erinner mich daran dass hier schon mal was ähnliches gepostet wurde, finde es aber leider nicht mehr.
kann mir da wer aushelfen?

heute abend werde ich auch ein beispiel posten können.


Gruß
mangoo

3
Bug Reports / IPhone MouseState Fehler
« on: 2011-Feb-16 »
Hallo,

mir ist gerade ein MouseState Fehler aufgefallen auf dem Iphone bei Verwendung von einer

höheren Auflösung 960x620 bzw 620x960.

Die x und y Koordinaten der Maus (bzw. des Fingers) werden nicht richtig berechnet: Hilfslösung(en) habe ich unten angefügt.

Auf Dauer wärs natürlich klasse wenn es richtig berechnet wird :-)


Hier ein Beispiel

Code: GLBasic [Select]

GLOBAL mx,my,mb,mb2
WHILE NOT KEY(01)
        MOUSESTATE mx,my,mb,mb2
       
        CLEARSCREEN RGB(0,0,0)
       
        DRAWRECT mx-20,my-20,40,40,RGB(255,255,255)
        SHOWSCREEN
WEND
END
 

Die Zwischenlösung bei mir ist jetzt:

Horizontal: 960x640
Code: GLBasic [Select]
        MOUSESTATE mx,my,mb,mb2
        my = -640 + my*2
        mx = mx*2
 

Vertikal:
Code: GLBasic [Select]
        MOUSESTATE mx,my,mb,mb2
        my = my*2
        mx = mx*2
 

4
Bug Reports / 3d iphone bugs
« on: 2011-Jan-31 »
Hi,

ich habe Probleme bei 3d funktionalitäten fürs iphone

1.) shader funktionieren nicht aufm iphone, können nie geladen werden, werder auf dem 3g,3gs noch auf meinem ipod touch 4.    hatte dazu einige alte threads gefunden in denen gesagt wurde dass shader support kein problem ist und eingebaut wird? sind die eingebaut worden?


2.) einige 3d funktionen tun es nicht

X_SCREEN2WORLD

aufm pc klappts perfekt, aufm iphone nicht: siehe screenshot

auch verstehe ich nicht den 3ten parameter.  mouseX,mouseY,mouseZ?  , x,y,z
hatte angenommen dass es vlt der abstand ist, aber es sind nur werte zwischen 0 und 1 erlaubt (znear zfar?)
jedenfalls klappt es nicht aufm iphone damit bei mir

X_DRAWAXES

sieht man keine achsen aufm iphone (siehe screenshot)


http://cid.stw-bonn.de/ftp/dev/pc.jpg


http://cid.stw-bonn.de/ftp/dev/iphone.png


5
GLBasic - de / Netzwerk/Datentypen Frage
« on: 2010-Oct-15 »
Hallo,

habe jetzt erst seit einigen Tagen glbasic und bin bisher super zufrieden.
Vorher hab ich lange Zeit mit C# programmiert und bin auf glbasic wegen Iphone und Windows Mobile Support gekommen.

Bisher komm ich auch gut klar, jetzt hab ich allerdings eine Frage:

Ich habe in C# einen TCP/IP Server programmiert, die Übertragung erfolgt byte basiert und pro Nachricht schicke ich immer die Länge der Nachricht als Integer, mit einem Byte Array als Daten

int length;
byte[] data;

in diesem byte[] sind jetzt verschiedene Datentypen, wie unsigned int, long, short, byte ........

Das auslesen erfolgt dann so in C#

Code: GLBasic [Select]
       
protected override bool deserialize()
        {
            PlayerIndex = BinaryReader.ReadByte();
            Time = BinaryReader.ReadInt32();
            Actions = BinaryReader.ReadInt16();
            return true;
        }
 


Mein Problem ist jetzt, ich weiss nicht wie ich das hier einfach in glbasic umsetzen kann.
Ich hab in den Forenbeiträgen gelesen, dass man einen String mit SOCK_RECV bekommt, dieser aber zum Glück einfach nur ein byte array ist. Soweit so gut, damit komm ich klar.

Jetzt muss ich allerdings in glbasic die entsprechenden byte arrays auswerten und aufstückeln.

Für File auslesen gibt es ja was tolles:

READBYTE, READLONG .......

Aber eben nur für File Operation oder lieg ich da falsch?

Genauso muss ich auch meine Werte wieder in den Socket schreiben.

WRITEBYTE ......


Wie mach ich das jetzt hier am schlausten? Muss ich dafür Inline C Code verwenden?
Ich will vermeiden die Nachricht in eine temporäre Datei zu schreiben und diese dann mit den bequemen READ Funktionen auszulesen bzw zu beschreiben, das wäre doch ein bisschne unprofessionell und langsam :-)


Kann mir da wer helfen?

6
Tools / Bada
« on: 2010-Oct-15 »
Hi,

what about support for Samsung's new Mobilephone platform "BADA"
Although the platform is very new, SAMSUNG did a great job so far (having a great C++ API)

As its using C++ its maybe not too difficult to support it in glbasic?

I would really appreciate it :-)

http://de.wikipedia.org/wiki/Bada_%28Betriebssystem%29

Pages: [1]