BlitzMax - Vorschläge & Co
Übersicht

Gehe zu Seite Zurück 1, 2, 3, 4, 5 Weiter
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schön... Ein "Wünsch dir was"-Thread... ![]() Ich würde es auch begrüßen, wenn Max2D einfacher erweiterbar wäre. Nach vielem Suchen habe ich aber endlich mal herausgefunden, wo man das TMax2DGraphics-Objekt herbekommt. (Eine DrawImage-Erweiterung sollte sich immerhin noch an die Max2D-Settings halten.) Zur Funktionsüberladung: Ich finde Funktionsüberladung nicht schlecht, aber sie sollte, wenn sie überhaupt in BlitzMax eingeführt wird, optional sein. Es könnte nämlich dabei Probleme bei der Erkennung der Funktion anhand der Parameter geben, da BlitzMax es nicht so genau mit den Typen der Parameter nimmt. Richtig neue Ideen fallen mir nicht so spontan ein... mfG mpmxyz P.S.: Warum gibt es eigentlich bei brl.FileSystem nur Integer-Handles? ("ReadDir()") Hat Mark dort geschlafen? Edit: Aufzählungstypen wären etwas interessantes. Edit2: Ich mag diese "Geheimniskrämerei" nicht... Ich könnte die Funktionen "BindTex" und "EnableTex" aus GlMax2D sehr sehr gut gebrauchen... Es wäre nicht schlecht, wenn man auch aus anderen Dateien auf Private-Funktionen/Variablen zugreifen könnte, wenn man ihren Herkunftsort explizit angibt. ("brl.GlMax2D.BindTex(name)") |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
Hummelpups |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein Boolean Datentyp würde mir auch gefallen.
das in Bytes auch 1 Stellinge strings gespeichert werden können, brauche ich eigentlich nicht, finde es aber durchaus nützlich. SOnst, joa, Operatorüberladung, Methoden- und Funktionsüberladung wär auch chic. Jolinah schrieb, das sich per Reflection keine mehrdimensionalen Arrays auslesen lassen, verschachtelte Arrays aber schon. Soll das so sein oder eine der Baustellen??? Micha |
||
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus |
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Korrekte private/protected/public-Implementierung für einzelne Klassen-Member finde ich auch noch wichtig. | ||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Achja, und einen in-Operator, wie in Pascal oder Python, habe ich mir schon immer gewünscht ![]() BlitzMax: [AUSKLAPPEN] Local x:Byte="+" 'wäre zur Zeit nicht möglich Achja: Hummelpups hat Folgendes geschrieben: Ein Boolean Datentyp würde mir auch gefallen.
Ein Boolean Datentyp ist eigentlich nur eine Verschönerung einer Sprache. Boolean ist ja entweder 1/True oder 0/False, damit hat Boolean den Wertebereich eines Bits. Jedoch ist die kleinste Einheit die im Arbeitsspeicher reserviert werden kann 1 Byte( 8 Bit ). Somit wäre ein Boolean Datentyp genauso groß wie der Byte Datentyp(8 Bit), hätte aber nur 2 mögliche Werte( anstatt von 256 ). mfg Thunder |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
furbolg |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Objekte/Listen mit Zeigern anstatt einer Referenz
oder Ein Delete das eine Referenz (inkl aller Verzweigungen) löschen kann. Beispiel: Code: [AUSKLAPPEN] Type TANK
field hp:int field x:int field y:int ... end type type Bullet field x:int field y:int field target:TANK ... end type Wenn momentan ein Tank zerstört wird (=NULL) dann muss man in der Bullet Update immer nochmal prüfen ob TANK.HP <= 0. Dafür wären Zeiger / Delete ziemlich nett. |
||
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
@furbolg
Zu dem Beispiel: Viel Aufwand ist es nicht, sich dafür eine Funktion "TObjekt.Check(Objekt:TObjekt Var)" zu schreiben. Zur Idee: Da die Programme sonst langsamer werden, sollte so etwas nicht zum Standard werden. Aber ungezählte Referenzen wären ganz praktisch, da man damit keine Probleme mit zyklischen Referenzen bekommt. Eine gute Alternative dazu wäre auch ein anderer Garbage Collector, der z.B. den Mark and Sweep-Algorithmus nutzt. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
furbolg |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mpmxyz hat Folgendes geschrieben: @furbolg
Zu dem Beispiel: Viel Aufwand ist es nicht, sich dafür eine Funktion "TObjekt.Check(Objekt:TObjekt Var)" zu schreiben. Sobald du so eine Funktion baust hast du im Endeffekt +/- 0 da die Referenz durch den Aufruf um 1 erhöht wird, dann durch Objekt = null, wieder um 1 reduziert wird aber immer noch die anderen 2 Zähler da stehen. Um mein Problem/Wunsch nochmal zu verdeutlichen: BlitzBasic: [AUSKLAPPEN] Type TANK mpmxyz hat Folgendes geschrieben: Zur Idee: Da die Programme sonst langsamer werden, sollte so etwas nicht zum Standard werden. Aber ungezählte Referenzen wären ganz praktisch, da man damit keine Probleme mit zyklischen Referenzen bekommt. Eine gute Alternative dazu wäre auch ein anderer Garbage Collector, der z.B. den Mark and Sweep-Algorithmus nutzt. mfG mpmxyz Es muss nicht zum Standard werden, kann ruhig optinal mit einem speziellen Delete Befehl umgesetzt werden. Aber warum sollten die Programme mit Zeigern langsamer werden ? |
||
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die OOP-Variante wäre, dass sich der Panzer beim 'explodieren' per Event/Message-System aus allen Kugeln austrägt.
Dass die Kugel direkt checkt, ob der Panzer vernichtet ist, ist eher unschön, da man in OO Programmen stets auf Datenkapselung achten sollte. Es gibt aber wesentlich mehr und auch um einiges schönere Varianten als Delete, das zu umgehen. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
furbolg |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Klar könnte man machen. Dann muss man nur überlegen ob sich das lohnt (hunderte von einheiten, tausende von geschossen und dann pro frame messages verarbeiten). Ich empfinde Referenzen/Zeiger eher als elementaren Grundtyp wie Int, Float, String etc. deswegen wäre eine native Implementierung der Zeiger (optional, standard kann ja weiterhin Referenz bleiben - bei Zeigern würde man dann halt field PTR type oder ähnlich schreiben) ziemlich nett.
War ja auch nur ein Vorschlag ![]() |
||
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du weisst schon, dass es in BMax Zeiger gibt? Folgendes Beispiel BlitzMax: [AUSKLAPPEN] Type Foo Mal davon abgesehen kannst du dein Beispiel oben auch mit Zeigern nicht lösen. Wenn du den Panzer per Delete löschst, zeigt der Zeiger ins nirgendwo und du hast keine Möglichkeit zu erkennen, ob der Panzer noch existiert oder nicht. |
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
furbolg |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja nur sind diese Zeiger unschön und anfällig. Was passiert wenn du aus
BlitzBasic: [AUSKLAPPEN] = Float Ptr(...) machst, bezüglich Typen sicherheit. Ich wünsche mir halt Zeiger nach dem Motto: BlitzBasic: [AUSKLAPPEN] Local zeigerpanzer:ptr tankso dass auch nur Panzer darauf zeigen können und nichts anderes, was bei deinem Code möglich wäre (würde einem void* entsprechen). Zitat: Mal davon abgesehen kannst du dein Beispiel oben auch mit Zeigern nicht lösen. Wenn du den Panzer per Delete löschst, zeigt der Zeiger ins nirgendwo und du hast keine Möglichkeit zu erkennen, ob der Panzer noch existiert oder nicht.
Doch wenn du einen Zeiger per Delete löscht wird er intern auf NULL gesetzt (wie eine Referenz, nur wird der Inhalt auf den der Zeiger zeigt auch gelöscht, was bei der Referenz erst geschieht wenn der Counter auf 0 ist) und dann kannst du halt sagen z.B.: BlitzBasic: [AUSKLAPPEN] If Listenelement.zeigertyp = Null Then Aber wie gesagt ist halt nur ein wunsch, müsst euch nicht daran aufhängen ![]() ![]() |
||
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() ![]() Momentan bastel ich nämlich mehr am BMK als an anderen Dingen. Das kann einem auf Dauer echt den letzten Nerv rauben. |
||
![]() |
coolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
-> Ich hätte gerne in MaxLua zugriff auf die Lua State, sodass man mehr Freiheiten hat.
->Negativer Zugriff auf Arrays, das heißt MeinArray[-2]=3 ist dann der vorletze Index vom Array. kA ob es sich lohnt zu implementieren, in GLBasic finde ich das sehr praktisch. -> Reflection für normale Funktionen (sollte auch im Release Modus laufen). Sowas wäre einfach nur genial, vorallem in Hinsicht auf Scriptsprachen! -> Max2D aufmotzen, heißt integrierter Stencil Buffer, FBO, DrawPoly mit mehr Optionen. -> Konstruktor mit Parameter: Eines der wichtigsten Dinge wie ich finde, da das das Leben unglaublich erleichtert. Cool wäre auch noch Methodenüberladen, das ist allerdings nur ein netter Nebeneffekt ![]() Außerdem wäre Mehfachvererbung möglich, wobei sich da die Gemüter trennen, und bestimmt viel Arbeit ist das zu implementieren. |
||
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project! "Eigenzitate sind nur was für Deppen" -Eigenzitat |
![]() |
Diedel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vorerst wäre ich mit Multitouchunterstützung für Windows 7 schon ganz zufrieden, zumindest konnte ich selbst keine machbare Lösung finden das zu implementieren ohne das ganze BlitzMax von Grund auf auseinander zu nehmen.
Ansonsten bin ich mit BM eig schon ganz zufrieden. Bzw. zum Thema Bool, Byte und Co., ich erinnere mich daran gelesen zu haben, dass BlitzMax intern keine vorteilhafte Unterscheidung zwischen Integers und eben Booleans und Bytes macht. Möglicherweise könnte man das ja ändern falls das wirklich noch der Fall sein sollte. lg |
||
Owned. |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei Operator-/Funktionsüberladung war immer das Problem, dass die Blitz-Dialekte automatisch herumkonvertieren... Ein Feature auf das ich auch verzichten könnte, wenn dafür Überladungen möglich wären. Wenigstens im SuperStrict Modus - bei dem man vom Namen her erwarten könnte, das man korrekt casten muss.
![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich frage mich ja, wieso hier so viele Leute Wünsche anbringen, die eigentlich eher Modul-Wünsche sind, die man deshalb genauso gut auch selber machen kann (auch für das Team von BRL bedeutet ein Modul zu schreiben Arbeit) ![]() Was man aber nicht mit Modulen hinbasteln kann, weil es an der Sprache selber liegt, sind anständige Konstruktoren, die es in BMax einfach zu geben hat. (Man beachte den grossen Punkt) Wenn etwas in BMax fehlt, dann das. mfG |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
coolo hat Folgendes geschrieben: -> Ich hätte gerne in MaxLua zugriff auf die Lua State, sodass man mehr Freiheiten hat.
Das ist mit dem Verschieben der Funktion LuaState() vom Private- in den Public-Brereich des Sources (in brl.maxlua) erledigt, coolo. Ein klitzekleiner Hack und du kannst nach rebuild damit spielen soviel Du willst. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
coolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mhmm so könnte ich das auch machen, allerdings verstehe ich nicht warum das nicht Standard ist? Schaden kanns ja nicht wenn man ne Funktion "getLuaState()" oder so schreibt?
Naja ich hätte auch noch gerne eine Shader Unterstützung für Max2D. |
||
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project! "Eigenzitate sind nur was für Deppen" -Eigenzitat |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
coolo hat Folgendes geschrieben: Naja ich hätte auch noch gerne eine Shader Unterstützung für Max2D.
Must du nurnoch verraten, wie du dir das vorstellst, dass der selbe Shader mit OpenGL, D3D9 und vorallem D3D7(welches über keinerlei Shader-Fähigkeiten verfügt) laufen soll. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
BtbN hat Folgendes geschrieben: coolo hat Folgendes geschrieben:
Naja ich hätte auch noch gerne eine Shader Unterstützung für Max2D.
Must du nurnoch verraten, wie du dir das vorstellst, dass der selbe Shader mit OpenGL, D3D9 und vorallem D3D7(welches über keinerlei Shader-Fähigkeiten verfügt) laufen soll. ![]() Wenn man D3D7 raus nimmt wäre die Antwort cg bzw. es gibt ein opensource projekt, das sich bis auf SM3 stufe von HLSL auf GLSL (oder umgekehrt) umwandeln kann. Jedoch widerspricht es selbst dann den Zielen von Max2D die mit OpenGL 1.2 auf breiten Support zielen. Sieht man ja schon am Mangel von Render Texturen, obwohl Framebuffer jetzt dann doch schon ne sehr lange Zeit Standard sind. Dumm das man den aus Blitz3D bekannten Normalmap Blendmode nicht gescheit umsetzen kann denn die Vertexfarben sind tabu für die speicherung der Daten und Cubemaps in einer 2D engine die nicht mal support für vertex lichter hat ... ja ne schon klar ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Gehe zu Seite Zurück 1, 2, 3, 4, 5 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group