UND: ich bin bis level 24 gekommen (34405 punkte)
Wahnsinn!! Da muss es ja schon ganz schön heiß hergehen!
Hahahahaha - Drone2 ist total witzig!!!! Schade, dass mich das Ding immer abballert, wenn ich näher komme
![wink wink](/ubb7/images/graemlins/default_dark/wink.gif)
Das Ding wär vielleicht gut als Bonusrakete. Das Alien sollte vielleicht noch winken.
Das Waveboard sieht cool aus.
Auto ist nett, aber ein bisserl langweilig.
Drone1 ist leicht mit den anderen Items zu verwechseln, die wollte ich einsammeln.
Allerdings sind die Modelle tatsächlich etwas zu groß (Megabytes). Die Skin ist nicht so aufwändig, das sollte deutlich kleiner gehen.
Zur Frage mit der Asteroidenrotation (die hatte ich vorhin gar nicht gesehen) - die Rotation um den Planeten ist von der Eigenrotation unabhängig.
Hier ein Codeauszug :
function StandardOrbit()
{
double distance;
double degree, you_degree;
double x,y;
x = me.x;
y = me.y;
distance = sqrt(x*x+y*y);
degree = atan2(x,y);
degree+=(double)me.OrbitSpeed/10000*(double)time_step;
if (degree<0)
degree+=twoPi;
if (degree>twoPi)
degree-=twoPi;
x = distance*sin(degree);
y = distance*cos(degree);
c_move(me, nullvector, vector(x-me.x, y-me.y, 0), ACTIVATE_PUSH);
}
Sieht ein bisserl kompliziert aus, isses aber nicht.
Double verwende ich, weil die Dinger relativ schnell und die Distanzen groß sind - sonst gibts ein Ruckeln. me.OrbitSpeed ist die Winkelgeschwindigkeit.
Aber: die Dinger kreisen um den Nullpunkt (daher kein Vectorgeschiebe) und in einer Ebene, d.h. nur x und y werden neu berechnet.
Prinzipiell bekommst Du eine Kreisbahn in der Ebene mit
x = sin(Winkel)*Radius; //ggf +Mittelpunkt_X
y = cos(Winkel)*Radius; //ggf +Mittelpunkt_Y
wobei 0 <= Winkel < 360 (oder 2*Pi)
Die Eigenrotation funktioniert mit c_rotate - für jeden Asteroiden wird eine Winkelgeschwindigkeit (pan,tilt,roll) gespeichert.