Archiv verlassen und diese Seite im Standarddesign anzeigen : Eine Frage zu Bildern
halcyonzocalo
16.07.2008, 07:48
Ich hab den RPG-Maker 2000 schon eine halbe Ewigkeit, doch ich nutze ihn immer nur sporadisch, sodass ich die einfachsten Sachen dann teilweise nicht mehr verstehe^^
Deshalb könnte es auch sein, dass meine Frage ein bisschen "billig" ist, aber:
Wie lege ich die genaue Position fest, an denen die Pictures erscheinen sollen. Ich weiß, dass man dann die Korrdinaten eingeben muss, aber welchen Umfang an Koordinaten hat denn das Sichtfeld des Helden?
Danke schon mal im Vorraus
Gruß
halcyonzocalo
pascal45
16.07.2008, 11:21
Willst du sichkegel anlegen oder wie darf ich das verstehen?
Spark Amandil
16.07.2008, 11:33
Ich denke mit Sichtfeld meint er den Bildausschnitt.
Die Positionierung eines Bildes findet immer an dessen Mitte statt was beim positionieren zu beachten ist.
Der gesamte Bildschirm misst 320x240. Wenn du somit zb ein Bild genau in der Mitte platzieren willst, müsstest du 160x120 angeben. Du kannst natürlich auch noch höhere Werte nehmen oder sogar Werte ins Negative gehen lassen wenn du möchtest dass Elemente ausserhalb des Bildschirms angezeigt werden oder dorthin wandern.
makenshi
16.07.2008, 11:43
Ok , ich versuche dir die Sache mit den Koordinaten zu erklären.
Schau mal hier :
http://www.robsite.de/bbkurs2/bilder/koordinaten1.gif
Das ist ein Koordinatensystem wie du es vielleicht auch schon aus der Schule kennst.
In so ein Koordinatensystem ist dein ganzer Bildschirm unterteilt. Jedes Event vom Maker hat eine X/Y Position. Sagen wir nun ein Event hat die Koordinaten X = 3 und Y = 4 . Wenn wir nun zu den X Koordinaten 1 hinzuaddieren (sprich : X Koordinaten + 1) dann wird die Anzeigeposition des Events auf ein "Feld" nach rechts geändert.
Du siehst also , alles auf dem Bildschirm hat seine eigenen X/Y Koordinaten. Alles ist dadurch praktisch adressiert. So weiß man immer wo auf dem Monitor sich ein Event , ein Bild oder ähnliches befindet. Und durch Manipulierung dieser Werte kannst du auch die Lage dieser Events , Bilder oder was auch immer ändern.
Oben links im Bild siehst du die Zahlen (0,0) , das sind die sogenannten Pixel. Ein Pixel ist ein Punkt auf dem Monitor. Ergo sind (2,0) 0 Pixel nach unten von der oberen linken Ecke , jedoch 2 Pixel nach rechts von der oberen linken Ecke.
Der Maker wiederum hat Kästchen. Das ist dir sicherlich aufgefallen. Diese siehst du immer wenn du im Eventmodus bist. Diese Kästchen sind 16 x 16 Pixel groß.
Events werden über dieses "Kästchensystem" bewegt. Bilder werden über reine Pixelkoordinaten bewegt.
An sich wäre das beste wenn du dir das ganze etwas genauer anschauen würdest. Erstelle dir ein neues Projekt. Importiere irgendein X-beliebiges Bild. Nun nenne zwei Variablen :
X Koordinate = 160
Y Koordinate = 120
Danach wählst du den dir bekannten Show Picture Befehl aus. Dort stellst du diesmal NICHT direkt die Koordinaten ein , sondern die Koordinaten aus den Variablen. Das kannst du direkt unter den 2 Punkten tun , wo du direkt die Werte eingeben kannst. Heisst bei mir : "Variablen Reference".
Nun nimmst du folgende Variablenoperation vor :
Erhöhe die X Variable mal um 20 ( X Koordinate + 20)
Nun nutze wieder den Move Picture Befehle. Wieder stellst du die Variable bei dem Befehl ein. Sprich , du benutzt wieder nicht die Option wo du die Koordinaten direkt eingeben musst , sondern die darunterliegende. Dort stellst du wieder deine 2 Variablen ein. Achte drauf das sie auch passen !
Bei X musst du natürlich die X Koordinate einstellen. Bei Y die Y Koordinate. Das ist aber denke ich klar.
Wenn du das ganze nun im Maker ausführst , wirst du sehen das sich das Bild um 2 0 Pixel nach rechts bewegt hat.
Durch solche kleinen Versuche kannst du dir so etwas anständig begreiflich machen.
halcyonzocalo
16.07.2008, 12:33
Danke für eure ausführlichen Antworten.
Mir ist einiges klarer geworden.
Das ist ein Koordinatensystem wie du es vielleicht auch schon aus der Schule kennst.
Nach einem knappen Jahr Analysis und Kurvendiskussionen kennt man das leider nur zu gut^^
Nochmal Danke
Gruß
halcyonzocalo
...es gibt lediglich den Unterschied, dass die Y-Achse von oben nach unten statt von unten nach oben adressiert ist.
Myuyu_Ro
22.07.2008, 13:42
~.* warum begreifen das alle immer so schnell. Hab mir das Ausführliche mal durchgelesen, allerdings seh ich vor meinen Augen jetzt nichts mehr.. *hust*
Ich werds mir gleich nochmal zum 4ten mal durchlesen.. Hätte da aber dann doch die Frage:
Ich habe eine 40x75 große Map. Und diese Map will ich mit einem Picture (LE's) bedecken... soll sich aber nicht bewegen (is ja klar), wie mach ich 'n das jetzt o.Ò <-- vill nochmal für dumme Myuyu's erklären -.-
Fir3bird
22.07.2008, 20:20
Mach nen Haken bei "move with map".
Myuyu_Ro
22.07.2008, 21:09
Aber dann läuft das bild doch dann mit mir?
ich wollte auch so ein riesen Le machen nur halt für 40x75 Map.
So wie hier
http://img120.imageshack.us/img120/539/newremakealoneglockentuil0.png
Mach nen Haken bei "move with map".
-.- blob...
@Myuyu_Ro
also, du musst die "Mitte" der Karte als X und Y posi angeben.
Mach ein Event, packe das in die Mitte der Karte und lass in eine variable die X-Scene (nicht pos!) fließen. Das gleiche machst du mit der Y-Scene (nur halt ne andere vari).
Dann lässt du die LE über die varis anzeigen.
Es kann vorkommen das die LE dennoch versetzt ist, dann musst du endweder die X oder Y-koordinate noch änder und es anpassen.
Myuyu_Ro
22.07.2008, 21:15
sind die x und y werte diese 40x75 oder wie seh ich die o.Ò
nein, das ist dei Angabe für die Feldeanzahl
40 waagerecht und 75 senkrecht. (= 3000 Felder [ein feld=16*16 pixel])
X und Y wären z.B. X=320 Y=600 (wär bei dir jetzt die Mitte).
Spark Amandil
22.07.2008, 21:20
Ein Tile misst 16x16px. Die Koordinaten werden in Pixeln gemessen. Rechne also deine Mapgröße in Höhe und Breite mal 16, dann hast du die Pixelmaße an denen du dich orientieren kannst.
Myuyu_Ro
22.07.2008, 22:40
also.. ne das funktioniert nich so ganz +.+
ich mach was falsch irgend wie...
könnt ihr mir vill das so zeigen wie es im maker stehen müsste?
also das soll das LE sein (vill auch die falsche größe weiß nich)
http://img73.imageshack.us/img73/3907/lehoeledm7.png
und so hab ichs gemacht.
http://img255.imageshack.us/img255/412/mhhxv5.png
wahrscheinlich muss ich diese var. dingens machen, aber dann weiß ich nicht wo man die x y daten eingeben kann, also 320 und 600 ??
Knumonmaster
22.07.2008, 23:00
nein so geht das nciht ganz :D
Zuerst platzierst du ein Event genau in der Mitte der Map, dem gibst du z.b. den Namen "Mitte".
dann kreierst du ein neuen PP-Event:
> Set Variable (Vari: ”MapX”)(Set: Ev”Mitte”: Screen relative X/Xcoord.)
> Set Variable (Vari: “MapY”)(Set: Ev”Mitte”: Screen relative Y/Ycoord.)
# Folgende 2 Variablenänderungen sind für den Fall, dass das Picture
# verschoben dargestellt wird, was sehr oft vorkommt.
> Set Variable (Vari: “MapX”)(Add: 0)
> Set Variable (Vari: “MapY”)(Add: 0)
> Show Picture (No: 1)(X: Vari”MapX”)(Y: Vari”MapY”)(Move with Map)
> Clear Timer (“Event löschen”, etc.)
kann man auch hier auf meinem LE-Tut nachlesen:
http://goldenblood.rpga.info/LET2/html/rpg-maker__11.html
edit: hübsche farben hat dein windows^^
das mit magnification ist btw die Vergrößerung ;)
Fir3bird
23.07.2008, 07:30
@Myuyu_Ro
Das wichstigste hier ist, dass du den Haken bei "Picture scrolls with map" aktiv hast, hast du nämlich bei deinem Screen vergessen. Sry, dass ich ausversehen "move with map" oder so etwas ähnliches geschrieben hab.
Herrlich, wenn man erst um 9:30 Schule hat ^^
Myuyu_Ro
23.07.2008, 22:18
> Set Variable (Vari: ”MapX”)(Set: Ev”Mitte”: Screen relative X/Xcoord.)
> Set Variable (Vari: “MapY”)(Set: Ev”Mitte”: Screen relative Y/Ycoord.)
# Folgende 2 Variablenänderungen sind für den Fall, dass das Picture
# verschoben dargestellt wird, was sehr oft vorkommt.
> Set Variable (Vari: “MapX”)(Add: 0)
> Set Variable (Vari: “MapY”)(Add: 0)
> Show Picture (No: 1)(X: Vari”MapX”)(Y: Vari”MapY”)(Move with Map)
> Clear Timer (“Event löschen”, etc.)
ich versteh den code gar nich +.+
set variable ist im maker variable operation?
und was soll dieses set bedeuten? Conditional Branch villeicht?
peil das nich so ganz..
wenn mans einmal raus hats ist es super... aber erstmal da hin zu kommen~
sry für die wirklich dummen fragen.. *hust* *patpat*
> Set Variable (Vari: ”MapX”)(Set: Ev”Mitte”: Screen relative X/Xcoord.)
> Set Variable (Vari: “MapY”)(Set: Ev”Mitte”: Screen relative Y/Ycoord.)
# Folgende 2 Variablenänderungen sind für den Fall, dass das Picture
# verschoben dargestellt wird, was sehr oft vorkommt.
> Set Variable (Vari: “MapX”)(Add: 0)
> Set Variable (Vari: “MapY”)(Add: 0)
> Show Picture (No: 1)(X: Vari”MapX”)(Y: Vari”MapY”)(Move with Map)
> Clear Timer (“Event löschen”, etc.)
In Variablen werden Wert/Zahlen gespeichert. Da wurde in MapX eine die gewünschte X (horizontale) und in MapY (vertikale) Y gespeichert.
Der Code ist nicht so ganz dargestellt, wie es möglich ist ^^ ich schreib dir den mal anders.
Du kannst deine gewünschten Zahlen eingeben ich nehme mal 10,20
<>Variable Ch:[0001:MapX]Set,10
<>Variable Ch:[V[0003]Set,EreignisName X pos
<>Variable Ch:[0002:MapY]Set,20
<>Variable Ch:[V[0004]Set,EreignisName Y pos
<>Variable Ch:[0001:MapX]+,0
<>Variable Ch:[0002:MapY]+,0
<>Kommentar: Hier muss Move with Map an sein!
<>Show Picture: 1,MapNAME,[V[0001],V[0002]]
<>ClearTimer
Myuyu_Ro
24.07.2008, 10:32
ahh okay~ also ich habs jetzt soweit hinbekommen das sich das bild nicht bewegt....
allerdings ist das picture bei 100% gar nicht zu sehen und bei 300% hängt es nur ganz weit unten.. siehe bild..
(mitte: ist das mitte event ohne irgend was drin, links oben: pp-event,ganz unten das picture o.O warum hängt es denn da -.-)
http://img296.imageshack.us/img296/3455/unbenannt1vw4.png http://img73.imageshack.us/img73/3907/lehoeledm7.png
die zahlen 10 und 20 hab ich eingtauscht in 320 und 600, da mir jem vorher gesagt hat das das die mitte bei mir wär.. (vill is das ja falsch)
Gehe sicher dass das Bild vom Maker akzeptiert wird, sonst wird das schwarz, dann gehe sicher, dass die Farbeinstellungen vom Bild alle auf 100% sind.
Aber schick mal den Codeinhalt, in diesem Bereich beim Show Picture
Knumonmaster
24.07.2008, 11:39
<>Variable Ch:[0001:MapX]Set,10
<>Variable Ch:[V[0003]Set,EreignisName X pos
<>Variable Ch:[0002:MapY]Set,20
<>Variable Ch:[V[0004]Set,EreignisName Y pos
<>Variable Ch:[0001:MapX]+,0
<>Variable Ch:[0002:MapY]+,0
<>Kommentar: Hier muss Move with Map an sein!
<>Show Picture: 1,MapNAME,[V[0001],V[0002]]
<>ClearTimer
Schön, dass du dir die Mühe gemacht hast meinen sporatischen code umzuformen. Allerdings ist er nciht richtig :D
Die Sache ist, dass die X und Y des Bildes im vom Betrachtungfeld abhängen! Wenn man das Bild anzeigen lässt und feste Werte benutzt, musst du die Map immer von der oberen linken Ecke betreten.
Um aber das Bild in der Mitte der Map anzuzeigen, musst du die relativen Koordinaten der Mitte nehmen, nciht die absoluten. Und diese erhält man, wenn man in der Mitte der Map ein Event platziert (ich nenne es "Mitte") und von diesem dann die relativen X und Y Koordinaten benutzt (Achtung! Nicht mit den Tile-Koordinaten verweckseln, diese zählen nur die Tiles oder Chips, nciht aber die Pixel).
<>Variable Ch:[0001:MapX]Set,Ereignis"Mitte", Screen-Relative X
<>Variable Ch:[0001:MapY]Set,Ereignis"Mitte", Screen-Relative Y
<>Kommentar: Zum verschieben des Bildes, wenn es um 1/2Tile, also 8 Pixel, verschoben ist
<>Variable Ch:[0001:MapX]+,0
<>Variable Ch:[0002:MapY]+,0
<>Kommentar: Hier muss Move with Map an sein!
<>Show Picture: 1,MapNAME,[V[0001],V[0002]],
<>ClearTimer
ps: Die Magnifikation, also vergrößerung, ist bei deiner Grafik fast 250% und nciht bei 300%
ok, ^^ hab mich eig an den deutschen RPG Maker gewöhnt hab aber wegen paar fehlern installiert und als ich code gemacht hab hab ich wohl da was verwechselt weil ich den maker wieder auf englisch hatte ^
naja jeder vertut sich mal xD hauptsache das problem ist bald gelöst
Myuyu_Ro
24.07.2008, 14:28
der maker akzeptiert das bild ja. maße: 128x240 <-(vill ist das ja auch falsch)
und 100% farbe denk schon das es das hat.
http://img99.imageshack.us/img99/3196/unbenannt2pf6.png
EDIT: ._. sry... bin nicht so ein technik freak irgend wie. wenn ichs nur endlich begreifen würde, dann würde ichs auch für immer begreifen xD i'm so noobish *.*
Knumonmaster
24.07.2008, 15:05
ob der maker das beim importieren akzeptiert oder nciht ist egal. Wenn du das Bild sehen kannst, wenn du es in der Picture-Liste anwählst, ist alles in Butter.
aber ich frage mich was willst du mit der farbe und der Mod-Operation :confused:
Wenn du die Maker-Befehle nciht verstehst, solltest du dir nen Deutschpatch installieren oder mal beim heiligen Forgotten E-Book (http://rpga.info/eBook/) nachschauen (sogar mit Bildern!) oder das TechWiki (http://rpg2000.4players.de/techwiki/index.php/Hauptseite)befragen
Das Grundlegende beim Bilder anzeigen ist schlicht, dass der Maker das Bild nach der Mitte ausrichtest. Wenn wir also ein Bild bei (0,0) anzeigen lassen, sitzt die Mitte des Bildes oben links in der Ecke des Screens (nicht der Map), so dass 3/4 des Bildes also nciht zu sehen sind.
Daraus folglich, wenn man ein Bild genau in der Mitte der Map anzeigen will, muss man dazu die Koordinaten der Mitte der Map nehmen.
Um das zu erzielen, benutze ich ein Event in de Mitte der Map, wessen X und Y Werte ich dann abfrage und sie in einer Variable speichere.
Wenn wir nun das Bild also zu diesen Werten anzeigen lassen, sitzt es also in der Mitte der Map und wenn es sich dann noch mit der Map bewegt, bleibt es auch dort am Fleck sitzen.
die einfachste Methode ist also:
<>Variable Ch:[0001:MapX]Set,Ereignis"Mitte", Screen-Relative X
<>Variable Ch:[0001:MapY]Set,Ereignis"Mitte", Screen-Relative Y
<>Show Picture: 1,MapNAME,[V[0001],V[0002]], Move with Map
<>EraseEvent
deine Fehler sind:
1. Du gibst die Mitte des Bildes vor, was unnötig ist, da die Bilder sowieso nach der Mitte ausgerichtet werden, wie ich oben geschrieben habe
2. Du verwendest die Operation Mod, was übrigends Restrechnung ist, worauf ich mir gar keinen Reim machen kann^^
Vll verwirrt dich auch das zusätzliche +0 bei den Variablen. Das ist einfach dazu da, dass wenn das Bild ein Stück verschoben dargestellt wird (aus dem Grund, da der Maker nciht die Koordinaten der genauen Eventmitte benutzt... ) du da + oder - 8 reinschreiben kannst, damit das Bild richtig sitzt.
Fir3bird
24.07.2008, 16:37
Jenachdem, von wo du in die Höhle reingehst, ist auch das Bild an einer anderen Stelle. ändere einfach mal die beiden Variablen ab.
EDIT:
Ok, so wie es oben beschrieben ist, ist das hier egal...
@Myuyu_Ro:
Das Problem bei dir ist, dass du die Positionen des Bildes in X und in Y selbst festlegen willst, was aber überhaupt nicht nötig ist, weil es so oder so in diesem Falle nicht funktioniert.
Du machst folgendes: die Variable X [aaa] wird auf einen Wert festgelegt über die "set" operation und einem errechneten eingebebenen Wert, ebenso die Y Variable.
Wenn deine Map 100 Tiles breit und 70 Tiles hoch wäre, so hat das gesamte Bild eine Größe von 1600 Pixeln [Breite] und 1120 Pixeln [Höhe]. Du setzt daher die Mitte der beiden, das heißt die Werte durch 2 geteilt, als Anzeigewert fest, was aber an dieser Stelle grundlegend falsch ist.
Wie Knumonmaster schon sagte, ist die Postion des Bildes immer abhängig vom aktuellen Bildauschnitt, den du siehst (relative Abhängigkeit). So könnte die Postion des Mittenevents vom Helden aus gesehen in X-200 und in Y+50 oder so sein. Je nachdem, wo du dich mit dem Sichtfenster gerade auf der Map befindest.
Richtig ist es aber folgendermaßen: du setzt in 2 Variablen, egal welcher ID, den 1. Wert [Screen relative X] und den 2. Wert [Screen relative Y] fest. Bedenke, dass immer nur ein Wert pro Variable gespeichert werden kann, deswegen 2 Variablen^^. Das machst du unter Variable Operations->Sprite->[This Event]->[Screen relative X] für die erste Vari, für die 2te gehst du ebenso vor (im 2k3). Für den 2k lautet der Pfad so: Change Variable->Event->[This Event]->[Sceen X]. Ist im Endeffekt das Gleiche, nur andere Benennung^^. Du setzt nun dieses Event auf etwa die Mitte. In meinem Beispiel gibt es ja quasi für den Maker dank der Tiles keine richtige Mitte. Soll heißen, du setzt das Event nach meinem oben genannten Beispiel auf die Tilenummer X [49] und Y [34]. Die Zählung beginnt, wie du sicher weißt, bei 0. Deshalb ist 49 das 50zigste Tile auf der Map. Wenn du nun aber dein Bild über genau diesen Koordinaten anzeigst, wird es um 8 Pixel in jeder Richtung verrückt sein. Warum? Nun, du hast ja mit dem Event nicht die Mitte der Karte getroffen, denn das ist so unmöglich, solches funktioniert nur, wenn deine Mapgröße in X und Y [Breite mal Höhe] eine ungleiche Zahl bereitstellt (z.B. X 99 und Y 69, dann kannst du ganz genau die Mitte treffen ;) ). Jedenfalls musst du nun die Koordinaten verändern und zwar in X+8 und in Y+8, da die Y Achse nach unten hin positiv ist. Zum Schluss dann noch ein Clear Timer, bzw. Erase Event und die Sache ist gegessen :D .
Öh ja, das war jetzt mal die ausführlichere Textversion von Knumonmasters Code^^, hoffe mal ohne Fehler o_O .
cya
€: aja, fast hätte ichs vergessen: das Pic über die Option [Variable Reference;2k3] anzeigen lassen [by Varible; 2k3], und wie schon erwähnt Haken bei [Move with Map] setzen.
Myuyu_Ro
26.07.2008, 19:50
so um den tread hier nich unnötig zu pushen, ich glaub ausführlicher wie ihr kann mans jem glaub ich nicht vorkauen xD
is mir schon peinlich das ihrs alle mal dem noobi hier erklären musstet.
also ich weiß zwar nich so genau ob ich das hinbekomme, werds aber später nochmal probieren.
Falls ich es geschafft hab. werd ichs kurz schreiben!!!! XD
ich sage nur Übung macht den Meister und Fehler sind menschlich, darum ist das kein Problem brauch dir nicht peinlich sein ;)
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.