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

Messages - Markus

#16
@Schranz0r
Google bietet nicht um sonst alles mögliche wie Web Office , G+ , Bilderupload ,
Eigene Webseiten , mit Youtube verbunden ...
Geht mir ehrlich gesagt auch ein bischen zu weit.
Ich nutze zwar auch ein paar Sachen, halte mich aber eher fern von.
Und zum Glück ist das Web Toolkit noch behindert das die Webentwickler
lieber was anderes nehmen.




#17
Benachrichtigung kann man ja unten ausschalten  :-[
:offtopic:

@Schranz0r
Du mußt aber dran denken das was Du erweiterst als deine eigene Funk.
müssen 1000sende andere auch unnötig machen oder denen fehlt
das dann wenn sie es brauchen.
Da finde ich ein zuverlässiges rundum glücklich Paket besser.
BB2 auf dem Amiga war der gleiche Author wie auf dem PC.
Vor diesem Mark Sibly habe ich hohe Achtung weil das wirklich ein großes Talent ist.
Aber das der BB3D einfach so liegen ließ und für BlitzMax kein 3D Modul fertig macht
und sich jetzt mit Monkey beschäftigt finde ich wiederum doof.

Das mit dem Semikolon ist untypisch für eine Basic Sprache.
Kann schon sein das ich das irgendwo in der Hilfe übersehen habe.
Reagiert aber wirklich wie ein Zeilenumbruch.
Ich kenne nur sowas
IF 1=1 THEN a=1 : b=2 : c=3
die hätten dann alle einen Wert bekommen bei 1=1
BlitzMax hat z.B. auf dem : ein ; gemacht als Trennung.
Doppelpunkt oder Komma nimmt GL Basic nicht als Trennung.
Son Einzeiler ist doch normal seit dem C64.
Das ist original BB3D Syntax
If anz0=1 Then xan=7 : yan=80+64
If anz0=5 Then anz0=1 : MouseWait
Wenn ich in der Hilfe nach "Semikolon" suche kommt da kein Ergebnis.

Wegen dem Ein Mann Projekt, ich denke Gernot macht alles,
er hat mein Respekt :-)
#18
@Alle
Danke

Und falls das jemand interessiert  :booze:
Code (glbasic) Select


TYPE TPlayer
Nr
Name$
x
y
Money

FUNCTION Draw:
SETPIXEL self.x,self.y,RGB(255,255,255)
ENDFUNCTION

FUNCTION Position: x,y
self.x=x
self.y=y
ENDFUNCTION

FUNCTION Update:

//<- 203 Cursors
//-> 205
//^  200
//V  208
//o   28 RETURN

LOCAL Name$=self.Name$ //for debug

IF KEY(205) // Taste nach rechts
IF self.x<800 THEN self.x=self.x+1
ENDIF

ENDFUNCTION

ENDTYPE

GLOBAL Players[] AS TPlayer

ALLOWESCAPE TRUE

MainLoop()
END

FUNCTION MainLoop:

LOCAL A AS TPlayer
A.Nr=1
A.Name$="Markus"
A.Position(100,300)

LOCAL B AS TPlayer
B.Nr=2
B.Name$="Computer"
B.Position(800-100,300)

DIMPUSH Players[],A
DIMPUSH Players[],B

REPEAT

FOREACH P IN Players[]
P.Draw()
NEXT

LOCAL i%
i=FindPlayer(1,Players[])
ALIAS P AS Players[i] //so vereinfacht die Schreibweise enorm und man arbeitet mit dem Original
P.Update() // Fragt nur die Rechts Taste ab

SHOWSCREEN

UNTIL FALSE

ENDFUNCTION

FUNCTION FindPlayer: Nr,List[] AS TPlayer //damit innen keine Globalen Variablen benutzt werden die Liste als Byref
LOCAL i%
FOR i = 0 TO BOUNDS(List[],0)-1
IF List[i].Nr=Nr
RETURN i
BREAK
ENDIF
NEXT
RETURN 0
ENDFUNCTION
#19
@Kitty Hello  :enc:
danke, spiele ich mal mit rum  ;)

Wenn wie in der Hilfe dieses Each
Quote
FOREACH ref IN feld[]
...
NEXT

echt wie sowas ist
Quote
FOR i = 0 to BOUNDS(feld[],0)-1
   ref = feld
   ...
   feld = ref
NEXT
dann wäre nach Adam Riese ref schon eine Kopie.

Jede Sprache macht es anders , das Beispiel in der Hilfe war nützlich.

(mit "Objekten" die immer Byref übergeben werden kenne ich von MS,fände es aber logischer wenn es davor stehen würde weil die anderen wohl byval sind oder.)

:x
#20
 :offtopic:
@Worebu
Das uralt GFA hatte ich auch mal und dann die 32 Bit Version die Visual Basic geklont hat zu 90%
Habe heute noch ein paar meiner GFA Basic 32 Programme am laufen die ich vor 10 Jahren gemacht habe.
Nur eine OCX und dann liefen die. Sehr erstaunlich.
GFA Basic 32 ist jetzt sogar kostenlos erhältlich,findet man über Wiki.


#21
@Schranz0r
ich schreib nur auf was mir auffällt im Vergleich zu anderen Sprachen.
Später macht man sich keine Gedanken mehr dazu.

Das erste was ich ändern wollte war der nicht funktionierende 3D Export in AC3D.
Das man die Normalen nicht setzten konnte war ein Mangel.
Von der Druckvorschau kommt nur 1/4 raus wegen 600 DPI.
HIBERNATE mußte woanders hin wie in der Hilfe.
Syntax Erleichterung machen andere Sprachen vor.
Break ging nicht in einer Zeile hinter Then wenn man ; benutzt
Der Debugger zeigt keine Types an^^
Irgendwelche Sprücher vom Debugger mit Variable existiert schon.
Kleine Mißverständnisse weil andere Sprachen was anders machen wie GLBasic.
Kein DebugStop oder Meldung im Debug Modus wenn LoadFont etc. fehlt schlägt.
Liste in Liste geht nicht wie bei anderen Sprachen.
Der Filerequest geht nicht bei mir wegen API Fehler sagt Gernot.
Meinen Schieberegler läßt sich nicht auslesen mit den Joy Befehlen.
Android Pakete lassen sich nicht auf meinem Netbook installieren obwohl die Version paßt. Im Emu laufen die.
Die Anleitung sollte verschöndert werden für andere.
Zu den Werkzeuge habe ich mich mit den Makros abgefunden.
Blender Export in Version 2.6 will nicht mehr.
Lesezeichen speichern hatten andere auch schon geschrieben.

Aber am meisten hab ich genervt mit den Arrays und Listen geb ich zu :-)
Da sind andere Sprachen viel fluffiger und GLBasic ungewohnt aber mit
dem richtigen Kniff komme ich mit klar hoffentlich.

Und Außerdem hab ich Gernot ein Hollywood Schriftzug gemacht  :-*




#22
@Quentin
ich wollte auch nicht nach der Schleife das P noch benutzen.
Das sieht jetzt nur in dem Beispiel so aus weil ich Experimente mache.
In der Funktion das P nach Außen geben .
Ich habe aber Explizite Deklaration an,warum nacht dann das ForEach
selber was ? Aber ich sehe grad dank dir wie das ForEach gemacht ist.
Da wird tatsächlich am Anfang und Ende alles kopiert, das muß ich ja dann
wohl auch so machen :-)

@Schranz0r
ihr habt mich grad auf die Idee gebracht das Array als Byref zu übergeben :-)

@Kitty Hello
hab dank Quentin ein Beispiel gefunden was das ForEach eigentlich macht.

#23
@Kitty Hello
Ich will doch direkt im Array arbeiten und hier mit dem Beispiel geht es ja auch.
Dieses P ist doch ein Block der im Speicher (Array) steht, den möchte ich auch bearbeiten.
Ich bekomme aber das P nicht aus einer Funktion zurück ohne das es als Kopie angelegt wird.
Wie ich das verstehe ist das P in dem Beispiel unten ein Pointer auf einen Speicherbereich wo die Struktur in echt ist oder ?
Wenn ich bei Update() mit self.xy=x einen Wert zuweise ist das wieder im Array darum gehe ich davon aus das P ein Ausschnitt vom Array ist.
LOCAL P AS TPlayer
FOREACH P IN Players[]
   P.Draw()
   IF P.Nr=1 THEN P.Update() //das geht
NEXT
#24
@Kitty Hello
geht auch ist aber nicht so schön anzuwenden weil man da extra zwei Variablen haben muß und den richtigen index an der Stelle. Man muß mehr schreiben und
das macht den Quelltext unübersichtlicher.
Wenn man als Beispiel 100x mal das testen würde geht man dazu über das
in eine Funktion zu packen um copy/paste zu vermeiden.

LOADFONT hat gar keinen Rückgabewert, der ist quasi noch frei.
Unnötige Klammern möchte ich aber auch vermeiden wenn jemand
der Wert nicht interessiert.

Wenn LoadFont einen freien FontIndex zurück geben würde wäre auch schön.
Hätte man dann 0= geht nicht >0 freier Index.
Index als Parameter könnte dann Optional sein.
GLBasic hat eher das Konzept wie Darkbasic das man sich selber Nummern
ausdenken muß.

Du sollst auch nur das machen was Du selber für gut & sinnvoll hältst.
Ich werfe einfach nur die Ideen im Raum .
#25
Das hat dann den Nachteil das Du nebenbei keine Taste abfragen kannst,
aber mach einfach erstmal das was Du brauchst. Umbauen kann man immer.
So könnte auch nützlich sein,
Du willst später bestimmt auch ein bischen Bewegung drin haben.
If ichsolljetztwarten Then MOUSEWAIT
#26
byref bei einem Parameter mit Struktur gibt mir ein Syntax Error.
ich gehe aber davon aus das der Parameter eh schon als Pointer übergeben wird weil das nur ein paar Bytes sind und so üblich ist.
Oben mein Beispiel ging aber nicht wie ich das erwartet hatte.

Bei A=B habt ihr mir erklärt das dort die Struktur B nach A kopiert wird,ich will aber B haben original :-)

@Quentin
ich möchte keine kopie als Rückgabe

@Kitty Hello
ich will quasi Pointer tauschen bzw. weiter geben und Variable A durch B ersetzen vom gleichem Typ.
Das was im Array ist möchte ich mit einer Funktion raus suchen ohne eine kopie zu erstellen, dann mit .MachIrgendwas() ändern.
Ansonsten muß ich bei einer Kopie das ja auch wieder zurück kopieren in mein Array.
Und wenn man mit kopien arbeitet dann haben andere Funktionen wieder nicht das aktuelle.
Kopien kosten zu dem unnötig Zeit.

Was zum experimentieren:
Code (glbasic) Select


TYPE TPlayer
Nr
Name$
x
y
Money

FUNCTION Draw:
SETPIXEL self.x,self.y,RGB(255,255,255)
ENDFUNCTION

FUNCTION Position: x,y
self.x=x
self.y=y
ENDFUNCTION

FUNCTION Update:

//<- 203 Cursors
//-> 205
//^  200
//V  208
//o   28 RETURN

LOCAL Name$=self.Name$ //for debug

IF KEY(205)
IF self.x<800 THEN self.x=self.x+1
ENDIF

ENDFUNCTION

ENDTYPE

GLOBAL Players[] AS TPlayer

ALLOWESCAPE TRUE

MainLoop()
END

FUNCTION MainLoop:

LOCAL A AS TPlayer
A.Nr=1
A.Name$="Markus"
A.Position(100,300)

LOCAL B AS TPlayer
B.Nr=2
B.Name$="Computer"
B.Position(800-100,300)

DIMPUSH Players[],A
DIMPUSH Players[],B

REPEAT

LOCAL P AS TPlayer
FOREACH P IN Players[]
P.Draw()
//IF P.Nr=1 THEN P.Update() //das geht
NEXT
FindPlayer(1,P)
P.Update() //das nicht weil das wohl eine Kopie der Struktur ist
//ReplacePlayer(1,P) //Workaround

SHOWSCREEN

UNTIL FALSE

ENDFUNCTION

// P als BYREF gibt Syntax Error
FUNCTION FindPlayer: Nr, P AS TPlayer
    FOREACH P IN Players[]
        IF P.Nr=Nr
        BREAK
        ENDIF
    NEXT
ENDFUNCTION

#27
@kanonet
jo

@D2O
das die Datei nicht da ist,wäre ein Grund von vielen.
So in der Art ist schon nicht schlecht nur das sowas in eine Meldungsliste muß
damit man sich nicht tot klickt wenn mal ein Netzlaufwerk weg ist oder so.
Ein Programm muß sich nich unbedingt beenden , das muß man außen selber entscheiden was man macht. Hatte aber schon was dazu geschrieben
warum ich nicht für jede Funktion wieder eine eigene Funk. schreiben möchte.
#28
@Astute Kitsune
Gegen eine Programiersprache hätte ich ja auch nix aber dieses
durcheinander gewürfel von allen da bekomme ich ein Brechreitz.
Von mir aus kann HTML/PHP weiter existieren, das kann man eh nicht
von heut auf Morgen abschalten, haste ja selber schon gesagt.

JavaSkript & Flashplayer zwingen mich auch, ohne die geht nix mehr mit Web^^

Java wäre als Webstart gut , haben aber alle Angst vor^^

MS versucht sich am Webstart mit .Net hat es aber total verbockt^^

Mir geht es auch hauptsächlich darum das wenn die Software beim Entwickler läuft
dies ebenso beim Kunden läuft und nicht komplett was anders macht.

#29
So ungefähr?

Bilder laden
Funk Neue Runde aufrufen
Funk Neue Karten aufrufen
--------------------------------------------------
Hauptschleife

               Karten malen

               Eingaben abfragen
      IF KEY(28) //Return Taste
         //Neue Karten aufrufen
      ENDIF

               Taste ESC dann Ende

--------------------------------------------------
Funk Neue Runde
--------------------------------------------------
Funk Neue Karten
--------------------------------------------------
#30
@kanonet
natürlich Rückwärtskompatibel.
VB6 z.B. verlangt nur Klammern wenn man auch einen Wert zuweisen möchte was auch so Sinn macht.
Dann nimm ich ein anderes Beispiel, die Datei existiert darf aber wegen Rechten nicht gelesen werden und darum gehts nicht.
Jedesmal viele Funk. drum rumbasten nur weil man eine braucht ist sehr störend.
VB6 bzw. MS^^ war so das man für fast jede Funktion eine eigene machen mußte damit das Programm nicht abkackt.