Seite 2 von 2 ErsteErste 12
Ergebnis 21 bis 28 von 28

Thema: Eine Frage zu Bildern

  1. #21
    Zitat Zitat von Serij Beitrag anzeigen
    Code:
    <>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

    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).

    Code:
    <>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%

  2. #22
    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

  3. #23
    der maker akzeptiert das bild ja. maße: 128x240 <-(vill ist das ja auch falsch)
    und 100% farbe denk schon das es das hat.




    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 *.*

  4. #24
    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
    Wenn du die Maker-Befehle nciht verstehst, solltest du dir nen Deutschpatch installieren oder mal beim heiligen Forgotten E-Book nachschauen (sogar mit Bildern!) oder das TechWiki 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:
    Code:
    <>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.

  5. #25
    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...

    Geändert von Fir3bird (24.07.2008 um 17:40 Uhr)

  6. #26
    @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 .

    Ö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.

  7. #27
    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

  8. #28
    ich sage nur Übung macht den Meister und Fehler sind menschlich, darum ist das kein Problem brauch dir nicht peinlich sein

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •