In diesem Tutorial geht es Operatoren. Mit Operatoren kann man Werte/Variablen verändern bzw. auswerten. Ein einfaches Beispiel aus der Mathematik:
Zitat :
2+3=5
In dieser Gleichung kommen zwei Operatoren vor: "+" und "=".
In C4S gibt es viele verschiedene Operatoren. Ich werde hier nicht alle erklären können, doch ich fang einfach mal an:
= Das "=" (wer hätte es gedacht) weist dem linken Wert den rechten zu. Beispiel:
Zitat :
Mozart = Spammer
bedeutet, dass Mozart der Wert Spammer zugewiesen wird.
- und + Mit "+" und "-" kann man Werte addieren und subtrahieren. Beispiel:
Zitat :
10 + 5
gibt 15 zurrück, während
Zitat :
10 - 5
5 zurrückgibt.
+= und -= Will man jetzt eine Variable z.b. um 3 vermindern, so schreibt man
Zitat :
x = x - 3
Das geht jedoch viel einfacher:
Zitat :
x -= 3
Der "-="/"+=" Operator subtrahiert/addiert zwei Werte und weist das Ergebnis dann dem linken zu. Nochmal n Beispiel:
Zitat :
pustekuchen += 1
erhöht pustekuchen um 1.
* und / "*" und "/" funktionieren in C4S genauso, wie "+" und "-", nur, dass sie Werte multiplizieren bzw. teilen. Beispiel:
Zitat :
pizza * 5
gibt 5 pizzen zurrück .
*= und /= Kann man sich eigentlich schon denken: Multipliziert/dividiert die beiden Werte und weist dem linken das Ergebnis zu. Beispiel:
Zitat :
zahl *= 2
verdoppelt zahl.
% und %= Der Modulo-Operator (%) , in der Mathematik als mod bekannt, gibt den Divisionrest der Division zweier Werte zurück. Nochmal auf Deutsch: Man prüft, wie oft eine Zahl ganz(!) in eine andere passt. Dann nimmt man den Rest (der über bleibt) und fertig ist der modulo. Beispiel:
Zitat :
5 % 2 = 1
Die 2 passt 3mal ganz in die 5. Übrig bleibt 1. 5 : 2 = 2,Rest 1
Zuletzt von Höfi am Do März 05, 2009 5:53 pm bearbeitet; insgesamt 5-mal bearbeitet
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Operatoren So Feb 08, 2009 8:30 pm
Für den Anfang nicht schlecht, aber ein Beispiel wäre noch schön gewesen.
Höfi SFT
Alter : 29 Anmeldedatum : 20.10.08
Thema: Re: Operatoren So Feb 08, 2009 8:49 pm
Was für ein Beispiel denn?
Kai Kapitän
Alter : 28 Anmeldedatum : 29.12.08
Thema: Re: Operatoren So Feb 08, 2009 8:52 pm
ich finde es super ich glaube er meint ein beispiel für einen kompletten script^^ meiner meinung nach aber nocht nötig, super tut höfi! =D
Soterotu Generalleutnant
Alter : 31 Ort : Einsames Dorf in Oberfranken Anmeldedatum : 27.01.09
Thema: Re: Operatoren So Feb 08, 2009 9:55 pm
die Beispiele mal wieder top kann man wirklichh gut verstehen ich glaub wenn ich das mir ewig in der doku durchgelesen(wäre dann anlauf nummer 3)hätte ich es wieder nich komplett verstanden zumindestens nich nach einmal lesen wie hier jetzt
Das ist jetzt so der Zeitpunkt wo ich für Tuts ein Votes system gerne hätte
Simsi Staatssekretär
Alter : 31 Ort : Vaihingen/Enz Anmeldedatum : 30.03.08
Thema: Re: Operatoren So Feb 08, 2009 10:14 pm
jaa, schönes tut, aber ich find auf jeden fall fehlt == noch, weil damit haben die meisten ihre probleme
Höfi SFT
Alter : 29 Anmeldedatum : 20.10.08
Thema: Re: Operatoren Mo Feb 09, 2009 12:01 am
Ich hab noch mal den modulo hinzugefügt. Ich glaub über die vergleichsoperatoren mach ich n eigenes tut. Das wäre zu viel
Kai Kapitän
Alter : 28 Anmeldedatum : 29.12.08
Thema: Re: Operatoren Mo Feb 09, 2009 12:05 am
Höfi schrieb:
Beispiel:
Zitat :
Kaiundtrike = Spammer
bedeutet, dass Kaiundtrike der Wert Spammer zugewiesen wird.
>:(
davor wars noch so:
Höfi schrieb:
Beispiel:
Zitat :
Mozart = Spammer
bedeutet, dass Mozart der Wert Spammer zugewiesen wird.
Edit by Mozart um Kommentare zu sparen: meiner Meinung nach stand da ein Höfi. Zumindest als ichs gelesen hab
Edit by Kai: Ja, als dus gelesen hattest, aber als aller erstes stand da mozart, höfi hats aber als du kamst schnell geändert xD
Edit by Phil: Ich habs nicht geändert als Mozart kam.Pink xD
Edited by Kai: @Phil: wer bist denn du? dich meine ich doch nicht!! xD Phil=höfi
Zuletzt von Kai am Mo Feb 09, 2009 10:02 pm bearbeitet; insgesamt 2-mal bearbeitet
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Operatoren Mo Feb 09, 2009 11:47 am
Als ichs gelesen habe, war da auch ein Mozart. Jedanfalls sollte man bei Vorwissen "Variablen " hinzufügen.
Höfi SFT
Alter : 29 Anmeldedatum : 20.10.08
Thema: Re: Operatoren Mo Feb 09, 2009 1:23 pm
Eigentlich nicht, aber ich schreibs mal hin.
Dragonclonk Kadett
Alter : 31 Ort : Lübeck Anmeldedatum : 11.12.08
Thema: Re: Operatoren Mo Feb 09, 2009 8:44 pm
Ok. Schlecht ist es nicht.
mr.lool Kadett
Alter : 27 Ort : Rostock Anmeldedatum : 26.05.09
Thema: Re: Operatoren Di Dez 29, 2009 4:12 pm
Kai schrieb:
Höfi schrieb:
Beispiel:
Zitat :
Kaiundtrike = Spammer
bedeutet, dass Kaiundtrike der Wert Spammer zugewiesen wird.
>
davor wars noch so:
Höfi schrieb:
Beispiel:
Zitat :
Mozart = Spammer
bedeutet, dass Mozart der Wert Spammer zugewiesen wird.
Edit by Mozart um Kommentare zu sparen: meiner Meinung nach stand da ein Höfi. Zumindest als ichs gelesen hab
Edit by Kai: Ja, als dus gelesen hattest, aber als aller erstes stand da mozart, höfi hats aber als du kamst schnell geändert xD
Edit by Phil: Ich habs nicht geändert als Mozart kam.Pink xD
Edited by Kai: @Phil: wer bist denn du? dich meine ich doch nicht!! xD Phil=höfi
seit wann spammt trike? o.O
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Operatoren Di Dez 29, 2009 4:17 pm
Is ja auch ein Weilchen her, aber gespammt hat er eigentlich nie. Übrigens wäre im Tutorial vielleicht noch -> nützlich gewesen. Nutze ich selber, abgesehen von = und == , am häufigsten von allen Operatoren.
mr.lool Kadett
Alter : 27 Ort : Rostock Anmeldedatum : 26.05.09
Thema: Re: Operatoren Di Dez 29, 2009 4:19 pm
achso
Elfangor General
Alter : 32 Ort : Mainz Anmeldedatum : 26.06.08
Thema: Re: Operatoren Di Dez 29, 2009 4:52 pm
Da es noch keiner getan hat, hier die Erklärung zu "==":
== ist ein vergleichsoperator. Er setzt keinen Wert wie "=", sondern er vergleicht zwei Werte.
Ich verwende ihn eigentlich nur bei if() oder for().
Ein Beispiel für die for()-verwendung:
Code:
if(var Zähler=0; Zähler==5; Zähler++) { Message("Juhu Zähler ist 5"); }
else
{ Message("Zähler ist nicht 5 :-(. Weiterzählen!");
Außerdem hast du ++ und -- vergessen.
++ Erhöht den Wert um 1 -- erniedrigt den Wert um 1
bsp:
Code:
int Zahl=0; Zahl++;
Nun ist Zahl 1.
Das Gleiche geht auch andersrum. Nun muss MIR jemand erklären wo der Unterschied zwischen
Zahl++ und ++Zahl liegt.
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Operatoren Di Dez 29, 2009 6:13 pm
->
Und dann kommt von mir noch der Operator '->'
Das ist ebenfalls ein ausgesprochen nützliches Ding, wenn man ihn sinnvoll anwendet. Er ersetzt es beispielsweise, eine Variable oder unterstützt diese. Was er macht kann man sich ja denken, da er ausschaut wie ein Pfeil: Er weißt Werte und weitere Befehle zu. Am besten sieht man das anhand eines Beispiels:
Code:
func EplodierenderStein() { //Ein Stein wird erstellt und ihm wird dann gesagt, dass er explodieren soll CreateObject(ROCK)->Explode(40); }
-> sagt also aus, wie es mit einem Befehl(meist ein erschaffenes Objekt), weitergehen soll. So wird im Beispiel ein Stein erzeugt, welchem dann gesagt wird, dass er mit einer Stärke von 40 explodieren soll. Ansonsten hätte man eine Variable erstellen müssen, und diese dann weiter verwenden müssen, -> ist kürzer und spart Zeilen.
Eine weitere Verwendung ist in RPGs(siehe dazu Gamers Tutorial für Clonkfilme) Dabei wird eine statische Variablen erzeugt, der dann ein bestimmtes Objekt zugewiesen wird.
Code:
/*-- Neues Szenario --*/
#strict 2
static pBowser; //Bowser
public func Initialize() { pBowser=CreateObject(MBWS,2253,553); //Bowser darf net fehlen
return 1; }
Hier wird Bowser(ID ist MBWS) erstellt, dass jetzt in erschaffen wurde.
Code:
func Script75() { pBowser->SetAction("Throw");
}
So, und nun wird Bowser gesagt, dass er die Aktion Throw ausführen soll. Soviel zur Anwendung von ->