[Monkey] Import umständlich - gibts umwege?
Übersicht Andere Programmiersprachen Beginners-Corner
PhillipKBetreff: Import umständlich - gibts umwege? |
Mi, Jun 05, 2013 12:15 Antworten mit Zitat |
|
---|---|---|
Huhu!
Bei meinen ersten versuch bin ich schon recht zufrieden mit Monkey. Leider finde ich das scopen total mistig Ich lagere viel und gerne aus. Bei Blitzmax wie auch C# ist das kein ding - einfach importen / includieren und man(n) braucht sich nicht um scopes kümmern. Wie aber sieht das in monkey aus? Ich habe mir erstmal eine mini-inputklasse gebaut, welche im moment noch recht monkey nah ist, allerdings um krams wie TouchDown()-Dauer erhöht werden kann. Diese liegt in "Input.monkey" und sieht wie folgt aus: BlitzMax: [AUSKLAPPEN] Strict Mal davon ab, das es mich stört, das ich "Import newfile" haben muss (meine hauptdatei) um dinge wie MouseDown() nutzen zu können, nervt es noch viel mehr, wie ich diese datei ansprechen kann: Hauptdatei: BlitzMax: [AUSKLAPPEN] [...] Das problem würde gelöst, wenn ich davon eine instanz anlegen würde. Dh einmalig zb "Field inputHandler:Input.TouchInput = new Input.TouchInput" machen. Aber wozu? Diese klasse war nie dafür gedacht, instanziert zu werden. Man kriegt ja nicht plötzlich mehr mäuse an den pc, weil man im programm mehr klassen anlegt *g* Ausserdem würden diverse instanzen sich gegenseitig stören, so wie multiple "MouseHit(0)" abfragen in blitzmax sich gegenseitig das event geklaut haben. Gibt es eine möglichkeit, wie in C# zb das ganze zu vereinfachen oder die klasse direkt in meinen hauptcode einzubinden, OHNE den sourcecode zusammenzufügen? Gruß, PhillipK |
||
Midimaster |
Do, Jun 06, 2013 0:02 Antworten mit Zitat |
|
---|---|---|
seltsam...
ich kann Klassen immer problemlos im Code ansprechen, auch wenn sie sich in einer anderen Datei befinden, die ich über Import dazulade... BlitzMax: [AUSKLAPPEN] ... Hast Du dir mal das MINIB3D Monkey Project angesehen? Dort kann man sehr schön sehen, wie man Monkey Projekte um viele Module mit vielen Klassen erweitert und diese Klassen immer von überall auch ansprechen kann. Ebenso wird gezeigt, wie eine eigene Funktion in solchen Klassen quasi zu einen "normalem" Monkey Befehl wird. |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
PhillipK |
Do, Jun 06, 2013 0:57 Antworten mit Zitat |
|
---|---|---|
Nun, da ich noch in der anfänglichen lernphase der Syntax bin (ist ja nicht 100% wie blitzmax), hatte ich nichtmal in erwähgung gezogen, mir minib3d zu nehmen
Generell hab ich noch nicht viel sourcecode konsumiert. Allerdings bin ich mir nicht sicher, ob es am "strict" liegt - anfangs hatte ich kein strict drinne und hatte da meine erste auslagerung getestet. ERgebnis: die klasse "camera" wurde nicht gefunden in der maindatei. Durch zufall bin ich drauf gekommen, das ich ImportName.ClassName nutzen muss, das es geht. Nun, deswegen frag ich hier Morgen früh werde ich mich wohl besser genauer damit beschäftigen; freundin muss früh raus und weckt mich, ich muss erst nachmittags los -> viel zeit Wie sieht des denn bei dir aus? Arbeitest du Strict / Nichtstrict (gibt es überhaupt superstrict?) Nutzt du auch "Import Name" - oder gibts da eventuell andere sachen, wie zb Stringnamen ala blitzmax? (Import "Input.monkey" odersowas)? |
||
Midimaster |
Do, Jun 06, 2013 8:38 Antworten mit Zitat |
|
---|---|---|
immer "srtict"
ich bin andere Code-Files einfach mit dem Namen ein: [/code]Import Gui[/syntax] Das File dazu heißt dann aber "Gui.monkey" |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
PhillipK |
Do, Jun 06, 2013 9:24 Antworten mit Zitat |
|
---|---|---|
Habs heute noch ein wenig ausprobiert.
Sprich, habe heute morgen einfach mal den Scope meines Input-class files weggelassen und direkt die klasse genutzt - das ging. Bei der nächsten klasse die ich erschaffen habe (für ein miniprojekt für den matheunterricht heute: Formelsammlung fürs android!) gab allerdings wieder den fehler. Es scheint da irgendeine regel zu geben, die ich noch nicht kenne.. Vielleicht hats mit dem builden zu tun (wenn projekt.build vorhanden vielleicht?) Auf jedenfall extrem blöd Oder, vielleicht liegt es daran, das ich meine monkey-dateien (wie damals in blitzmax auch) immer nach der klasse benenne. Bmx: Das type "TInput" liegt in der datei "TInput.bmx" Monkey: Die Class "Input" liegt in der datei "Input.monkey" Für mein touch-inputhandler habe ich gestern wegen irgendeinem fehler die datei umbenennen müssen; diese heißt momentan "TouchInputFile", wärend die klasse darin "TouchInput" heißt. Wie sieht das ganze bei dir aus? Wie ist dein aufbau? Mit etwas mehr grundwissen kann ich die problematik eventuell eingrenzen |
||
Midimaster |
Do, Jun 06, 2013 9:56 Antworten mit Zitat |
|
---|---|---|
sobald irgendwelche Errors auftreten bin ich auch meist schon mit meinem Latein am Ende. Hier hilft halt nur der rege Austausch mit den anderen Nutzern in einem Forum. Man muss ja nicht immer das Rad neu erfinden, wenn vielleicht schon irgend ein Anderer aus dem selben Problem heraus eine Lösung gefunden hatte.
Schade nur, dass man immer auf das englische Forum zurückgreifen muss. Die deutsche Monkey Community hat sich ja noch nicht eindeutig für eines der beiden deutschen Foren entschieden und schreibt nun lieber in englisch.... Ich bin ja weiterhin der Meinung Monkey gehört hier in die Blitz Community, da die sich ergebenden Fragestellungen auch oft schon durch Recherche in den alten Foren beantwortet werden können. z.B "MiniB3D for Monkey" setzt nathlos das alte Blitz3D fort. Viele Monkey Module gab es schon unter BlitzMax. Aber vielleicht reißen wir das Ruder ja noch rum durch fleißige Beiträge und Aktivitäten... Es wäre durchaus eine Chance für diese Site hier. Und zur Zeit werden es ja gefühlt wirklich mehr User die umsteigen... zum Thema Aufbau: Ich code so vor mich hin. Meine Monkey Projekte sind deutlich kleiner als Windows Projekte. Daher bleibt alles sehr übersichtlich. Was ich anders mache: - alles findet in Klassen statt. - so gut wie gar keine globalen Variablen mehr. - meine Hauptklasse "Game Extends App" hat gefühlt dafür jetzt zuviele "Fields" - oft sind "Speziallösungen" nötig, damit die Performance flüssig bleibt (z.b Texte) - die Bugs wegen den vielen Smartphones und Android-Versionen sind zeitraubend, aber lehrrreich. |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
Rone |
Do, Jun 06, 2013 10:03 Antworten mit Zitat |
|
---|---|---|
Dateinamen kleinschreiben, also
Class Input in input.monkey |
||
Übersicht Andere Programmiersprachen Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group