so, ich bin jetzt fertig mit dem shooter-ks-tut.
hier ist es:
---------------------------------------------------------------------
Teil IV
Shooter-KS

Ihr solltet hierfür auf jeden Fall schon Erfahrung mit dem Maker haben, da dies ein wenig
umfangreicher ist.
Erstmal was zur Vorbereitung: Für den Hintergrund würde ich Panoramas nutzen, da sie immer unter
BIldern sind und sich leichter scrollen lassen. Dann solltet ihr ein Bild, möglichst als ID 1, nehmen und
als "Untergrund" für KP,... Anzeige benutzen. Wie ihr Zahlen als Bilder macht, steht oben in Teil I.
Ansonsten solltet ihr drauf achten, dass ihr den Held und den/die Gegner als möglichst kleine
ID macht(die Attacken sollen schließlich über den Kontrahenten sein).
Und nun, Start!


IV.I.I: Anfang und Heldenbewegung mit Variablen

Am Anfang gibt es zu beachten, dass ihr erstmal alle Bilder anzeigt, die Helden/Gegner Variablen
Initialisiert,... . Danach solltet ihr dieses Event ausschalten, aber vorher noch Switches o.ä.
aktivieren, die für Heldbewegung, Gegner, Schiessen,... zuständig sind.

Ich habe selbst mal zu Testzwecken ein Shooter-KS gebastelt, hier der Downloadlink:
http://mitglied.lycos.de/werdops/Shooter-KS.zip
(ich bin momentan noch am hochladen, wundert euch nicht, wenn der
link nicht geht)
Als erstes kommen wir zu der Bewegung des Helden:
Zunächst einmal solltet ihr die X/Y Werte des Helden in zwei Variablen, z.B. "Held X"
und "Held Y". Jenes solltet ihr gleich zu Beginn machen, und IMMER, wenn sich Held
(oder auch Gegner) bewegen, deren Variablen ändern und das Bild zu deren Koordinaten
"moven" lassen(dafür gibt es bei dem "Show Picturebefehl" den Menüpunkt "by Variable",
wählt dort die X, bzw. die Y Variablen aus).
Schön, nun haben wir also den Held an einer Stelle in Variablen. Und jetzt soll er sich
auch noch bewegen(soll doch beleiben, wo er ist^^). Na gut, so geht´s:

Der Held soll sich ja auf Knopfdruck bewegen. Also als erstes eine Tastenabfrage,
und man jederzeit drücken kann, und vor allem, weil man den Knopf auch gedrückt
halten kann, wählen wir die Option "wait until key hit"(Warte is Knopf GEDRÜCKT)
nicht aus. Sie bewirkt ja, dass man, wenn man den Knopf drückt, der Knopf in eine Variable
gespeichert wird, und es erst nach Knopfdruck weitergeht. Wenn man nun diesen Knopf gedrückt
hält, zählt dies nicht als Tastendruck und man muss die Taste loslassen und wieder drücken, bevor
es weitergeht. Genau das Gegenteil von dem, was wir wollen.
So, nun wird überprüft, welcher Knopf gedrückt wurde, und dann die entsprechende Variable
geändert. Z.B.: Wenn man "rechts" drückt, soll sich der Held nach rechts bewegen, und da
man sich auch in kleinen Abständen bewegen soll, lasst ihr "Held X" + 3 ausführen(oder +1,+2
+4,+5).Noch höher ist normalerweise zu schnell. X + 3 bedeutet ja 3 Pixel nach rechts,
wie ihr oben bei meiner Koordinatensystemerklärung seht.
Da dies nun eine sehr kleine Bewegung(ca. 1/106 des Bildschirms bei X+3), sollte auch eine
kurze Bewegungszeit gewählt werden(Ich bevorzuge 0,0 sec(=1/60 sekunde)).

Probiert das ruhig mal so. Ihr werdet allerdings feststellen, dass es noch nicht ganz funktioniert.
Der Held wird an den Rändern nicht anhalten. Doch was tun? Die Koordinaten helfen hier mal
wieder. Ihr macht also vor den Move Picture Befehl noch ein paar Überprüfungen, ob die X-und
Y-Koordinate zu kleine oder zu groß sind(zu klein sind sie oben(links), zu groß unten(rechts),
da der Koordinatenursprung ja links-oben ist). Und wie kommt ihr auf die Werte. Man kann sie
berrechnen, allerdings ist probieren meist doch am besten. Falls der Held aber nur ganz an
den Rändern anhalten soll, berrechnet ihr es wie folgt:
Er soll ganz links anhalten. Der Mittelpunkt des Bildes ist der Punkt, für den die Koordinaten
gelten. Das sieht dann in etwa so aus:
0 1 2 3 4 5 6
-------------------->
|__.__
|
|
|
|
\/

oder:
0 1 2 3 4 5 6 7 8
--------------------------->
|______.______
|
|
|
|
\/

Die Y-Einteilung habe ich weggelassen. _._ ist das Bild, der Punkt der Mittelpunkt, und die Unterstriche
stellen die Breite des Bildes da.
Da der Mittelpnkt nun in der Mitte ist, und somit die Entfernung von der Mitte bis zum Rand(es soll
ja am Rand anhalten) logischerweise die Hälfte der Breite des Bildes ist, darf der Held nicht unter folgenden
Wert kommen:

K...Koordinatenwert des Punktes den er nicht unterschreiten darf
B...Breite/Höhe des Bildes in Pixeln
W...Ergebniss(Wert)

W=K+(B/2)

dasselbe gilt auch für einen Y-Wert, den er nicht unterschreiten darf.

Beim Überschreiten:

K...Koordinatenwert des Punktes den er nicht überschreiten darf
B...Breite/Höhe des Bildes in Pixeln
W...Ergebniss(Wert)

W=K-(B/2)

Wie ihr seht, ist das fast dasselbe. Wenn wir das genauso wie oben in einer Skizze darstellen,
muss der Punkt (Ergebniss) ja nun links von dem Wert, den er nicht überschreiten darf, liegen.
Da er in unserem Falle ja an den Rändern anstoßen soll, ist K bei uns 0(oben) und 320(Breite) bzw.
240(Höhe)(unten). Ich habe die Formel allerdings allgemein gehalten, so dass, wenn ihr den
Anhaltepunkt kennt, auch den Wert berrechnen könnt. Noch allgemeiner wäre es so:

(+-)...plusminus
B...Breite/Höhe/Tiefe des Bildes in Pixeln

W=K(+-)(B/2)

Diese Formel ist dann wirklich allgemein gültig. In eure Überprüfungen lasst ihr dann den
entsprechenden Wert, der abweicht, auf das Minimum, bzw. Maximum anpassen(er unterschreitet
10, also muss er auf 10, dem Minimum angepasst werden).
Danach euren Move Picturebefehl.

Jetzt noch einen kleinen Bonus:

IV.I.II: Heldenanimation
Simpel, kann aber eine große Wirkung erzielen. Ihr braucht erstmal
ein paar Einzelbilder der Heldenanimation. Da bei einer Animation Einzelbilder
hintereinander angezeigt werden, lasst ihr also(Parallel Process) die Bilder nacheinander
anzeigen. Und damit es nicht zu schnell wird, macht ihr dazwischen noch einen Wait-Befehl
(mind. 0,1 sec). Nun werden schnell die Einzelbilder angezeigt, eine Animation ist entstanden.


IV.II: Das Schiessen

Nun kommen wir zu einem wichtigen Teil, dem Schiessen. Ihr braucht ein Bild einer
Kugel(ca.8x8 Pixel).

IV.II.I: Registrieren der Spielereingabe

Da auf Knopfdruck geschossen werden soll, lasst ihr als erstes überprüfen, wann der
"Schiessen"-Knopf gedrückt wird. Sobald er dann gedrückt wird, lasst ihr das Schiessen
Event starten. Ausserdem solltet ihr, damit man nicht ganz schnell hintereinander schiessen
kann. Da ja auch mehrere Kugeln hintereinander abgeschossen werden können solllen,
müsst ihr auch eine Prüfung machen, welche Kugeln bereits da sind. Die Anzahl der max.
möglichen Kugeln könnt ihr selbst festlegen, bedenkt jedoch, dass jede Kugel ein Bild braucht und
ihr ausserdem für jede Kugel die Schadensüberprüfung machen müsst. Nun ja, wie schon gesagt, müsst
ihr überprüfen, welche Kugeln aktiv sind. Was eignet sich da besser als Switches? Ihr müsst sie natürlich
ON schalten, wenn die Kugel da ist. Die Überprüfung muss wie folgt aussehen: Falls Kugel 1 nicht
da, schiesse Kugel 1 ab, ansonsten, wenn Kugel 2 nicht da ist, schiesse Kuge 2 ab, ansonsten, wenn Kugel
3 nicht da ist, schiesse Kugel 3 ab, ansonsten...
(Tipp: Wenn heißt "If", Ansonsten "Else")
Falls die Kugel nun abgeschossen wird, muss gespeichert werden, dass sie momentan "unterwegs"
ist(Switches). Und falls jede Kugel schon abgeschossen ist, kann eben keine mehr kommen
(Ihr solltet die Zeit zwischen dem minimalen Zeitabstand des Abschiessen der Kugel und der
max. Anzahl an Kugeln so kalkulieren, dass man immer eine Kugel abschiessen kann.)

Nun, da die Kugeln ja auch alle auf einmal kommen können, macht ihr für jede Kugel
ein Extra-Event. Der Code in den Events sieht folgendermaßen aus:

IV.II.II: Die Kugel fliegt

Z.B. für die Schadensüberprüfung speichert ihr die Position der Kugel/n in Variablen(pro Kugel
2 Variablen; X/Y).
Als erstes muss die Kugel natürlich erscheinen, und wo? Normalerweise bei dem Helden. Also
übernehmt ihr die Position des Helden für die Position der Kugel. Ihr würde euch ausserdem
empfehlen, beim Anzeigen in 0,1sec die Kugel von 100% auf 0 %Transparenz zu bewegen lassen.
Nun wird die Kugel sich logischerweise nach rechts bewegen. Welche Koordinate müsst ihr also
verändern? Und + oder -? Sehr schwer! Gut, ihr lasst nun also die Kugelkoordinate 5(probiert mal)
erhöhen(vermindern, falls sie nach links fliegen soll). Jetzt lasst ihr logischerweise die Kugel
bewegen, am besten wieder in 0,0s. Falls ihr das so lasst, fleigt die Kugel ewig. Also lasst ihr überprüfen
ob die Kugel bereits weit genug geflogen ist(gewöhnlich >320). Da sich das ja immer wieder-
holt, ist die Empfehlung eine Schleife(Cycle,Loop). Falls die Kugel nun weit genug ist, wird
aus der Schleife "ausgestiegen". Am Ende lasst ihr dann die Kugel verschwinden, und, damit
wieder eine neue Kugel kommen kann, OFF.

Dasselbe macht ihr dann für alle anderen Kugeln, nur dass ihr dann andere ID´s und Variablen
nehmt, da es ja eine andere Kugel ist.

IV.II:III: Raketen können zielen

Falls ihr noch Raketen oder ähnliches reinnehmen wollt, mach ihr das genauso, nur dann
wieder andere Bilder usw.
Wenn die Rakete automatisch treffen soll, macht ihr zu X+5 dann folgendes:
Eigentlich ganz einfach. Ihr lasst überprüfen, ob die Y-Koordinate(die Höhe)
der Rakete >,< oder = ist, und lasst dann entsprechend die Y-Koordinate verändern.

Somit wäre dann auch das Schiessen fertig. Und nun geht es weiter mit:


IV.III: Der Schaden

Das wohl wichtigste, das Überprüfen des Schadens. Wenn man es einmal verstanden hat, ist
es ganz leicht. Ihr solltet die Schadensüberprüfung Parallel ablaufen lassen, Schadensüberprüfungen,
ob Gegner treffen extra, und, entweder für jeden Gegner ein extra Event, ob er getroffen worde, oder
als ein Event, und dann mit Switches/Variablen überprüfen, welcher Gegner aktiv ist, und dann entsprechend
Gegner Koordianten usw. einstellen. Das leigt bei euch. Und dfür jeden Schuss müsst ihr eine Extra-Prüfung
machen, allerdings könnt ihr dies untereinander im selben Event machen.

IV.III.I: Die Überprüfung des Schadens

Ich schmeiß erst mal ein paar Bedingungen in den Raum(?):

Variablen:
B1...Breite des Bildes 1 in Pixel
H1...Höhe des Bildes 1 in Pixel
X1...X-Koordinate des Bildes 1
Y1...Y-Koordinate des Bildes 1
B2...Breite des Bildes 2 in Pixel
H2...Höhe des Bildes 2 in Pixel
X2...X-Koordinate des Bildes 2
Y2...Y-Koordinate des Bildes 2

Bedingungen:
X1-B1/2<=X2+B2/2
X1+B1/2>=X2-B2/2
Y1-H1/2<=Y2+H2/2
Y1+H2/2>=Y2-H2/2

Falls all diese Bedingungen erfüllt sind, berühren sich die beiden Bilder.
Dies lässt sich einfach mit Forks überprüfen, doch sehen wir uns mal an, was hinter
diesen Bedingungen steckt. Es steht da: X + B/2, das bedeutet, die Breite des
Bildes wird duch 2 geteilt und dann zum X-Wert addiert. Und da der X-Wert genau die Mitte
des Bildes ist, kommen wir auf den rechten Rand des Bildes(__.__, der Punkt ist die Mitte, also
die Breite durch 2, und Breite durch 2 + Breite durch 2 ergibt Breite(B/2+B/2=(B+B)/2=2B/2,
2 mal B durch 2= B, und dann gibt X noch den Punkt an, wo sich das Bild auf dem Bildschirm
befindet, so dass dieser Wert berücksichtigt wird dasselbe für Höhe)). Es werden also die Ränder
der Bilder ermittelt, und die dann überprüft, da sie ja das Bild beschränken
(X1-B1/2=B/2 - B/2= (B-B)/2 = 0, jetzt wird noch die Position auf dem Bildschirm addiert, fertig).

IV.III.II: Warum das so ist

Jetzt zu den Überprüfungen:
______________
| | /=>Schnittstelle
| Bild 1 | /
| ___ |/__________
| | | |
|_____________| |
/| Bild 2 |
/ | |
/ |_______________|
/
/=>Schnittstelle

Ich hab das hier mal skizziert. Man kann erkenennen, dass oben die linke mit der rechten Seite
und die rechte mit der linken Seite verglichen werden. Und wenn jetzt die linke Seite rechts(also
größer ist) von der rechten Seite und die rechte Seite links(also kleiner) von der Linken ist,
kann da irgendwas nicht stimmen, und zwar, dass die Bilder nicht kollidieren. Schaut euch
einfach mal die Skizze an, und ihr werdet es verstehen.
(Man kann auch so überprüfen, dass man den X-Wert des einen Bildes nimmt und vergleicht, ob
er links von der rechten und rechts von der linken Seite ist, und beim Y-Wert ob er unterhalb
der oberen Seite und oberhalb der unteren Seite ist, wobei man noch die Breite/Höhe
des 1. Bildes berücksichtigen muss, indem man einfach bei den Überprüfungen, die man
ausfführt, indem man wieder die Seiten des einen Bildes ermittelt, dann noch die Hälfte
der Breite/Höhe des 1. Bildes zu den Seiten der Überprüfung hinzuaddiert. So ist das
vielleicht verständlicher.)

Nachdem ihr überprüft habt, ob getroffen worde, und wenn getroffen wurde, solltet
ihr eine kurze Animation machen, die HP senken, überprüfen, ob der Gegner tot ist,
und eventuell die Prüfung abschalten(bei einem Schuss z.B. hab ich es so gemacht, dass
er nur einmal treffen kann), oder zumindestens eine Wait Zeit, da die Kugel o.ä.
sonst ganz schnell hintereinander trifft. Doch wie gesagt, dass ist euch überlassen.

Nun seid ihr also auch mit der Überprüfung fertig. Was fehlt also noch?

IV.IV: Die Gegner

Das so schwierigste überhaupt. Als erstes braucht ihr Ideen, wie sie sich verhalten
sollen. Da das sehr Variabel ist, kann ich hier nur Tipps und Ratschläge geben:

Ihr solltet daran denken, dass ihr auch eine Prüfung macht, ob sie euch treffen. Vor allem
bei Endgegnern solltet ihr sie z.B. bei Attacken unverwndbar machen. Ihr schaltet
dazu einfach die Schadensüberprüfung aus. Wenn der Gegner auf euch zukommen soll,
mach ihr das genauso wie bei der Rakete(erhalte Koordinaten, wenn Gegner X < HeroX,
Gegner X+[2-8], bei größer minus, wenn Gegner Y <HeroY, GegnerY+[2-8], bei größer
minus; die Werte in den Klammern sind nur Richtwerte), nur dass ihr statt der Rakete
dann den Gegner nehmt. Der Angriff geht genauso wie das Schiessen(und manchmal
einfacher). Und ihr könnt auch jederzeit die Heldkoodinaren abfragen, um den Gegner/
die Attacke dorthin zu geleiten o.ä.
Alles in allem sollten die Gegner nicht zu schwer sein, wenn ihr euch vorher genau
überlegt, was sie machen sollten.
Übrigens solltet ihr die Gegner in einem extra Event erstellen, was möglichst Parallel ablaufen
sollte.

Falls ihr trotzdem bei einem Gegner nicht weiter wisst, so schreibt einfach mal hier rein.

IV.V: Schlusswort

Am Anfang solltet ihr nur ein Event aktiv haben, was als Einführung dient, Bilder initialisiert,...
Danach wird dieses Event ausgeschaltet und die Events für Bewegen, Schiessen und das für das
Erscheinen der Gegner wird aktiviert. Der Rest wird dann akitviert, wenn ihr sie braucht.
Das sind die Hauptevents. Der Rest ist vor allem zur Überprüfung.
Das ist alles, was ihr wissen müsst, um ein Shooter-KS zu erstellen.
Und schaut euch auch mal mein Script an, es enthält viel Nützliches, wie
es dann in etwa aussehen müsste.

Ich wünsche euch gutes Gelingen!

Hier noch ein Tutorial, was ich mal irgendwann geschrieben habe, schaut es euch nur
im Notfall an!

Zitat Zitat
Es könnte etwas komisch werden, was daran liegt, dass ich die Texte einfach aus dem Spiel
kopiert habe.

Inhalt:
Kapitel 1: Der Anfang
Kapitel 2: Herzstück - Teil 1: Das Bewegen
Kapitel 3: Herzstück - Teil 2: Das Schießen
Kapitel 4- Die HP-Anzeige
Kapitel 5- Die Zufallsauswahl der Attacken
Kapitel 6- Die normalen Gegner
Kapitel 7- Die Attacken der Gegner
Kapitel 8- Die Schadensüberprüfung Teil 1: Der Code
Kapitel 9- Die Schadensüberprüfung Teil 2: Die Berrechnung
Kapitel 10: Die automatischzielenden Raketen
Kapitel 11- Der Schluss

Kapitel 1: Der Anfang

1. Also, an den Anfang kommt, je nach
nach eurer Story, wie der Held
erscheint, Veränderung der
Landschaft....

2. Viel könnt ihr dabei nicht
falschmachen. Auf jeden Fall muss das
Erscheinen des Helden da sein.

3. Ich habe dort noch ein paar Cheats
eingebaut. Man gibt einem Helden
einen Namen, wo dann überprüft wird,
ob es diesen "Cheat" gibt!

4. Vorher muss man noch
X,Z,oben,links,unten,rechts
eingeben(mit Enter Password).

5. Probiert mal den Cheat "Death"!
(ggg)

6. Nicht vergessen: Am Ende des Events
einen Switch (z.B. Anfang) auf ON
stellen!

Kapitel 2: Herzstück - Teil 1: Das Bewegen


Ich will an dieser Stelle noch nicht
zuviel verraten. Wir werden es ge-
meinsam erarbeiten. So wirst du es
auch schneller begreifen!
1. Den Helden als Bild darzustellen
2. Auf Knopfdruck soll er sich bewegen
3. Er soll an den Rändern anhalten
Wir nehmen uns jetzt jeden Schritt
einzeln vor!
Was war 1.?
Achso, den Helden als Bild
darzustellen.
Dazu legen wir in dem Event
mit dem Anfang eine 2. Seite an,
wo der Switch "Anfang" ON sein muss.
Man kann hier den Helden erscheinen
lassen. Es empfielt sich aber, ihn
gleich am Anfang mit darzustellen.
Show Picture ID 1: Held
Move Picture ID 1:
Da wir nicht dumm sind, sollten
wir für spätere Schadensüber-
prüfungen(und das Bewegen) die
Heldenposition in Variablen speichern.
Also:
Change Variable: 0001(Hero X) Set 160
Change Variable: 0002(Hero Y) Set 120
Den Variablenwert je nach Position
des Helden verändern.
So, damit sehen wir den Helden
schon.
Ich habe bei mir noch ein Extra-Event
gemacht, damit der Held bei
mir mit den Füssen strampelt.
Wollt ihr dies auch machen, ein
neues Event anlegen wo der
Switch "Anfang" ON sein muss.
Nun die Heldenbilder besorgen
und:
Show Pitcure ID 1 (Held 1) Var 1 u. 2
Wait (in etwa) 0,1 sec
Ich habe hier statt den Variablen
feste Zahlen genommen, ihr müsst
es dann aber mit den Variablen
Hero X und Y machen!
Damit wäre dies fertig!
Kommen wir zu zweitens.
Das Bild soll sich auf Knopfdruck
bewegen.
Dies sollte in die zweite Seite
des Events "Anfang".
Wir sehen sofort das hier
Enter Password hin muss.
Das wird also unser erster
Befehl sein:
Enter Password(Wait Until Key hit)
direction.
Dann noch 4 Forks zum überprüfen
des Variablenwertes und in die
Forks, damit sich der Held bewegt,
Change Variable Hero X(oder Y)
+/- 5.
Am Schluss noch Move Picture: ID 1
(Variable Hero X und Y) und 0, 0 sec.
Hmm, das funktioniert noch nicht so
richtig...
Idee!:
Wir probieren es mal, bei Enter
Password den "Wait Until Key Hit"
rauszumachen.
Kommen wir zu Schritt 3!
Der Held soll an den Seiten
anhalten. Dazu brauchen wir erstmal
die Variablen an den der Held anhalten
soll. Da dies unterschiedlich sein
kann, gehe einfach so vor.
Mache das Bewegen erstmal ohne
Anhalten und teste es.
Nun bewege dich zu den Stellen,
wo der Held anhalten soll.
Und zwar: Einmal das Anhalten
am unteren Rand.
Bist du dort, drücke F9 um den
Variablen/Switch Modus aufzurufen.
Schaue dir nun Wert der Variable
Hero Y an. Merke ihn dir.
Nun gehen wir wieder in das
Event "Anfang" auf die 2. Seite.
Gehe vor den Befehl "Move Picture"
und füge folgende Befehle ein:
Fork Condition: If Variable Hero Y
above (den gemerkten Wert).
Ohne Else Case.
In diese Fork kommt nun:
Change Variable (Hero Y) Set
(den gemerkten Wert)
Nun gehe wieder ins Testspiel
und der Position, wo der
Held am oberen Rand anhalten soll.
Drücke wiederum F9 und merke dir
den Wert der Variable Hero Y.
Im Event Anfang unter(nicht in)
die letzte Fork:
Fork Conditions:
If Variable Hero Y below(!!)
(der von euch gemerkte Wert).
In diese Fork:
Change Variable (Hero Y) Set
(der von euch gemerkte Wert).
Nun geht ihr wieder(wie sollte es
auch anders sein) ins Testspiel und
die Anhalteposition des
Helden am rechten Rand.
Drückt wieder F9 und merkt euch
den Wert der Variable Hero X.
Im "Anfang" Event unter die letzte
Fork noch eine Fork:
If Variable (Hero X) above
(der von euch gemerkte Wert).
Und nun nocheinmal:
Geht ins Testspiel und bewegt
den Helden an die linke Anhalte-
position. Drückt F9 und merkt euch
den Wert der Variable "Hero X".
Wiederum im Event "Anfang" unter
die letze Fork eine letzte Fork:
If Variable (Hero X) below
(der von euch gemerkte Wert)
Das klingt jetzt alles ein bisschen
kompliziert, aber so schwer ist es
gar nicht(4 Forks, 4 Change Variable).
Es ist nur viel Text.
Probiert es einfach mal.
So, das wäre eigentlich schon alles.
Und versucht nicht, das im Maker
bei meiner Erkärung zu verstehen.
Hier habe ich noch andere Befehle
hinzugefügt.
Wenn ihr es schon im Maker betrachten
wollt, in der Mappe "Sensenmann KS".
Der Kampf mit dem Sensenmann stammt
aus meinem Spiel Namens 16 Keys,
wo ich eine Demo bald veröffentlichen
werde.
Und wenn ih euch über die vielen
Variablen, Switches, Bilder, Music
u.s.w. wundert, ich habe mein Spiel
kopiert und dann die meisten Mappen
gelöscht, weil ich nicht alles noch
mal neu importieren wollte.
Nun aber weiter im Script!



Kapitel 3: Herzstück - Teil 2: Das Schießen

So, nun kommt das Schiessen dran.
Als erstes lassen wir unseren Helden
erscheinen!
1.Wir wollen einen Schuss(als Bild)
an dem (Bild) Helden anzeigen lassen.
2. Dieses Bild soll sich dann nach
rechts bewegen.
3.Es sollen mehere Schüsse kommen
(statt nur einem) und man kann auch
nicht erst den schiessen, wenn der
jetzige weg ist.(wie z.B. in Delta Star).
( trotzdem auf jeden Fall ein Download wert)).
Also, erstens den Schuss als Bild
am Helden darstellen.
Da wir nicht wissen, wo der Held
sich gerade befindet, müssen wir
2 neue Variablen einrichten.
Wir nehmen die Variablen
0003: Schuss X,
und 0004: Schuss Y.
Nun gilt es noch die Position
der Variablen zu ermitteln.
Da wir den Schuss am Helden
darstellen wollen, sollten
wir die Werte von den Helden-
koordinaten übernehmen.
Also:
Change Variable: Schuss X (Set)
Variable Hero X und
Schuss Y (Set) Variable Hero Y.
Doch jetzt stop.
Wir richten ein neues Event
mit dem Namen schiessen ein.
(Parallel Process, Below Hero,
Switch "Anfang" muss ON sein).
In dieses Event kommt nun:
Enter Password(Store into Variable
0005: Schiessen, kein "wait until
key hit, nur bei "Decision(5)" ein
Häckchen machen).
Nun Fork Conditions:
If Variable Schiessen 5.
In diese Fork nun noch eine Fork:
If Switch 0002 Auszeit ON.
(Switch später noch erklärt)
In diese Fork kommt wait 0,2 sec,
danach Change Switch "Auszeit" Off.
Unter den folgenden End Case
noch Change Switch 0003 Schiessen ON.
(Auch dieser Switch später erklärt)
Nun legen wir ein neues Common Event
an, welches wir Schiessen nennen.
Wir stellen es auf Parallel Process
ein und es muss der Switch "Schiessen"
ON sein.
Fork Condition:
If Switch Schuss 1 Off.
In diese Fork:
Play Sound Effect: Einen Sound-
effect fürs Schiessen(ich habe plop
genommen).
Change Switch 0006 Schuss 1 On
Change Switch Auzeit On und
goto Label 1.
(Den Label ganz am Ende hinsetzen)
Unter diese Fork(und den Label schön
am Ende lassen) kommt:
Fork Condition:
If Switch Schuss 2 Off.
In diese Fork:
Play Sound Effect: Einen Sound-
effect fürs Schiessen(ich habe plop
genommen).
Change Switch 0007 Schuss 2 On
Change Switch Auzeit On und
goto Label 1.
Unter diese Forks(Label am Ende
lassen) noch drei weitere Forks
wie eben, nur die Switches in
Schuss 3, 4 oder 5 verändern.
Nun richten wir 5 neue Common-Events
ein, die wir Schuss 1 bis Schuss 5
nennen. Wir stellen es auf Parallel
Process und es muss jeweils der
Switch "Schuss 1" bis "Schuss 5" On
sein.
In das Event "Schuss 1" kommt nun:
Change Variable: Schuss 1 X (Set)
Variable Hero X und
Schuss 1 Y (Set) Variable Hero Y.
Und damit wären wir dort angelangt,
wo wir vorhins aufgehört haben.
Nun kommt:
Show Picture ID 2 Schuss (Variable
Schuss 1 X und Schuss 1 Y)
Tranzparenz 0%, Magnify 100%.
Nun kommt ein Cycle(oder Loop)
Befehl.
Gleich zu Beginn kommt in diesen
Loop eine Fork Condition:
If Switch Schuss 1 Off.
Sie dient dazu, den Schuss
zu verschwinden zu lassen, wenn
er nicht mehr da ist.
In diese Fork noch ein
"Goto Label 1" mit rein.
Nach der Fork, damit sich der
Schuss auch bewegt, Change Variable:
Schuss 1 X (+) 5.
Ich habe danach noch
Change Variable Schuss 1 Y (+) 5,
damit der Schuss sich etwas nach oben
und unten bewegt. Dies könnt ihr machen,
ihr müsst aber nicht.
Nun folgt, damit sich der Schuss
nun auch wirklich bewegt, Move
Picture: ID 2 (Variable Schuss 1 X
und Schuss 1 Y) bei 0,0 sec.
(Tranzparenz=0 %, Magnify=100 %)
Solltet ihr es so gemacht haben, dass
er Schuss etwas nach oben und unten
abweicht, so müsst ihr nun folgende
3 Befehle noch mit reinbringen:
Change Variable Schuss 1 X (+) 5,
Schuss 1 Y (-) 5 und
Move Picture ID 2 (Variable Schuss 1 X
und Schuss 1 Y). 0,0 sec und
Tranzparenz=0 %, Magnify=100 %.
Nun kommt wieder eine Fork Condition:
If Variable Schuss 1 X (above) 325.
(Bei dem Wert, sollte der Schuss zu
früh oder zu spät verschwinden, müsst
ihr ein bisschen herum-
experimentieren.
In diese Fork kommt nun:
Change Variable: Schuss 1 X (Set) 0
und Change Variable Schuss 1 Y (Set) 0,
sowie Change Switch Schuss 1 Off.
Am Ende noch "Break Cycle".
Unter den Loop kommt erstmal
ein Label 1.
Nun nocheinmal Change Variable
Schuss 1 X (Set) 0 und
Schuss 1 Y(Set) 0, sowie
Change Switch Schuss 1 Off.
Nun kann euer Held schon 1 Schuss
schiessen!
Ein Schuss geht nun, wir wollen
aber meherer Schüsse!
(Insgesamt 5)
Dafür sind die Common Events
Schuss 2 bis Schuss 5 zuständig.
Wir müssen sie noch ausfüllen.
In diese Events kommt im Prinzip
dasselbe hin, nur mit dem Unterschied,
dass es nicht mehr die Variablen Schuss
1 X und Y sind, sondern bei
Common Event Schuss 2 "Schuss 2 X"
und "Y", bei Schuss 3 "Schuss 3 X"
und "Y",...
Wie dies aussieht, habe ich schon
im vorigen Kapitel demonstriert.
Soweit seit ihr fertig.
PS: Manche wollen auch Raketen
oder ähnliches, die automatisch
zielen. Kein Problem: Im Prinzip
ist es genau wie die Schüsse, nur
mit einem anderen Bild.
Wie das automatische Zielen
funktioniert, kommt in einem anderen
Kapitel.
Bis dahin:
Viel Spaß beim Ausprobieren,
wünscht euch André Productions!
Wenn ihr soweit seit, kann es ja
weitergehen!


Kapitel 4- Die HP-Anzeige

Also, beginnen wir mit der Anzeige
deiner Leben. Dies ist wohl das
wichtigste.
Ich würde euch raten, 9 Leben zu machen, da dies nur 1 Bild
kostet, und ihr Bilder brauchen werdet.
Am Anfang solltet ihr noch eine
Variable, nennen wir sie
Hero Leben, auf 9 setzen und
Call Event: Helden Leben.
Dies sorgt dafür, dass die
Leben am Anfang initialisiert
werden.
Nun kommt in den Common Events
ein neues Event mit Namen
Helden Leben.
Stelle es auf Call Event.
Da wir die Leben als Bilder
anzeigen lassen wollen, kommt:
Fork Condition:
If Variable (Hero Leben) = 9.
Bitte mit Else Case.
In diese Fork kommt nun,
damit die Leben auch angezeigt
werden, Show Picture: ID 7
(ein Bild für 9 Leben)
Set X = 80, Y = 225.
Dies sind meine Werte.
Ihr habt warscheinlich andere.
Probiert doch einfach mal.
In den Else Case kommt
nun wiederum eine Fork,
die diesmal abfragt, ob die
Variable Hero Leben 8 ist.
Wieder mit Else Case.
In die Fork ein Bild für
die 8.
In den Else Case eine Fork
die abfragt, ob die Leben 7
sind...
Dies macht ihr so weiter bis 0.
In die Fork bei 0 macht ihr
"Game Over".
Damit man bei 0 Leben "stirbt".
Wenn ihr wollt, das die Leben
sich etwas nach oben und unten
bewegen, geht so vor:
Legt ein neues Event(kein Common Event)
an. In dieses Event kommt:
Move Picture: ID 7 X= ?
Y= ? in etwa 0,2-3 sec.
Setzt für die Fragezeichen eure
Bilderwerte von den Leben
ein. Wollt ihr, dass sich die Leben
nach oben und unten bewegen,
so verändert die Variable Y
um +/- 12(in etwa) und setzt sie
statt dem normalen Wert ein.
Wollt ihr, dass sich die Leben
nach rechts und links bewegen,
verändert die Variable X um +/-
12(in etwa). Setzt diese statt dem
ursprünglichen Wert ein.
Nun macht wieder ein Move
Picture: ID 7 Befehl,
und lasst das Bild zu seinen
ursprünglichen Koordinaten zurück-
kehren.
Damit wäre auch dies geschafft.
Wenn dein Held dann Leben abgezogen
bekommt, Change Variable "Hero Leben"
-(wieviel Leben abgezogen werden
sollen) und dann Call Event: Leben.
Und macht am Anfang auch
Change Variable: Hero Leben (Set) 9
Call Event:Hero Leben.
Damit dein Held am Anfang Leben bekommt.
Wollt ihr auch die Gegner
HP anzeigen lassen, geht genauso
wie bei den Hero Leben vor.
Wenn die HP des Gegners über
9 sein sollen, dann müsst ihr das
Common Event "Gegner Leben"
(oder wie ihr es auch immer genannt
habt, dies ist ein neues Event für
die Anzeige der HP der Gegner)
wie folgt verändern:
Change Variable: "HP(einer)"
(Set) HP.
Habt ihr Zehner, auch die
Variable "HP(zehner) an die HP
anpassen, usw.
Nun Change Variable: HP(einer)
(mod) 10.
Die Zehner mod 100, usw.
Bei den Forks:
Erstmal Forks für die HP(einer)
genauso wie bei den Leben.
(nur die Variable HP(einer) einsetzen)
(natürlich andere ID´s bei den Pictures)
Dann Forks für die Zehner:
Im Prinzip genauso: nur die Variablen
HP(zehner) einsetzen, und statt
der Überprüfung, ob die Variable
9,8,7,6,... ist, 90,80,70,60,...
benutzen.
Bei den Hundertern dann 900,800,...
sowie andere Variablen.
Und so weiter!
Am Anfang wie die HP
"definieren", und immer,
wenn er welche verliert,
HP abziehen, und dann Call Event.
Wollt ihr, wie ich z.B.
die Namen der Gegner anzeigen lassen,
dann macht es in etwa genauso.
Bei dem Common Event
(z.B. Gegner Was tun?),
dann Fork Conditions, die abfragen,
wie der Wert der Variable(z.B. Gegnertun)
ist, und dann das entsprechende Bild
anzeigen lassen.
Das wars erstmal!

Kapitel 5- Die Zufallsauswahl der Attacken

Dies ist nicht sehr lang, also:
Falls wir es nicht schon getan haben,
legen wir ein neues Event mit Namen
"Gegner" an.
Wenn ihr verschiedene Gegner wollt,
dann macht ertsmal folgenden Befehl:
Change Variable: Gegner (Set)
Random 1 to (wieviel Gegner ihr wollt)
Nun legt ihr soviel neue Seiten
an wie viel Gegner ihr wollt.
Auf der 1. Seite der Gegner muss
die Variable above 1 sein, auf der
zweiten 2, auf der dritten 3, usw.
Bei diesem Event muss der Switch
"Anfang" an sein.
Nun macht ihr folgenden Befehl:
Bei dem 1. Gegner(falls ihr mehrere
gemacht haben solltet|danach dann
bei dem 2. Gegner, 3. Gegner,...)
Change Variable: Attacke (Set)
Random: 1 to (wieviel verschiedene
Attacken ihr wollt).
Nun wieder neue Seiten.
(neue Seiten=Anzahl der Attacken)
Und zwar gleich nach der Gegnerseite
mit dem aktuellen Gegner.
Bei diesen Seiten muss nun wieder
die Variable "Attacke" bei
der 1. Seite 1 sein, bei der zweiten
2,...
Dort kommen nun die Attacken der
Gegner hin, die hier noch nicht
behandelt werden.
Und alle Seiten bitte auf
"PARALELL PROCESS"!!!


Kapitel 6- Die normalen Gegner

Ich werde dir erklären, wie
du "normale Gegner"(wie bei meinem
Beipsiels KS der Übungsgegner:
Abolisher) erstellst.
Diese sind noch recht einfach.
Also:
Als erstes kommt ein Change Variable
Befehl: Gegner HP (Set) 20(z.B.)
Nun noch Call Event: HP Gegner.
Nun wieder 2 Change Variable:
Gegner X (Set) (bei mir:332)
und Y (Set) (bei mir RAndom 10 to 230)
Show Picture ID(was ihr noch frei habt)
Gegner 1 bei Variable Gegner X und Y,
sowie Change Switch: Überprüfe Schaden:
ON.
Nun kommt ein Cycle(oder Loop)
Befehl.
Und nun: Change Variable:
Gegner X (-) 1(ihr könnt auch andere
Werte nehmen, je nach dem wie schnell
er sein soll).
Damit sich der Gegner auch noch
bewegt: Move Picture(Gegner 1)
zu Variable X=Gegner X und Y=Gegner Y.
Zum Überprüfen, ob der Gegner
verschwunden ist, kommt eine Fork:
If Variable Gegner X (below)
(bei mir:-12).
Nun "Change Switch: Übeprüfe Schaden"
OFF.
Wenn ihr wollt, dass man dort noch
einLeben verliert, Change Variable:
Hero Leben (-)1 und Call Event
Leben.
In die Fork nun noch:
Break Cycle.
Ganz am Ende, damit das Bild auch
verschwindet: Erase Picture.
Noch etwas für Endgegner:
Wenn ihr erst normale Gegner
machen wollt, und dann nach einer
bestimmten Anzahl Gegner, der Endgegner
erscheinen soll, dann macht bei jedem
Gegner am Ende noch Change Variable:
Gegner Besiegt (+)1 und in der Zufalls-
gegnerauswahl am Anfang eine Fork:
If Variable: Gegner Besiegt:
Above (wieviel GEgner man besiegen
muss), und in die Fork:
Change Switch: Boss erscheint ON.
Ganz am Ende eine neue Seite anlegen,
wo der Switch Boss erscheint On sein
muss. Dort dann das Auftauchen des
Bosses und dann wie bei einem
gewöhnlichen Gegnern vefahren, nur
mehr HP...
Das war´s auch schon!


Kapitel 7- Die Attacken der Gegner

Dies ist das wohl ziemlichst
schwierigste im Spiel.
Hier kannst du viel nach deinen
Wünschen gestalten. Ich werde es
dir mal so gut wie es geht erklären.
Also:
Für die Animationen, wenn die Gegner
sich bewegen(z.B.Arme hochstrecken,
Füße einziehen usw.), brauchst du
nicht wie in manchen Spielen,
ein Haufen Animationen, sondern
es reichen auch 2(z.B.: Arme unten
und Arme oben). Bei größeren Bewegungen
kann es auch mal 1 Zwischenanimation
sein. Probier einfach mal aus,
wie es aussieht. Zwischen die
Animationen sollte noch ein Wait-Befehl.
Ehe ich es vergesse:
Das erscheinen der Gegner
kommt (meistens) bei den Attacken
hin(ihr könnt aber auch selber
entscheiden, wo ihr das Auftauchen
erstellt, beachtet aber, das der
Gegner in der Regel nur
EINMAL erscheint).
Und speichert den Standort
der Gegner in Variablen!!!
Wenn er sich oben-unten
bzw. rechts-links bewegen
soll, ein neues Event mit
Parralel Process und einem
Switch(den ihr On stellt, solange
er sich bewegen soll).
In dieses Event kommt:
Change Variable:
Hero X +(wenn er anch rechts soll)
-(wenn er nach links soll) 1-5
oder Hero Y +(wenn er nach unten soll)
-(wenn er nach oben soll) 1-5.
Nun ein Move Picture Befehl,
der den Gegner zu den neuen
Variablen bewegen lässt.
Nun eine Fork:
If Variable:
Hero X above(wenn er sich nach rechts
bewegt), below(wenn er sich nach links
bewegt) oder Hero Y
above(wenn er sich nach unten
bewegt), below(wenn er sich
nach links bewegt).
Nun einen Wert eintragen wo er
anhalten soll.
Die Fork mit Else Case.
In die Fork kommt nichts,
in den Else Case "Goto Label 1"
Den Label 1 vor den Change Variablen
Befehl machen.
Unter die Fork dasselbe
mit der entgegengesetzten Richtung.
Diesmal wird aus "Goto Label 1"
"Goto Label 2", und den Label
2 vor der letzten Change Variable.
PS: Statt den Labels lassen
sich auch Loops verwenden(in die
Forks dann: Break Cycle)
Und jetzt zurück zu den Attacken.
Wenn der Gegner Schaden erleiden
kann, müsst ihr einen Switch(z.B.
überprüfe Schaden) auf ON stellen.
Wenn er keinen mehr erleiden
soll, den Switch wieder auf Off
stellen.
Wenn der Held verwundet werden
soll, einen Switch(z.B. Hero Schaden?)
auf On stellen. Wenn er keinen mehr
erleiden soll, den Switch wieder Off.
Und jedes "Bild", von dem
der Held verwundet werden kann,
in Variablen speichern(Position),
und so wie die Gegner bewegen lassen
was ich euch vorhin erklärt habe).
Am Ende der Attacke
den Switch, welcher auf der Seite
für die Attacke On sein muss,
auf Off stellen,
so wie vorher bei dieser
Attacke verwendete Switches
gegebenfalls auf Off und Variablen
auf 0 stellen.
Der Rest ist euch überlassen!

Kapitel 8- Die Schadensüberprüfung Teil 1: Der Code

Ein paar Worte vorweg:
Nun wird es wieder einfacher.
Nun sollte man bei dir Gegner
schon Attacken ausüben sehen,
nur die Angriffe verwunden keinen.
Dafür ist dieses Kapitel!
Dies ist erstmal nur
für die Schadensberechnung,
wenn der Gegner am ganzen Körper
verwundbar ist.
Doch erstelle dies erstmal.
Man braucht dann nur geringfügige
Änderungen, wenn man will, dass der
Gegner nur an einer ganz bestimmten
Stelle verwundbar ist.
Dieses Kapitel ist nur für den
"Code", woher man die Zahlen bekommt
, die man braucht, später.
Ps: Dies ist auch für deinen
Schaden(des Helden).
(bei der Schadensüberprüfung
wird der Schaden für ein Viereck
überprüft, was von den tatsächlichen
Werten kaum abweicht)
Nun also los.
Erstellt ein neues Event
(oder eine neue Seite in einem Event,
wo ihr die anderen Seiten gerade nicht
braucht). Stellt es auf Parallel
Process und es muss der jeweilige
Switch für die Schadensüberprüfung
On sein.
Erstmal die Überprüfung ob du Schaden
bekommst.
Change Variable: Trefferzone X1
(und) X2 (Set) Hero X,
Trefferzone Y1 (und) Y2 (Set) Hero Y.
Jetzt kommt Change Variable:
Trefferzone X1 -(den Wert den ihr
ermittelt habt,später(WIES)),
Trefferzone X2 +(WIES),
Trefferzone Y1 -(WIES) und
Trefferzone Y2 +(WIES).
Und nun 4 Forks:
If Variable(Koordinate X von
dem Bild, dass den Helden treffen
soll) above Trefferzone X1,
If Variable(Koordinate X von
dem Bild, dass den Helden treffen
soll) below Trefferzone X2,
If Variable(Koordinate Y von
dem Bild, dass den Helden treffen
soll) above Trefferzone Y1 und
If Variable(Koordinate Y von
dem Bild, dass den Helden treffen
soll) below Trefferzone Y2.
Alle ohne Else Case und
die nächste immer in die
darauffolgende.
In die letzte Fork nun:
Change Variable: Hero Leben
(-) 1 und Call Event: Hero Leben.
Wenn ihr wollt, könnt ihr noch eine
Treffanimation machen. Ihr müsst aber
nicht. Wenn ihr wollt, dass man von
der Attacke nur einmal getroffen
werden kann, müsst ihr noch
Change Switch(den Switch für
die jeweilige Schadensüberprüfung)
auf Off stellen.
Auf jeden Fall empfiehlt sich ein
kurzer Wait-Befehl(ca. 0,2 sec),
damit der Held nicht durchweg
getroffen wird.
Nun zu der Überprüfung,
ob der Gegner getroffen wird.
In etwa müsst ihr es genauso
wie eben machen, aber mit
folgenden Veränderungen:
Ertsmal muss ein anderer Switch
aktiv sein.
Die Variablen Trefferzone
X1 und 2, Y 1 und 2 müssen an
die Variablen von dem Bild
der Attacke X bzw. Y angepasst werden.
Bei den Forks statt den Variablen
des Bildes was dich treffen soll,
Schuss 1 X oder Y nehmen.
Statt Change Variable Hero Leben
(-) 1 Change Variable Gegner HP
(-) 1(oder wieviel ihm abgezogen
werden soll).
Und dann natürlich Call Event
Gegner HP statt Hero Leben.
Diese 4 Forks nun noch mit
Schuss 2 X und Y bis Schuss 5
X und Y sowie,wenn ihr Raketen
oder ähnliches habt, Rakete X und Y.
Das war auch schon alles!

Kapitel 9- Die Schadensüberprüfung Teil 2: Die Berrechnung

Also, du brauchst dafür
irgendein Zeichenprogramm
(z.B. Psp) das die *.png Dateien
öffnen kann.
Erstmal mache ich die Berechnung,
wenn der Gegner überall verwundbar
sein soll.
Dafür brauchst du nur die Bildgröße
in Pixeln. Das Bild sollte optimal
"beschnitten" sein, d.h.:
rechts, links,unten, oben sollte
nichts frei sein.
Nehmen wir als Beispiel eine Bildgröße
von 57x85. Entweder rechnest du
im Kopf oder mit dem Tachenrechner.
Du teilst beide Werte durch 2,
bei uns würde dann 28,5
und 42,5 rauskommen.
Der erste Wert ist für beide
(+/-) Trefferzone X Werte,
der 2. Wert für die Y Werte.
Wenn ,5 rauskommt, runde bei
dem einen ab und bei dem anderen
auf. Bei uns wären die Befehle so:
Change Variable: Trefferzone X1
(-) 28 und X 2(+) 29, sowie:
Trefferzone Y1 (-) 42 und Y2(+) 43.
Das war alles.
Kommen wir nun dazu, dass ein
Gegner nur an bestimmten Stellen
treffbar ist.
Dies ist auch nur ein wenig anders.
Als erstes öffnest du das Bild mit
einem Grafik-Programm.
Nun markierst du dir mit einer gut
sichtbaren Farbe den Bereich, wo
er verwundbar sein soll(Viereck,
kein schrägen Linien).
Nun gehst du bei dem markierten
Kästchen mit der Maus auf den linken
Rand und schaust dir den X-Wert
(meistens unten links, der linke Wert)
an.
Dasselbe nochmal mit dem rechten
Rand.
Nun gehst du mit der Maus an den
oberen sowie unteren Rand des
Kästchens und schaust dir den Y
Wert an(der rechtere Wert).
Mehr Werte brauchst du ertmal
nicht, ausser der Grösse des
Bildes(in Pixeln).
Nun teile die X und Y Grösse des
Bildes durch 2(wie oben).
Nun wird es ernst:
Wenn der linke Rand des Kästchens
links vom Punkt liegt, so rechne
X Koordinate des Punktes - der X
Koordinate des linken Randes und
bei der Schadensüberprüfung
X1-(der ermittelete Wert).
Wenn die Kante auf dem Punkt liegt,
X1 +0(oder lass den Befehl weg).
Wenn sie rechts neben dem Punkt
liegt, so rechne: X Kante - X Punkt.
Bei der Schadensüberprüfung:
X1 + (der ermittelte Wert).
Dasselbe mit der rechten Kante,
nur bei der Schadensüberprüfung dann
X2 nehmen.
Wenn der obere Rand des Kästchens
oberhalb vom Punkt liegt, so rechne
Y Koordinate des Punktes - der Y
Koordinate des oberen Randes und
bei der Schadensüberprüfung
Y1-(der ermittelete Wert).
Wenn die Kante auf dem Punkt liegt,
Y1 +0(oder lass den Befehl weg).
Wenn sie unterhalb neben dem Punkt
liegt, so rechne: Y Kante - Y Punkt
und bei der Schadensüberprüfung:
Y1 + (der ermittelte Wert).
Dasselbe mit der unteren Kante,
nur bei der Schadensüberprüfung dann
Y2 nehmen.
Und das ihr mir das Bild ja nicht
abspeichert. Es ist nur als
Gedächtnisstütze gedacht.
Das wäre eigentlich alles.

Kapitel 10: Die automatischzielenden Raketen

Ich werde dir jetzt nun die
Raketen erklären. Aber es ist nicht
leicht. Du solltest vorher es erstmal
ohne Raketen machen und dann am Schluss
Raketen reinbringen.
Bereit?
Los!
Ready? GO!
Wir machen es genauso wie bei den
Schüssen. Erstmal mit einer
Rakete, weil es Bilder spart und
sonst vielleicht zu einfach werden
könnte(im Spiel, nicht das Script).
Nun brauchen wir nur noch ein Common
Event, z.B. Raketenschiessen.
Dieses Common Event erkäre ich euch
nun(bei dem Event muss ein Switch
(Rakete schiessen z.B.) On sein).
Als erstes solltet ihr bei den
Gegnern, wenn einer erscheint, einen
Switch, z.B. Rakete auf Gegner 1
auf On schalten, und wenn
er besiegt ist, wieder auf Off.
Bei anderen Gegner dann auch ein anderer
Switch. Ansonsten wüssten wir nicht
WANN die Rakete WO hinzielen soll.
Aber nun zu den Common Event.
Als erstes ein Play Sound
Effect für den Schuss(kann
auch weggelassen werden).
Und nun: Wie auch bei den
Schüssen, Rakete X (Set) Hero X und
Rakete Y (Set) Hero Y.
Nun Show Picture Rakete (Variablen
Rakete X und Y).
Jetzt kommt: Fork Condition:
If Switch(Rakete auf den 1. Gegner)
On, in den Else Case die selbe
Fork, nur ein anderer Switch
(z.B. Rakete auf Gegner 2).
Nun in diesen Else Case wieder
eine Fork...
Macht dies bis zum letzten Gegner,
in die letzte Fork auch ein Else Case.
Erstmal zum letzten Else Case:
Change Variable Rakete X
+5.
In die einzelnen
Forks kommt: Am Anfang ein Loop, dann
Change Variable (Rakete X) +5.
Falls der Gegner am ganzen
"Körper" treffbar sein soll,
könnt ihr diesen Schritt auch über-
springen. Ansonsten kommt:
Change Variable Prüfe Raketentreffer
(Set) (des jeweiligen Gegner Y
Position). Change Variable
Prüfe Raketentr. +/-
(der von euch errechnete Wert,
komm ich am Ende nochmal dazu).
Nun geht es ganz normal weiter:
Nun kommt eine Fork mit Else Case:
If Variable Rakete Y (bigger)
(des jeweiligen Gegners Y).
In den Else Case wieder eine Fork
mit Else Case:
If Variable Rakete Y (same)
(des jeweiligen Gegners Y).
In den Else Case wieder eine Fork
ohne Else Case:
If Variable Rakete Y (smaller)
(des jeweiligen Gegners Y).
In die 1. Fork:
If Variable Position
(same) 1,
und mit Else Case.
In diese Fork nichts, aber in den
Else Case:
Show Picture: ID(der Rakete)
Rakete schräg oben.
(Variablen Rakete X und Y).
Zu dem Bild:
Öffnet das normale Bild der
Rakete mit Psp(oder einem anderen
Programm) und dreht es um 45 Grad
nach links und um 45 Grad nach rechts
für das Bild Rakete schräg unten
(später verwendet).
Nun kommt in die Fork
noch: Change Variable
Position (Set) 1 und
Rakete Y - 1(in etwa).
In die 2. Fork(die Fork mit
If Variable Rakete Y same
(des jew. Gegner Y):
If Variable Position
(same) 2,
und mit Else Case.
In diese Fork nichts, aber in den
Else Case:
Show Picture: ID(der Rakete)
Rakete(normal).
Nun kommt in noch: Change Variable
Position (Set) 2.
In die 3. Fork(die Fork mit
If Variable Rakete Y smaller
(des jew. Gegner Y):
If Variable Position
(same) 3,
und mit Else Case.
In diese Fork nichts, aber in den
Else Case:
Show Picture: ID(der Rakete)
Rakete(normal). Nun kommt noch rein: Change Variable
Position (Set) 3 und Rakete Y +1
(in etwa).
Nun kommt am Ende der Fork
If Variable Rakete Y (bigger)
(des jeweiligen Gegners Y) folgendes:
Move Picture: ID(der Rakete)
(Variablen Rakete X und Y).
Nun kommt folgende Fork:
If Variable Rakete X (above)
325(in etwa).
In die Fork:
Change Variable Rakete X und Y
(Set) 0, Change Switch Schiesse Rakete
Off und Break Cycle(oder Loop).
In die anderen Fork dasselbe,
nur dann eben mit anderen
Switches/Variablen.
Jetzt komme ich nochmal
auf Berechnung des Wertes,
wenn die Rakete einen Gegner
an einer bestimmten Stelle treffen
soll.
Im Prinzip ist es auch nichts
anderes als die Berechnung der
Schadensüberprüfung.
Also, als erstes öffnen
wir den "Gegner" mit einem
Zeichenprogramm.
Nun markiert ihr euch wieder
den Mittelpunkt des Bildes.
Also den Punkt mit den Koordinaten:
X= X-Größe des Bildes : 2,
Y=Y-Wert des Bildes : 2.
Das wäre bei mir:
Nun markiert ihr euch eine
Y-Achse, auf die sich die Rakete
fixieren soll(dabei interessiert
nur der Y-Wert)(es reicht auch ein
Punkt).
Nun schreibt ihr euch den
Y-Wert des Punktes und der
Achse auf.
Wenn der Y-Wert der Achse
niedriger als der Y Wert des
Punktes ist, rechnet den
Punkt - den Achsen Y-Wert.
Dann lautet der Befehl:
Change Variable: Prüfe Rakete
-(der ermittelte Wert).
Wenn die beiden Koordinaten
gleich sind, lasse den
Befehl einfach weg,
oder +0.
Wenn der Y-Wert der Achse höher
als der Wert des Punktes, rechne:
Achse - Punkt Y-Wert.
Dann lautet der Befehl:
Change Variable: Prüfe Rakete
+(der ermittelte Wert).
Damit wäre eigentlich
alles geklärt.
Noch etwas:
Wundert euch nicht, wenn plötzlich
ein/e neue/r Switch/Variable
auftaucht. Dann erstellt ihn/sie
einfach.
Damit gebe ich zurück zum Studio.

Kapitel 11- Der Schluß

1. Also, das Ende
ist eigentlich euch überlassen.
Am Anfang solltet ihr
alle Switches und Variablen

2. die ihr verwendet habt(sofern
ihr sie nicht mehr braucht)
auf Off bzw. auf 0 stellen.

3. Ich würde den Helden noch mit
Move Picture in die linke
obere Ecke schicken und
verschwinden lassen.

4. Doch wie gesagt, es ist
euch überlassen!!!

-----------------------------------------------------------------

am besten lest ihr es euch mal in ruhe durch