Ihr alten Schwarzmaler
Ich hab schon eine Unit geschrieben, die meinen Befehlssatz auf ca. 25 Befehle für den Nutzer nach außen hin sichtbar macht.
Leider kann man in PureBasic keine Öffentlichen und Privaten Prozeduren sowie Variablen definieren.
Meine Idee ist schon sehr ausgereift, ich habe mich damit schon etwas länger als nur einen Nachmittag beschäftigt.
Es gibt auch Ansätze, die das ganz schick hinbekommen:
- StageCastCreator
- Scratch (MIT)
- Alice.org
Stargate hat geschrieben:
alleine schon die Befehle (OpenWindow, OpenWindowedScreen, OpenScreen) sind (meiner Meinung nach) auf kleinen Icons (32*32) kaum unterscheidbar.
Da hast du zwei Denkansätze, die so nicht richtig sein müssen.
Erstens wie ZeHa richtig erkannt hat, müssen nicht alle Befehle ein Symbol bekommen.
Ich umgehe das zum Beispiel in dem es für alle 3 Befehle nur einen Befehl gibt und der nennt sich: StartProgram()
Zweitens, wer sagt, dass die kleinen Bildchen nur 32*32 groß sein dürfen?
Bei Dune 2077 sind ja auch Gebäude und bewegliche Einheiten nicht alle gleich groß.
Stargate hat geschrieben:
Aber genau das ist doch ein größer Fehler.
Leute die dnan anfangen mit Programmieren freuen sich erst, "Ui, ich kann ein Fenster machen, blabla blub...", stellen (Monate) später aber fest das sich beim "verfeinern" und individualisieren ihrend Werken keine Ahnung haben was sie im Code seber machen müssen.
Denn alles kann man einfach nicht mit Grafik ausdrücken, nicht um sonst würde damals die Schrift erfunden, sodass wir heute nicht mehr mit Bildchen uns verständigen.
@hardfalcon
das mit den TByte kann ja sein, aber ein UPLOAD von einem MByte dauert trotzdem noch seine Zeit.
Die Sprache ist nicht für dich gedacht, du kannst ja schon programmieren.
Meine EXE-Dateien werden ohne integrierte Metadaten mit JPEG-Unterstützung ca. 50 KByte groß, wenn man die als RAR oder ZIP macht, kommt man auf ca. 25 kByte.
Es geht nicht um Hardware nahe Programmierung, Performance ist auch erstmal zweitrangig.
Was das Lernen von Logik angeht, kann man das genauso mit Bildern wie mit Befehlen.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Jetzt kommt der Knaller, ich hatte mir lange überlegt, ob ich eine Zwischensprache einführe, die einfacher ist als PureBasic,
und egal wie bin ich immer auf zwei Möglichkeiten gestoßen.
Entweder ich nehme Bilder oder ich nehme einfach PureBasic-Befehle.
Bilder haben den großen Vorteil, dass sie in jeder Sprache gleich aussehen können und mehr oder weniger verstanden werden.
Siehe PhotoShop. Ein Pinsel ist zum Malen da und ein Farbeimer zum Füllen von Flächen.
Das wären schon zwei mögliche Symbole für 2D-Drawing-Befehle.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Meine Idee war auch, dass der Nutzer immer die Möglichkeit hat, zwischen dem Code und den Bildchen hin und her zu schalten, bzw. so wie es bei ZLango ist, dass das Wort in eigener Sprache darunter steht.
Das würde aber wieder eine Übersetzungsbibliothek voraussetzen.
Der Vorteil davon, dass der Nutzer den Code sehen kann ist, dass er immer die Befehle mit den Bildchen verbindet und so auch begreift, was hinter den Bildchen steht.
Hier mal ein Beispielcode, allerdings haben erste Alphatests schwerwiegende Grafikstörungen angezeigt.
Code: Alles auswählen
; Folker Linstedt
; 2008-07-07, 2008-07-10
; Tutorial FL2D, DGS-Lite, KidsWin
; Ermöglicht die Benutzung der DGS-Befehle
XIncludeFile "FLDGS.pbi" ; Unit für JAVA, JAVAScript, C# individuell
DisableExplicit
; Diese Zeile startet dein Programm
StartMyProgram_FL2D(0)
Procedure AddObjects_FL2D()
; Am Anfang eines Programms, werden Objekte hinzugefügt
For i=0 To 10
AddOBJ_FL2D(Str(i),"",Random(600)-300,Random(400)-200,Random(30)+10,Random(30)+10,Random(16700000))
Next
; Fügt einen Stift hinzu, Verzeichnis und Dateiendung werden benötigt
AddOBJ_FL2D("Stift","C:\F\PureBasic\2008-07\FLDGS\Stift.ico")
; Fügt eine Tastatur hinzu, Verzeichnis und Dateiendung werden wie oben benutzt
AddOBJ_FL2D("Key","Keyboard")
; Fügt eine Computer-Maus hinzu
AddOBJ_FL2D("Maus","Mouse")
; Fügt noch eine Computer-Maus hinzu, diese heiß´t aber nur "M"
AddOBJ_FL2D("M","Mouse")
; Bewegt die Tastatur etwas zur Seite und nach unten
MoveOBJ_FL2D("Key",40,10)
; bestimmt das Aussehen des Mauszeigers.
; Dieser besteht aus einem Stift und der Maus "M"
;MouseCursor_FL2D("Stift") ; entspricht
Attach_FL2D("Stift","#MOUSE")
Attach_FL2D("M","Stift")
MoveOBJ_FL2D("M",20,30)
AddOBJ_FL2D("Fenster","",-200,-100,150,150)
; Stift wird zum Schluss gezeichnet und ist damit immer sichtbar
Highest_FL2D("Stift")
MoveOBJ_FL2D("Stift",16,16)
; Verändert den Hardflag
EndProcedure
Procedure Events_FL2D()
; Hier werden die Bedingungen definiert
; Verändert die Position des Mauszeigers, der wie ein Stift aussieht
; und setzt ihn an die Position der Maus
DragDrop_FL2D("Maus Key Fenster")
; "Fenster" ist fliederfarbend und unter dem Stift, aber über der Maus angeordnet
For i=0 To 10
; DragDropOBJ_FL2D(Str(i))
DragDrop_FL2D(Str(i))
Next
EndProcedure
Hier die EXE:
http://www.folker-linstedt.de/pureforum/FLDGS.zip
Mit dem Befehl
Würde das Programm im Vollbildmodus starten.
Zoomfunktionen und Bildschirmauflösungsveränderung sind zurzeit nur bedingt integriert.
Bei 800 x 600 hat man aber etwas Platz, um sich ausleben zu können.
Wenn man das später vor hat, kann man Optional dann noch angeben, wie hoch und breit die Ausgabe sein soll.
Der Vorteil von PureBasic als Sprache ist hier, dass ich alle PureBasic-Befehle ebenfalls nutzen kann.
Stargate hat geschrieben:Programmieren sollte weiter hin Text bleibung und nicht durch eine überflutung von Bilder gestört werden.
Außerdem kommt bei gleichartigen Befehlen irgendwann zu unerkennbaren Bildern bzw zu verwechselungen oder fehdeutungen.
Nachsatz an Stargate, ohne dass du es als persönlichen Angriff interpretierst, aber bei deinem ersten Posting, hätte ich an deiner Stelle lieber Bilder gemalt als Schrift zu benutzen

bleibung
verwechselungen
fehdeutungen
Ist nicht böse gemeint. Aber damit zeigst du selbst, welchen Vorteil Bildchen hätten
