jeudi 23 juillet 2015

Äèíàè÷åñêîå äâèæåíèå îáúåêòîâ [Òðèãîíîìåòðèÿ]

äîáðîãî âðåìåíè ñóòîê, òîâàðèùè
ñðî÷íî íóæíà ïîìîùü ïî íàïèñàíèþ ôóíêöèè äâèæåíèÿ êîðàáëÿ

â îáùåì íóæíî ïðåâðàòèòü îáúåêòû â íàñòîÿùèé ïëàâó÷èé êîðàáëü.

åñòü êîðàáëü êîòîðûé ñîñòîèò èç 40 îáúåêòîâ, íóæíî ñäåëàòü ÷òîáû êîðàáëü äâèãàëñÿ âïåðåä è ìîã ïîâîðà÷èâàòü, ÷àñòè÷íî ÿ ñäåëàë "äâèæåíèå âïåðåä", ÿ íå çíàêîì ñ òðèãîíîìåòðèåé è âîîáùå ïëîõî ñîîáðàæàþ â ïîçèöèîíèðîâàíèè.

ìîè íàáðîñêè

PHP Code:

control_aero_carrier(control)
{
    switch(
control)
    {
        case 
0: // äâèæåíèå ñóäíà âïåðåä ïî X
        
{
            
aerocarrier_speed++;
            if (
aerocarrier_speed > 5) return false;
            else if (
aerocarrier_speed == 1)
            {
                
aerocarrier_timer = SetTimer("MoveCarrier", 500, true);
            }
            else if (
aerocarrier_speed == 2)
            {
                
KillTimer(aerocarrier_timer);
                
aerocarrier_timer = SetTimer("MoveCarrier", 1000, true);
            }
        }
        case 
1: // äâèæåíèå ïðàâî
        
{
            static 
Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz;
            for (new 
i = 0; i < sizeof(aerocarrier); i ++)
            {
                
GetDynamicObjectPos(aerocarrier[i], x, y, z);
                
GetDynamicObjectRot(aerocarrier[i], rx, ry, rz);
                
MoveDynamicObject(aerocarrier[i], x, y, z, 1.0, rx, ry, rz-5.0);
            }
        }
    }
    return 
true;
} 

Íåêîòîðûå îáúåêòû ïîñëå ïîâîðîòà íà÷èíàþò ñìåùàòüñÿ ïî x èëè y, ÿ íå çíàþ êàê ñäåëàòü äàëüøå.


Aucun commentaire:

Enregistrer un commentaire