Programm während der Ausführung ändern
Übersicht BlitzBasic Allgemein
JamesBrownBetreff: Programm während der Ausführung ändern |
Fr, März 09, 2007 11:13 Antworten mit Zitat |
|
---|---|---|
Hallo,
Vielleicht hat sich das schon mal jemand von euch überlegt wie das gehen soll, aber ich bin halt kein BB Profi: Folgendes soll das Programm können: Während dem Laufenden Prozess soll das Programm angehalten werden und man soll den Code ändern können und wieder neu laden, am besten an der Stelle wo man unterbrochen hat. Beispiel: Man hat eine Variable gesetzt und sich dabei verschätzt oder vertippt. Um diesen Fehler zu beheben müsste man nur das Programm kurz anhalten, die Variable nach seinen Wünschen ändern und wieder dort einsetzten wo man dran war. Ist günstig wenn man seine Spiele auf mögliche Fehler testen möchte. Ich bitte um Ausführliche Ratschläge oder vielleicht Tipps für den zu brauchenden Code. Vielen Dank für eure Hilfe! |
||
coldie |
Fr, März 09, 2007 12:04 Antworten mit Zitat |
|
---|---|---|
Bin mir jetzt auch nicht ganz sicher, aber ich meine, dass es nicht so einfach möglich ist auf SÄMTLICHE Variablen in der Art und Weise zugreifen zu können.
Zunächst mal müsstest du halt eine Schleife einbauen, in der man die Variablen dann verändern kann (was eigentlich kein Problem sein sollte). Während des Ausführens dieser Schleife wird das Spiel sowieso automatisch unterbrochen. Nur wie willst du gezielt auf einzelne Variablen zugreifen? Du kannst entweder nur jede einzelne Variable "hardgecodet" in eine Art Auswahlliste eintragen, oder es mit Types/Arrays versuchen (wobei Types wohl ziemlich langsam wären, und Arrays ziemlich unübersichtlich). Mit der Auswahlliste würde ich es mir in etwa so vorstellen: Code: [AUSKLAPPEN] select VariableNr case 1 If Keyhit(XY) then Variable1 = Variable1+1 If Keyhit(XZ) then Variable1 = Variable1-1 case 2 If Keyhit(XY) then Variable2 = Variable2+1 If Keyhit(XZ) then Variable2 = Variable2-1 [...] case 754 If Keyhit(XY) then Variable754 = Variable754+1 If Keyhit(XZ) then Variable754 = Variable754-1 end select Wobei Variable1(/2/754) jeweils für irgendwelche Variablen stehen, die du allesamt per Hand in diese Select case "Liste" eintragen müsstest. Naja eine Heidenarbeit, aber meistens will man ja auch nur bestimmte Variablen verändern, man müsste daher auch nicht alle eintragen. |
||
garret |
Fr, März 09, 2007 17:35 Antworten mit Zitat |
|
---|---|---|
Eine Möglichkeit wäre auch eine Art eigene, interne Scriptsprache. Über eine Eingabemöglichkeit kannst du die Variablen dann unter Verwendung von eigens erschafften Schlüsselwörtern ändern.
Also nehmen wir an, du hast die Variablen A und B. Wenn du nun in deiner Eingabe den "künstlichen" Befehl Set(Variable, Wert) hast, kannst du während der Laufzeit und mittels String-Operationen die Variablen ändern. Zum Beispiel: Eingabe: Set(A,20) Im Quelltext suchst du dann mit Instr() nach der geöffneten Klammer "(" und liest dann bis zum Komma aus (Mid()), um die entsprechende Variable zu ermitteln. Vom Komma dann bis zur geschlossen Klammer ")" lesen, um den Wert zu erhalten. Das Ausgelesene in den Datentyp umwandeln und fertig ist's. Anschließend machst du eine If-Abfrage oder wohl besser Select-Case, um der Variable den Wert zuzuweisen. If Befehl$ = "Set" Select Variable$ Case A$ A1=A1+Wert Case B$ B1$=Wert$ End Select EndIf MfG garret |
||
>>nec aspera terrent<< (Auch Widerwärtigkeiten schrecken nicht) |
JamesBrown |
Sa, März 10, 2007 12:20 Antworten mit Zitat |
|
---|---|---|
Hallo,
vielen Dank schonmal für eure Antworten. Ich hatte mir das eigentlich gesagt eher anders vorgestellt. Also ich hatte mir vorgestellt den Quellcode vor jedem Spielbeginn in eine txt abzuspeichern und diese dann nach belieben im Programm als Programmfenster öffnen zu können. Dann sollte es Möglich sein die änderungen direkt zu übertragen. Und mit dem "neuen" Quellcode weiterarbeiten zu können. Ich weiß eben nicht ob eine Programmiersprache das ohne weiteres hinbekommen könnte. Vielleicht ist es ja sogar möglich während des laufenden Prozesses BB zu öffnen und den Quellcode dann zu ändern. Vielen Dank nochmal für eure Anregungen. Vielleicht könnt ihr ja noch weiter Antworten. |
||
biggicekey |
Sa, März 10, 2007 12:38 Antworten mit Zitat |
|
---|---|---|
nach einer änderung im quellcode müsste dieser ja erst neu compiliert werden.
ich denke nicht das das geht. |
||
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller Nothing more to register - you've cleaned us out![/size] |
Silver_Knee |
Sa, März 10, 2007 23:27 Antworten mit Zitat |
|
---|---|---|
in vielen Programmiersprachen gibt es den Befehl ExecCommand, der Befehle ausführt BB gehört nicht dazu... aberdiese tollen GetEnv und SetEnv könnten helfen wenn du damit enscheidende variablen verknüpfst hast du ruck-zuck cheats mit denen du din Spiel manipulieren kannst sofern du eine eingabezeile mit soetwas machst:Code: [AUSKLAPPEN] SetEnv(Mid(txt,1,InStr(txt,"=")),Mid(txt,InStr(txt,"=")+1))
wobei txt der eingegebene text ist. sry falls ich einen fehler im code gemacht habe |
||
Übersicht BlitzBasic Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group