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?
x / 100 = 0?
- Skyhawk
- Verpackungs-Wegwerfer
- Beiträge: 77
- Registriert: 27.04.2004, 19:40
- Kontaktdaten:
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
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.
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
- Skyhawk
- Verpackungs-Wegwerfer
- Beiträge: 77
- Registriert: 27.04.2004, 19:40
- Kontaktdaten:
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
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
Zuletzt geändert von Skyhawk am 14.06.2005, 20:08, insgesamt 1-mal geändert.
-
- Adventure-Gott
- Beiträge: 4575
- Registriert: 13.07.2004, 14:04
- Wohnort: Da wo muss
- Kontaktdaten:
Pass mal auf: Das rechnet man so:
Cos(x)+24*y-60/22+(x*y%20)
Ich glaube, AGS hat in sowas'n ZAcken ab
Cos(x)+24*y-60/22+(x*y%20)
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
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
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);
- Skyhawk
- Verpackungs-Wegwerfer
- Beiträge: 77
- Registriert: 27.04.2004, 19:40
- Kontaktdaten: