Ergebnis 1 bis 7 von 7

Thema: Kleine Fragen, eure meinung ist auch gefragt!

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #6
    Nagut, dann erkläre ich das mal genauer.

    Code:
    akt_HP = HeldenHP;     // Zuweisung des aktuellen HP Werts
    In dieser Zeile wird einer Variable der aktuelle Stand der Lebenspunkte des Helden eingegeben. Hat der Held z.B. noch 43 Lebenspunkte, beträgt der Wert der Variable "akt_HP" jetzt 43. Soweit weißt Du das ja sicher. Dies ist also das, was im Maker unter den Variablen bei "Hero" und im letzten Feld der Zeile "HP" zu finden ist. Soweit klar?

    Code:
    max_HP = HeldenmaxHP;     // Zuweisung des maximalen HP Werts
    Das hier ist genau dasselbe wie oben, nur werden hier die maximal erreichbaren Lebenspunkte des Helden gespeichert. Z.B. er hat maximal 120 Lebenspunkte zur Verfügung, so beträgt der Wert der Variable 120.

    Code:
    akt_HP *= 100;     // aktuelle HP mal hundert rechnen
    akt_HP /= max_HP;     // aktuelle HP durch die maximale HP rechnen
    // die Variable akt_HP hat den Wert in Prozent von der maximalen HP gespeichert
    Dieser Teil rechnet aus, wie viel Prozent der aktuellen HP noch vom maximalen Wert, also den 100%, übrig sind. In der Schule würdest Du die Rechnung wie folgt schreiben:
    Wie ich oben schrieb, beträgt die aktuelle HP 43 (der Wert ist jetzt einfach mal gedacht, ok?). Die maximale HP ist 120.
    43/X% = 120/100%
    X ist der zu errechnende Wert, also der Prozentwert. In Worten ist das dasselbe wie "43 zu X% ist genauso groß wie 120 zu 100%". Ich hoffe mal, Du weißt inzwischen, wie man solche Aufgaben löst. Und zwar über die "Kreuzrechnung", salopp gesagt. Das heißt dann also, Du rechnest 43 * 100 und 120 * X. Damit erreichst Du eine Gleichung, die so aussieht:
    43 * 100 = 120X (oder auch 120 * X); da Du nun aber X haben möchtest, musst Du die Operation umkehren, und umgekehrt wird bei der Multiplikation mit der Division (Multiplikation ist Malrechnen [also *] und Division ist Durchrechnen [also / oder :, je nach Schreibweise] ).
    Dabei kommt dann die Aufgabe hier raus:
    (43*100)/120 = X; genau DAS rechnet der Maker aus, so auch mein Stück Code oben. Raus kommt 35,833~, also im Maker 35, da der nicht mit Bruchzahlen rechnet, sondern immer mit Ganzzahlwerten.

    So, Mathenachhilfe beendet.

    Code:
    Bild_X-calc = 100; // auf hundert setzen
    Diese Zeile wird nur geschrieben, wenn die HP Leiste oben rechts im Bildschirm angezeigt wird. Würde man die HP Leiste oben links anzeigen, fällt sie weg. Das Problem ist ganz einfach, Du rechnest ja, wie eben erwähnt, die aktuellen Prozent aus. Wenn also 35 Prozent errechnet werden, würde sich das Bild um 35 Pixel nach links bewegen. Das ist aber falsch, denn dann zeigt Dir die HP Leiste 65 Prozent verbleibende Energie an, demzufolge 30 Prozent zu viel. Deswegen habe ich von 100 (die Zeile hier über dem Absatz) die errechneten 35 abgezogen, damit verbleiben 65 Prozent (denn 100 - 35 = 65).
    Damit kann das Bild um 65 Pixel nach links rücken und zeigt die verbleibenden 35 Prozent an. Soweit klar?
    Das macht übrigens diese Zeile hier:

    Code:
    Bild_X-calc -= akt_HP;
    Code:
    Bild_Y = 20; // angenommene Werte, hier kommen die Grenzwerte für den Rahmen der HP Leiste hin
    In der Zeile wird nur die Y Position des Bildes angegeben, weiter nichts. Also die Stelle, auf welcher das Bild in der vertikalen Ebene angezeigt wird (schlechtes Deutsch würde "hochzu" lauten ^^). Zu bemerken ist, dass die Y Achse beim Maker in ihrer positiven Richtung nach unten geht, die negative jedoch nach oben. Würdest Du da also -20 angeben, so wird das Bild über dem eigentlichen, sichtbaren Bildschirmbereich angezeigt.

    Code:
    Bild_X-calc *= -1; // den Wert negieren
    Hier habe ich den Prozentwert einfach nur ins Gegenteil umgekehrt, aus 65 Prozent wird so -65 Prozent. Denn wenn Du ein positive Zahl mit einer negativen multiplizierst, wird das Ergebnis negativ.

    Code:
    Bild_X += [Picture in X /= 2]; // der Ausgleich in der X Achse, damit die Leiste bei 100 % HP ganz außen steht und nicht mit seiner Mitte auf dem äußersten Punkt des Rahmens für die Leiste
    In der Zeile steht, dass der Wert (=Anzahl der Pixel) in seiner X Achse halbiert wird. Wenn Deine HP Leiste, die sich ja bewegen soll, einhundert Pixel lang ist (horizontale Ebene), und Du diesen Wert durch zwei teilst, kommt 50 raus. Sollte ja verständlich sein. Das ist nur dazu da, dass das Bild nicht über seiner Mitte, sondern eben 50 Pixel außerhalb seiner Mitte dargestellt wird. Denn der Maker zeigt Bilder über den "Show Picture" Befehl immer mittig an.

    Code:
    Bild_X += Bild_X-calc; // den Wert, den das Picture sich nach links bewegen soll, abziehen (der Wert ist negativ, daher eine Addition; denn 100 + -50 sind 50)
    Hier wird nur der vorhin errechnete Prozentwert von der Variable abgezogen, die das Bild in der Horizontalen anzeigt. Damit das Bild eben seine 65 Pixel nach links rücken kann.

    Code:
    Bild_X += 300; // endgültige Position errechnen (für X, Y bewegt sich nicht)
    Diese Zeile gibt an, wie viele Pixel der äußere, rechte Rand der HP Anzeige vom linken Bildschirmrand entfernt liegt. 300 ist hier nur angenommen, er kommt immer darauf an, wie groß Deine Anzeige ist und so.

    Code:
    MOVE PICTURE 50 [Bild_X;Bild_Y];
    Die Zeile sollte ersichtlich sein, hier wird nur das Bild bewegt.

    So, noch genauer kann ich es jetzt nicht mehr erklären, besser bekomme ich es nicht hin.

    €:
    Was Du übrigens noch wissen musst, ist dass Du 3 Bilder brauchen wirst. Eins für die HP Leiste, z.B. ein rotes. Eins für den Rahmen der Anzeige und eins, welches die bereits verbrauchte Energie anzeigt, üblicherweise ein graues. Das zuletzt genannte, ist das Bild, was sich bewegt. Die Anzeigereihenfolge wäre dafür so:

    Picture Nr. 1 = rotes Pic
    Picture Nr. 2 = graues Pic
    Picture Nr. 3 = Rahmen

    Je höher also die ID ist (die Nummer), desto höher wird es angezeigt. Deswegen wird ein Bild mit der ID 20 über einem mit der ID 12 angezeigt.

    Geändert von cilence (01.05.2009 um 15:16 Uhr)

Berechtigungen

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