collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: Verschiedene Tutorials by Neoxit  (Gelesen 3348 mal)

Neoxit

  • Gast
Verschiedene Tutorials by Neoxit
« am: März 31, 2009, 17:52:23 »
Erstmal ein schönes Hallo an alle aus dem RPG Maker VX Forum!

Erstmal möchte ich mich kurz vorstellen bevor es zum Tutorial abteil kommt.
Mein name ist Maik bin gerade 19 geworden (soo alt schon xD) und ich komme aus der nähe Hamburg. Ich beschäftige mich schon seit einigen Jahren mit C++, BlitzBasic / Blitz3D so wie den RPG Maker Versionen 2000 bis VX.

Soviel eben zu mir =)

Nun kommen wir zu meinem Tutorial Bereich in dem ich euch in mehreren Teilen einige Dinge des RPG-Makers VX näher bringe. Dieses Tutorial eignet sich sowohl für Neulinge als auch für Fortgeschrittene.

Nun, lange rede kurzer Sinn, kommen wir zum ersten Teil meines Tutorials:

Spoiler for Hiden:
Zitat

Zeit-System


In dem Tutorial geht es darum, ein "Zeitsystem" in eure Spiele einzubauen. Ihr könnt die Zeit auf verschiedene Art und Weise „erfahren“ sei es so, als wenn ihr Ingame auf die Uhr schaut oder ob ihr über Tastendruck die Zeit abfragt. Ihr könnt auch selber einstellen, wie schnell eure Zeit ingame verfliegt. Ob ihr es nun nach „Realer“ Zeit macht oder 5 minuten wie ein Tag ist.

Aber seht selbst:

Erstellt ein neues Projekt (so wie ich es immer mache) welches ihr „Testinsel“ oder sonst wie nennt.
Auf dieser „Testinsel“ könnt ihr die ganzen sachen erstmal Testen, bevor ihr sie in euer Spiel einbaut.

Hier ist meine Insel:



Ich habe nicht aufs Mapping geachtet, dabei geht’s auf dieser Insel ja nicht ;)
(sieht man aber auch ^^)

Sooo nun überlegen wir mal, was man für eine Zeitanzeige benötigt.
Unser Programm (oder im RPG-Maker fall: „Event“) braucht im Grunde nur Sekunden, Minuten und Stunden. (Für das Grundlegende Event)
Also deklarieren wir erstmal die 3 Variablen:

zeit_sekunden
zeit_minuten
zeit_stunden


Wenn ihr wollt könnt ihr euch natürlich noch Tage, Monate und Jahre hinzufügen.



So nun brauchen wir unser erstes Common-Event welches wir auf „Parallel-Prozess“ stellen.
Dieses Event nennen wir „Zeitberechnung“ und geben den Switch „Initialisierung“ (so nenne ich meinen „Startswitch“ immer ihr könnt euch natürlich selber aussuchen ab wann eure Zeitrechnung beginnt.



So nun müssen wir dem Event klar machen, wie viel „Echtzeit“ EINE deiner Ingame Sekunden entspricht. An dieser Stelle könnt ihr also entscheiden wie lange eine Sekunde Ingame dauert.

Also fügt in das Event folgenden Command hinzu:

WARTEN – (wait)

und sagen dem Programm das wir 30 Frames (eine halbe Sekunde) „warten“ sollen, bevor wir eine Ingame-Sekunde erhöhen.



Nun müssen wir dem Programm natürlich auch noch sagen, dass eine „Ingame-Sekunde“ vergangen ist.

Also fügen wir das nächsten Command ein:

Variable ändern – (change variable)

Die zu ändernde Variable ist die von uns angelegte „zeit_sekunden“ und addieren (+) um 1!
(Die 1 steht in diesem Fall für die Sekunde)

So sollte es aussehen:



Soweit so gut, der erste schritt zu Zeit wäre getan. Gratulation! ;)

Denken wir doch mal nach, wie viele Sekunden hat denn eine Minute?
60 Riiiiiichtig :D

Also müssen wir dem Programm folgendes sagen:

Wenn 60 Sekunden vergangen sind, dann ist 1 Minute vergangen, und die Sekunden fangen wieder von 0 an.

Und das machen wir nun:

Bedingung – (In englisch hieß es glaube ich If - / else oder so ;) )

Hier stellen wir die Variable ein, die die Minute auslöst. Also die Variable zeit_sekunden.
Den Operator stellen wir auf „Größer-Gleich“ ( >= ) und die Konstante auf 60.
(Der „Ansonstenfall“ muss nicht aktiviert sein! Habs auf dem Bild vergessen auszustellen xD)



Ein bisschen übersichtlicher heißt es nun: Wenn zeit_sekunden größer oder gleich 60 ist, dann...

und das dann fügen wir nun ein!

Variable ändern (change variable)

Und addieren (+) den Wert zeit_minuten um 1.



Wer nun schlau ist, wird sich fragen: „Die Sekunden laufen doch immer noch weiter, und dank des Größer-Gleich Operator wird die Minute doch ebenfalls mit jeder Sekunde erhöht.“

Richtig gedacht! Deshalb müssen wir nun die Sekunden wieder auf 0 Setzen damit die Sekunden wieder von vorne anfang kann.

Variable ändern (change variable)

und setzten den Wert zeit_sekunden gleich (=) 0.



So im großen und ganzen sind wir fertig. Für JEDE weitere Zeiteinheit können wir die gesamte „Bedingung“ Kopieren und in dieses Event einfügen also:




Nun ändert ihr noch die Werte alle ab.
Beim zweiten erhöht ihr also sobald 60 Minuten vergangen sind die Stunde um 1 und setzt die Minuten zurück auf 0.

Und beim dritten setzt ihr sobald 24!! (da der Tag ja nur 24 Stunden hat) Stunden vergangen sind auf 0. Wenn ihr dies noch auf Tage erweitern wollt erhöht ihr den Wert „Tage“ um 1. Dieser ist in diesem Tutorial nicht vorhanden.

So sollte es dann aussehen:




Sooooo! Nun sind wir doch gespannt ob es alles so geklappt hat wie beschrieben.
Wir erstellen auf der „Testinsel“ ein Event um die Zeit abzufragen. In meinem Fall habe ich ein Schild hingesetzt.

Nennt es Uhr oder Uhrzeitschild oder wie auch immer. Setzt die Priorität auf „Genau wie Spieler“ und die Aktivierung auf „Bestätigungstaste“.

Nun geben wir noch eine Textnachricht aus die angezeigt werden soll wenn wir auf das Schild klicken. Und Schreiben rein:

Es ist derzeit:
\v[0003]:\v[0002]:\v[0001] Uhr!

So wie es auf dem Bild steht.



Wundert euch an dieser Stelle bitte nicht über dieses „Yen“ Zeichen. (Das Y mit den strichen duch)
Da ich die Deutsche DLL nutze ist dies ein Anzeigefehler und das „Y“ entspricht bei mir dem Backslash „\“. Also für alle anderen gilt: Nutzt den Backslash!

Noch eben die Erklärung wofür „\v[0003]“ z.b. Steht: Wenn ihr dies so eintragt wird an dieser Stelle im Text die Variable angezeigt die in der Datenbank auf platz 0003 steht. In unserem Fall die Stunden. ( \v steht für \Variable und [XXXX] für den Index der Variable) ;)

So nun müsst ihr mit irgend einem Event nur noch den (in meinem Fall Initialisierungs-switch) anschmeissen. Das der Timer Prozess funktioniert.

Wollen wir doch mal Testen!



Schaut gut aus! ;) Ihr könnt natürlich auch die Sekunden komplett rausnehmen. Dann ändert ihr im Common-Event einfach den wert nach dem „Wait“ befehl auf zeit_minuten. Dann vergeht alles in allem etwas schneller ;)

In meinem nächsten Tutorial werde ich euch den Tag und Nacht Zyklus erklären, den man mit Hilfe unseres eben gemachten Zeitanzeige-Systems ganz einfach umsetzen kann.

Bis dahin Ceeya soon ;) Euer Neoxit aka Maik ;)

P.s.: Dies war mein aller erstes im Leben geschriebenes Tutorial und ich wünsche mir von euch gewisses Feedback ;)
Danke an alle ;)
--- Zeit System


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


Spoiler for Hiden:
Zitat

Tag-/Nacht Zyklus


So hier ist mein versprochener zweiter Teil des Tutorials in dem es darum geht, einen Tag und Nacht Zyklus in das Spiel zu implementieren der auf unserem (im ersten Teil des Tutorials) entwickelten Zeit-System basiert.

Fangen wir an!

Also wir werden nun folgendes machen:
Wir werden ein zweites Common-Event erstellen in dem erneut überprüft wird welche Zeit wir haben und demnach die Screentönung ändern. Wir benötigen also insgesamt 5 Bedingungsabfragen, die wie folgt aussehen:

Wenn zeit_stunde = 0 dann färbe den Screen Dunkelblau          (Nacht)
Wenn zeit_stunde = 5 dann färbe den Screen Orange                 (Morgengrauen)
Wenn zeit_stunde = 8 dann färbe den Screen Weiß                    (Tag)
Wenn zeit_stunde = 16 dann färbe den Screen Rötlich               (Abenddämmerung)
Wenn zeit_stunde = 20 dann färbe den Screen Dunkelblau        (Nacht)

Im Grunde ganz einfach oder? Ist es auch wenn man bereits unser zuvor entwickeltes Zeiten-System hat.

Also erstellen wir unser Common-Event welches wir „Tag/Nacht“ nennen.
Stellen es auf Parallel Prozess und nehmen als Aktivierungsswitch ebenfalls unseren Initialisierer.



Fangen wir doch sofort an die Bedingung einzufügen das der Bildschirm Dunkelblau gefärbt werden soll wenn zeit_stunde == 0 (also 0 Uhr (Nachts halt ^^)) beträgt.



Nun soll sich natürlich der Screen auch färben sobald die Uhr 0 anzeigt.
In dem Fall Dunkelblau. Wir nehmen also Folgende Werte: -255,-255,-50,0
Diese stehen für:

Rot:    -255
Grün:  -255
Blau:   -50
Grau:   0

Und nehmen ein Fade (Übergang der Farbe) von 3 Sekunden also 180 Frames.



Im Grunde haben wir das Grundgerüst schon wieder fertig!
Nur noch (wie oben bereits genannt) 4 weitere Kopien vom bisherigen anfertigen:



Die neuen Werte für die verschiedenen Tageszeiten abändern:



Und Voilâ! Euer Tag/Nacht System ist fertig!

Testet es doch einfach mal indem ihr im Common-Event „Zeitberechnung“ statt die Sekunden hoch zu zählen, direkt die Minuten hoch zählen zu lassen und diese auf ca. 5 Frames zu setzen.

Hier nochmal zur schnellen Erklärung:

VORHER:



NACHER:




Soooo dann wollen wir es doch einmal Testen oder nicht?
So sollte es dann aussehen:


Nacht zwischen 20:00 und 5:00 Uhr:


Morgengrauen zwischen 5:00 und 8:00 Uhr:


Tag zwischen 8:00 und 15:00 Uhr:


Abenddämmerung zwischen 15:00 und 20:00


Schaut nun nicht so Atemberaubend aus weil die Farben nicht allzu optimal waren die ich genutzt habe. Aber damit könnt ihr ja ein bisschen rumspielen bis ihr die Farben-Tönungen gefunden habt, die in euer Spiel passen.

Genau so könnt ihr natürlich auch noch die Zeiten anpassen, wann genau gefaded werden soll.

Das war es auch dann schon wieder von mir. Ich hoffe nach wie vor das es euch gut gefallen hat und das es leicht verständlich war.

Im nächsten Tutorial wird es von mir wohl eine Eventprogrammierung geben, wo ihr einen Beliebigen Baum fällen könnt, entsprechendes Holz bekommt und vllt schweife ich noch so weit aus das ich einen „Baum Fällen“-Skill einbaue, welcher bestimmt wie viel Holz und welche Art von Holz ihr abbauen könnt. Und wenn ich dann noch Zeit habe, werde ich auch wieder auf unser Zeit-System zurück greifen und auch Tage berechnen lassen, so dass die gefällten Bäume auch wieder Nachwachsen.

Wenn ich hier auf viel Feedback treffe, das ihr ein solches Tutorial gerne sehen wollt, dann werde ich es weitaus größer ausfallen lassen. 

Und wenn nicht, dann werde ich es beim simplen Bäume fällen und Holz bekommen belassen ;)
Bis dahin wünsche ich euch viel Spaß mit den Tutorial!

Euer Neoxit aka Maik ;)
--- Tag/Nacht - Zyklus




Spoiler-Tags hinzugefügt für bessere Übersicht :)
~Kyoshiro
« Letzte Änderung: Mai 12, 2009, 10:04:13 von Neoxit »

Re: Verschiedene Tutorials by Neoxit

Offline Klex

  • CoAD - Tiles Publisher
  • VX-Kenner
  • ****
  • Beiträge: 561
    • Klex Blog
Re: Verschiedene Tutorials by Neoxit
« Antwort #1 am: März 31, 2009, 18:18:00 »
Punkt genau dieses "System" benutze ich schon seit dem ich denken kann.
Aber schön, dass es mal jemand erklärt hat :). Schön leicht mit Bildern gemacht, finde ich gut.
~~Bilderbuchkind~~
Habe mir eigenst dafür einen Skript anfertigen lassen, kannste ja vielleicht ins Toturial aufnehmen.

http://www.rpgmakervx.net/index.php?showtopic=8849

Grüße Klex

« Letzte Änderung: März 31, 2009, 18:18:42 von Klex »

Re: Verschiedene Tutorials by Neoxit

Offline Frost

  • Eventmeister
  • ***
  • Beiträge: 346
Re: Verschiedene Tutorials by Neoxit
« Antwort #2 am: März 31, 2009, 19:13:54 »
Jopa. Ist sehr verständlich erklärt. Denke, das kann jeder verstehen, auch wenn man keine Ahnung von Variablen und sowas hat. Muss man sichs eben öfter durchlesen.
Also ist auf jeden Fall n gutes Tutorial!
Ich hätte jedoch die Bedingungen verschachtelt. Aber macht ja keinen (bemerkbaren) Unterschied.
http://fernsehkritik.tv/ - Macht dem niveaulosen Fernsehen ein Ende!

Re: Verschiedene Tutorials by Neoxit

Speedy

  • Gast
Re: Verschiedene Tutorials by Neoxit
« Antwort #3 am: April 17, 2009, 19:27:56 »
Cooles Common Event Gefällt mir gut durch diese Technik hab ich endlich geralllt wie man auch den Tag/Nacht modus macht =) Bin gespannt auf die nächsten Tuts von dir  =)

Re: Verschiedene Tutorials by Neoxit

Offline m!cHi

  • Ralph
  • *
  • Beiträge: 3
Re: Verschiedene Tutorials by Neoxit
« Antwort #4 am: April 20, 2009, 15:05:12 »
naja bevor ich diesen Tag/Nacht Modus in mein Spiel tuhe wollt ich nomma nachfragen
ob es sich dann auch in den Häusern färbt (weil es sonst n bisschen kake wär)
aber wenn ich ma überleg kann ich ja in jedes Haus eine Weitere Bildschirmfärbung tun^^
nur ich weiss nich was der RPG Maker dann macht entweder nimmt er die Common Eventfärbung oder das mit dem Paralellen prozess im Haus ??????


« Letzte Änderung: April 20, 2009, 15:07:58 von m!cHi »
Wer länger lebt ist kürzer tot.
(xD)

Re: Verschiedene Tutorials by Neoxit

Offline Klex

  • CoAD - Tiles Publisher
  • VX-Kenner
  • ****
  • Beiträge: 561
    • Klex Blog
Re: Verschiedene Tutorials by Neoxit
« Antwort #5 am: April 21, 2009, 14:31:18 »
@ m!cHi

Es geht viel einfacher. Das Zeitevent geht nur an, wenn der Switch 001 Initalisierung an ist.
Um es für ein Haus z.b. kurz mal auszuschalten, machst du einfach bei dem Betreten des Hauses den Switch aus,
gibst dem Haus deinen Screenton und wenn du das Haus wieder verlässt machst du den Switch an. Ende

Grüße Klex

Re: Verschiedene Tutorials by Neoxit

Offline m!cHi

  • Ralph
  • *
  • Beiträge: 3
Re: Verschiedene Tutorials by Neoxit
« Antwort #6 am: April 21, 2009, 15:15:28 »
ok danke^^
Wer länger lebt ist kürzer tot.
(xD)

Re: Verschiedene Tutorials by Neoxit

Neoxit

  • Gast
Re: Verschiedene Tutorials by Neoxit
« Antwort #7 am: Mai 08, 2009, 19:45:26 »
@ m!cHi

Die Frage war in der Tat nicht Irellevant ich werde sie wohl noch beherzigen und ins "update" schreiben.

Genau für solche Situationen wie z.b. das Betreten eines Hauses sollte man den 001:Initialisierung kurz auf 0 stellen.
Man kann natürlich noch alle male am System feilen aber das Grundprinzip sollte jedem klar sein ;)

@ Klex

Danke das du es einmal Erläutert hast ;) Mit Erlaubnis würde ich gerne dein Zitat ins Tutorial aufnehmen damit in Zukunft diese Frage nicht
mehr auftaucht.

@ All:

Ich komme immoment ein bisschen in verzugzwang durch meine bevorstehende Ausbildung als Autolackierer ^^
Werde nämlich demnächst mit meiner bezaubernden Freundin zusammenziehen *happy*.

Gut interessiert hier wohl eh keinen ^^ wollte es halt nur mal gesagt haben :P

Was ich damit sagen will ist einfach nur das es etwas dauern kann bis das nächste Tutorial / System implementiert wird ;)

Bis dahin happy Progging ;)

Re: Verschiedene Tutorials by Neoxit

Offline syuka

  • RTP-Mapper
  • *
  • Beiträge: 20
  • blubb°°°°
Re: Verschiedene Tutorials by Neoxit
« Antwort #8 am: Februar 10, 2010, 16:18:14 »
könntest du die bilder vileicht wieder hochladen danke

Re: Verschiedene Tutorials by Neoxit

Offline Ðeity

  • No Pain, no gain!
  • Administrator
  • Eventmeister
  • ****
  • Beiträge: 427
  • No Pain, no Gain!
    • Deity-VX
Re: Verschiedene Tutorials by Neoxit
« Antwort #9 am: Februar 10, 2010, 16:26:43 »
Du wirst höchstwahrscheinlich kein Feedback von dem Poster erhalten, denn sein letzter Beitrag wurde fast vor einem Jahr geschrieben. ^^

Aber ganz erlich ich finde der Text erklärt es ziemmlich präzise und meiner Meinung nach reicht dieser auch. ;)

Was verstehst du denn nicht, vllt. kann jemand anderes dir helfen?

MfG
Deity



Re: Verschiedene Tutorials by Neoxit

Offline Kvote

  • Angehender Tutorinator :D
  • Mr. MACK-Tile
  • ***
  • Beiträge: 219
  • Change the Set, change the World!
    • My Senseless World - Enter it!
Re: Verschiedene Tutorials by Neoxit
« Antwort #10 am: März 04, 2010, 18:15:27 »
Waaaaah ich kanns nich glauben Q_Q

Also.....also ähm ich ...waaah Genial....ich weis nich wieso ich so lang gebraucht hab das zu finden!

Okay jetz mal ernsthaft: ich finds klasse :)  Und ich bin auch dankbar das ich das jetzt auch mal
(ohne ein Pro-Scripter zu sein) sowas hinbekomme...ich war zwar auf dem richtigen Weg durch rumprobieren...aber es hat immer wieder Fehler gegeben in meinen Versuchen...tja und dein Tut sollte die auch ausgemerzt haben...oder so..naja bisher läuft es genau so wie ich das eigentlich dauernd haben wollte :D

Danke für reinstellen und ... ja ..klasse halt :)

(auch wenn mein Feedback auch verspätet ist schreib ich es :D )
mfg Kvote
« Letzte Änderung: März 04, 2010, 18:18:33 von Kvote20 »

Re: Verschiedene Tutorials by Neoxit

Offline Eddyle

  • RTP-Mapper
  • *
  • Beiträge: 28
Re: Verschiedene Tutorials by Neoxit
« Antwort #11 am: März 17, 2011, 03:09:39 »
Ist zwar schon ein älterer Thread, aber für die, die es brauchen könnten, eine angenehmere Darstellung der Uhrzeit. Als Beispiel hier 09:04 Uhr, die ohne den Zusatz als 9:4 Uhr angezeigt werden würde.

Spoiler for Hiden:
Durch einfügen der zusätzlichen "0"en (zusätzliche Nullen rot markiert) unter bestimmten Bedingungen, sieht das Resultat der Anzeige angenehmer zum Lesen aus.



Das Resultat.





Zweistellige Variablenwerte werden also normal dargestellt, sobald sie einen Wert von 10 oder höher besitzen.


Hoffe, dass meine Darstellung für alle verständlich ist.  :haha_zwinker:

 


 Bild des Monats

rooftop party

Views: 3583
By: papilion

 Umfrage

  • Wer soll das BdM gewinnen?
  • Dot Kandidat 1
  • 3 (25%)
  • Dot Kandidat 2
  • 1 (8%)
  • Dot Kandidat 3
  • 2 (16%)
  • Dot Kandidat 4
  • 0 (0%)
  • Dot Kandidat 5
  • 6 (50%)
  • Stimmen insgesamt: 12
  • View Topic

 Schnellsuche





SimplePortal 2.3.3 © 2008-2010, SimplePortal