Archiv verlassen und diese Seite im Standarddesign anzeigen : Prozentrechung (Schon immer gehasst...)
Ich hab da ein kleines Problem, welches mein Kampfsystem betrifft. Und zwar soll in diesem KS, wie in den meisten auch, eine Energieanzeige sein. Diese habe ich fertig. Allerdings ist sie nur 75 Pixel lang. Aber man besitzt 100 Lebenspunkte. Da ich will, dass die Leiste parallel mit den Lebenspunkten sinkt, brauche ich dafür die Prozentrechnung. Natürlich krieg ich das Rechnen selber hin, aber wie bring ich den Maker dazu? Er kennt ja keine Kommazahlen. Er rundet immer automatisch auf bzw. ab.
Ich mache also folgendes:
Ich setze eine Variable auf die aktuellen HP. Diese Variable nenne ich jetzt mal "aktHP".
Weitere Variable. Ich nenne sie "zwiHP".
Ich setze "zwiHP" mit "aktHP" gleich.
"zwiHP" hat also nun den Wert der aktuellen HP. Dann verändere ich die Variable "zwiHP". Und zwar multipliziere ich sie mit 75. (75, weil die Energieleiste 75 Pixel lang ist.) Und dann Dividiere ich das ganze nochmal durch 100.
Damit sollte das Ergebnis eigentlich perfekt ausfallen. Aber das tut es nicht.
Was hab ich da bloß falsch gemacht?
Niji-chan
03.11.2005, 17:07
wenn die 75 deine 100% sind, kannst du ein Verhältnis darstellen:
75/100=zwiHP/x
x= die gesuchte Prozentzahl
stellt man dieses Verhältnis äquivalent um, erhält man
x/zwiHP=100/75
x=100/75 * zwiHP
multipliziere also mit (100/75)
Kommazahlen können, soweit ich das jetz einschätzen kann, trotz dessen vorkommen.
ich hoffe, dass bei mir kein Denkfehler drinsteckt (=ohne Gewähr)
PiqueValet
03.11.2005, 17:12
wenn die 75 deine 100% sind, kannst du ein Verhältnis darstellen:
75/100=zwiHP/x
x= die gesuchte Prozentzahl
stellt man dieses Verhältnis äquivalent um, erhält man
x/zwiHP=100/75
x=100/75 * zwiHP
multipliziere also mit (100/75)
Kommazahlen können, soweit ich das jetz einschätzen kann, trotz dessen vorkommen.
ich hoffe, dass bei mir kein Denkfehler drinsteckt (=ohne Gewähr)
Rechnerich stimmt es auf jeden Fall, aber so wie ich das Verstanden hab, soll zwiHP den Wert der HP zeigen, auch nach dem Was abgezogen wurde, und aktHP den gibt den Maximalen HP Wert vor, wenn ich mich nicht irre müsste es doch dann heißen:
zwiHP=100/75 * aktHP ?!
Dat Geno
aktHP soll nicht den maximalen Wert angeben. Die Variable aktHP ist die aktuelle HP. zwiHP hab ich nur als Zwischenvariable eingeführt, weil's ja sonst nich hinhaut. Danke euch, ich werd's nochmal probiern!
Phönix Tear
04.11.2005, 12:45
Hmm, so wie ich das verstanden habe willst du eine ganz normale HP Leiste machen die auch noch stimmt, wenn der Held einige Level aufsteigt (also wie gesagt mit Prozent). Die 75 würde ich da erstmal ganz rauslassen.
Mach es am besten so:
<>Change Variable "Held HP", set [Hero HP]
<>Change Variable "Held Max HP", set [Hero Max HP]
<>Change Variable "Held HP", * 100
<>Change Variable "Held HP", / "Held Max HP"
Die Variable "Held HP" beinhaltet nun die Prozentzahl der HP des Helden.
Setz einfach mal für HP 5 und für Max HP 10 ein:
5 * 100 = 500
500 / 10 = 50
=> HP % = 50
Das wars schon. Damit das jetzt in die Leiste passt muss du die Abfrage bei der Leiste und nicht bei der Rechnung reinpacken.
Für jeden Pixel der erweitert wird brauchst du (bei einem Event) eine Seite. Das heißt für die das du in diesem Fall (da es ja maximal 100% sein können) etwas mehr als 1,25 pro Seite.
Du stellst also auf die erste Seite die Bedingund "Variable "Held HP" = 1" ein, bei der zweiten 2, bei der dritten 3 und bei der vierten 5. Wenn du das so weiterführst müsste das passen ^^°. Am Ende musst du leider ein bisschen anpassen. Meine Rechnung hier unten ist nicht ganz korrekt (mir läuft gerade die Zeit davon ^^°), also schau einfach wie du die 100 am besten auf 75 aufgeteil kriegst. Es ist nur zu raten das wichtige Werte (ganz leer, ganz voll) möglichst genau sind.
Hoffe du hast es verstanden ;)
mfg
Phönix Tear
Yoah vielen Dank, aber... Du hast mich ein wenig falsch verstanden.
Der Charakter hat immer 100 HP. Und die Energieleiste ist nur 75 Pixel lang. ... Oder war, eher gesagt. Das mit der 75 war mir zu kompliziert. Hab draus einfach 100 gemacht. Sieht zwar jetz nich mehr so schön aus, aber was soll's.
Der Drake
05.11.2005, 09:29
<>Change Variable "Held HP", set [Hero HP]
<>Change Variable "Held Max HP", set [Hero Max HP]
<>Change Variable "Held HP", * 75
<>Change Variable "Held HP", / "Held Max HP"
Beispielrechnung:
5 * 75 = 375
375 / 10 = 37,5 = 37
Du kannst also durchaus für jeden Pixel eine Zahl nehmen...
Mist, dass ich darauf nich schon früher gekommen bin >.<
§doof
Jetz isses zwar leider schon zu spät, hab die Leiste auf 100 gemacht, aber trotzdem danke!
Ich werd dann wohl noch was ins Spiel einbauen, wo eine 75-Leiste vorkommt. Nur damit dein Post nich umsonst war ;)
Vielen Dank nochmal
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.