x / 100 = 0?

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Benutzeravatar
Skyhawk
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 77
Registriert: 27.04.2004, 19:40
Kontaktdaten:

x / 100 = 0?

Beitrag von Skyhawk »

hi,

ich versuche scaling auch auf bewegliche objekte anzuwenden,
(nützlich bei charakter-schatten etc)

nur funzt meine methode irgendwie nicht....

int scal = GetScalingAt(cEgo.x, cEgo.y);
int a = FloatToInt(IntToFloat(sprite.Width/100*scal),eRoundUp);
int b = FloatToInt(IntToFloat(sprite.Height/100*scal),eRoundUp);
sprite.Resize(a , b);

das problem liegt hier eindeutig an dem sprite.width(height) / 100
da ags hier immer als ergebnis 0 ausgibt....

habs mit mit ner "on_key_press" funktion mal getestet...
egal was für ein wert eingegeben wird, bei ner division durch 100 kommt immer Null raus......
(z.b. 9/3 ergibt korrekt 3...)



gibt es vielleicht nen anderen weg die objektgröße an das aktuelle scaling anzupassen?
je älter ich werde, desto weniger verstehe ich....

http://www.tafkasomm.de
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

1. Objekte werden von AGS automatisch skaliert (wenn das im Objekt-Editor so eingestellt ist.)
2. Eine ganz simple Lösung wäre: (sprite.Width*scal)/100

eine andere Möglichkeit:
float b=IntToFloat(sprite.Width);
b=b/100;
b sollte jetzt einen Wert von 0.? haben.

Deine Methode funktioniert nicht, weil AGS erstmal auf Integerbasis sprite.Width/100 ausrechnet. Und da kommt immer 0 raus, es sei denn sprite.Width ist 100 oder mehr.
Use gopher repellent on funny little man
Benutzeravatar
Skyhawk
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 77
Registriert: 27.04.2004, 19:40
Kontaktdaten:

Beitrag von Skyhawk »

ich werd das mal ausprobieren, aber vorweg...

ich hab zum test einmal 100/100 in die on_key_press eingegeben...
if (key==434) {int a=100/100;display("%d",a);}
ist nach adam riese ja 1, aber ags bekommt da auch null raus :?
und die objekte sind auch größer als 100px


edit:

trotzdem hat die einfache umstellung der operatoren geholfen, thx :D
Zuletzt geändert von Skyhawk am 14.06.2005, 20:08, insgesamt 1-mal geändert.
je älter ich werde, desto weniger verstehe ich....

http://www.tafkasomm.de
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

Pass mal auf: Das rechnet man so:

Cos(x)+24*y-60/22+(x*y%20) :roll:

Ich glaube, AGS hat in sowas'n ZAcken ab
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge

Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.

Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
strazer

Beitrag von strazer »

Skyhawk hat geschrieben: ich hab zum test einmal 100/100 in die on_key_press eingegeben...
if (key==434) {int a=100/100;display("%d",a);}
ist nach adam riese ja 1, aber ags bekommt da auch null raus Confused
und die objekte sind auch größer als 100px

Code: Alles auswählen

  int a = 100 / 100;
  Display("%d", a);
Bei mir wird da 1 angezeigt (AGS v2.70)...
Benutzeravatar
Skyhawk
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 77
Registriert: 27.04.2004, 19:40
Kontaktdaten:

Beitrag von Skyhawk »

hmmm, mittlerweile funzt alles einwandfrei....
auch das mit dem 100/100....
eventuell gab es irgend einen konflikt mit ner anderen operation, aber eigentlich hab ich das gefühl, ags will mich verarschen :wink:

(oder ich bin zu blöde :roll: )
je älter ich werde, desto weniger verstehe ich....

http://www.tafkasomm.de
Antworten