Seite 1 von 1

OSCE Probleme, Fragen, Anregungen

BeitragVerfasst: So Nov 14, 2010 8:12 am
von Synth
Sooo....

Hab jetzt mal die Hilfe zur OSCE v40.66 ausgedruckt und erstmal folgende Probleme:

Einige Befehle, z.B. MAX/MAY/MAZ funktionieren nicht bei den angegebenen Effekten. Eigentlich nur bei 3D-Ball...
Sind aber mehrere Befehle, bei denen Effekte angegeben sind, die nicht gehen.. (Pfusch in der Hilfe!?)

CLS: Wieso heißt es "Screenflash", wenn er so langsam fadet??? Bei Flash denk ich an so'n aufblitzen, wie z.B. bei meinem Helicopter.. Oder bei meinem Comeback das Foto... Aber so langsam eingeblendet...?

DR#: Was soll'n der Quatsch??? Oder versteh ich den Befehl nicht? Wo ist der Sinn, eine Zahl in eine Variable zu setzen, die ich nicht verändern kann? Hab's versucht, geht aber nicht.
Sinnvoll (und so hatte ich es mal vorgeschlagen) wäre, wenn man den Wert im Script verändern kann, z.B.
  Code:
lab=1
lea=logo
adx=dr1
lea=dr1
dr1=dr1+2
jmp=1

SO könnte man auch eine Art "For-To-Next-Schleife" bauen..
  Code:
lab=2
lda=dr1
mvx=+1
dr1=dr1+1
ifdr1(oderso)=10:brk
jmp=lab=2

Ich weiß, man könnte jetzt x abfragen, oder REP benutzen.. Für meine Vorhaben aber nicht machbar.

Kleine mathematische "Formeln" dr1=dr2+(dr1*dr3), wie für Variabeln bei Basic üblich... *Habenwill*

Re: OSCE Probleme, Fragen, Anregungen

BeitragVerfasst: Mo Nov 29, 2010 9:36 pm
von RoySAC
Synth hat geschrieben:Sooo....

Hab jetzt mal die Hilfe zur OSCE v40.66 ausgedruckt und erstmal folgende Probleme:

Einige Befehle, z.B. MAX/MAY/MAZ funktionieren nicht bei den angegebenen Effekten. Eigentlich nur bei 3D-Ball...
Sind aber mehrere Befehle, bei denen Effekte angegeben sind, die nicht gehen.. (Pfusch in der Hilfe!?)

CLS: Wieso heißt es "Screenflash", wenn er so langsam fadet??? Bei Flash denk ich an so'n aufblitzen, wie z.B. bei meinem Helicopter.. Oder bei meinem Comeback das Foto... Aber so langsam eingeblendet...?

DR#: Was soll'n der Quatsch??? Oder versteh ich den Befehl nicht? Wo ist der Sinn, eine Zahl in eine Variable zu setzen, die ich nicht verändern kann? Hab's versucht, geht aber nicht.
Sinnvoll (und so hatte ich es mal vorgeschlagen) wäre, wenn man den Wert im Script verändern kann, z.B.
  Code:
lab=1
lea=logo
adx=dr1
lea=dr1
dr1=dr1+2
jmp=1

SO könnte man auch eine Art "For-To-Next-Schleife" bauen..
  Code:
lab=2
lda=dr1
mvx=+1
dr1=dr1+1
ifdr1(oderso)=10:brk
jmp=lab=2

Ich weiß, man könnte jetzt x abfragen, oder REP benutzen.. Für meine Vorhaben aber nicht machbar.

Kleine mathematische "Formeln" dr1=dr2+(dr1*dr3), wie für Variabeln bei Basic üblich... *Habenwill*


1.
Die MAX/MAY/MAZ befehle funktzen bei 3DBalls und 3D Vectoren wie in der doku angegeben. In den letzten updates war die Doku eigentlich immer fast komplett in ordnung (auch wenn leider zu kurz) Echte Versaeumnisse sind eher ausnahme. Die meisten probleme tauchen meiner erfahrung nach immer dann auf, wenn a) der user ne andere vorstellung von nem feature hat als der programmierer, was durch die kurze doku sehr gefoerdert wird oder b) um einen bug, e.G. der command funktioniert doch nicht so immer in allen faellen oder hat merkwuerdige nebenwirkungen. Ich habe mich zu verschiedsten faellen zu diesem thema schon in der "OSDM Wiki" ausgelassen, fuer due neugierigen unter euch.

2.
Die DRx variablen sind ein anfang in die richtige richtung. man kann schon was mit ihnen anfangen, speziell wenn zu verwirrende macro/sub label ketten zusammenbrechen. Aber ich stimme schon zu, dass der naechste schritt beinhalten sollte, dass man die werte der variablen auch abfragen (Checks, e.g. = > < <> etc. ) und setzen (Switches oder Loop Counters etc., e.g einfache Arithmetische Operationen unterstuetzen wie Addition oder Subtraktion) kann. Wird schon noch kommen, da bin ich mir ziehmlich sicher hehe.

Hier mal nen Beispiel, p.s. das gleiche koennte man auch via macros machen, aber wie gesagt, verschachtelungen von labels und macros koennen manchmal versagen.

  Code:
LAB=1
DR3=100
LEA=SPRITE : IDN=1
IDC=8 : IDC=9 : IDC=10
DR0=8 : JSR=10
DR0=9 : JSR=10
DR0=10 : JSR=10
RTS

LAB=10
LEA=SPRITE : IDN=DR0
IFX<0 : DR1=1
IFX>640 : DR1=-1
REP=DR3
   ADX=DR1
LOP
RTS