Ejemplo n.º 1
0
void entity::gravitate (struct entity object) { //calculates gravitational forces, and accelerates, between two entities

    float theta = atan2l (object.y - y, object.x - x);    //finds angle at which hab is from earth
    float gravity = G * ( (object.mass * mass) / (distance (object.x, object.y) * distance (object.x, object.y) ) ); //finds total gravitational force between hab and earth, in the formula G (m1 * m2) / r^2

    accX (theta, gravity);
    accY (theta, gravity);
}
Ejemplo n.º 2
0
void CCommandParser::RunL()
    {
    RDebug::Print(_L("CCommandParser::RunL report: %X"),iState);
    switch(iState)
        {
        case TControllerDataTypes::EWiiMoteReportButton:
            {
            TUint16 btn(0);
            btn = iDataPtr[2];
            btn = iDataPtr[2] << 8;
            btn |= iDataPtr[3];
            HandleButtonReport(btn);            
            }break;

        case TControllerDataTypes::EWiiMoteReportButtonAcc:
            {
            TUint16 btn(0);
            TUint16 accX(0);
            TUint16 accY(0);
            TUint16 accZ(0);
            btn = iDataPtr[2];
            btn = btn << 8;
            btn |= iDataPtr[3];
            HandleButtonReport(btn);
            
            accX = iDataPtr[4];
            accY = iDataPtr[5];
            accZ = iDataPtr[6];
            
            TUint8 lsb1(0);
            TUint8 lsb2(0);
            TUint8 lsb3(0);
            TUint8 lsb4(0);
            
            lsb1 = iDataPtr[2] & 0x40;
            lsb2 = iDataPtr[2] & 0x20;
            lsb3 = iDataPtr[3] & 0x40;
            lsb4 = iDataPtr[3] & 0x20;
            RDebug::Print(_L("XLRLSB: %X , %d - XLRLSB: %X , %d"),lsb1,lsb1,lsb2,lsb2);
            RDebug::Print(_L("XLRLSB: %X , %d - XLRLSB: %X , %d"),lsb3,lsb3,lsb4,lsb4);
            RDebug::Print(_L("AccX: %X , %d - AccY: %X , %d - AccZ: %X , %d"),accX,accX,accY,accY,accZ,accZ);
            
            HandleAccReport(accX,accY,accZ);
            }break;
            
        case TControllerDataTypes::EWiiMoteReportControlStatus:
            {
            TUint8 data(0);
            data = iDataPtr[7];
            
            TRemoteInfo info;
            info = iObserver.RemoteInfo();
            info.iCommand = (TControllerDataTypes::TWiiMoteCommands)iState;
            TReal32 d(data);
            TReal32 b(TControllerDataTypes::EWiiMoteControlStatusBattery);
            TInt16 bat=0;
            TReal calc( (d/b)*100);
            Math::Int(bat,calc);
            info.iBattery = bat;
            iObserver.UpdateRemoteInfo(info);
            }break;
            
        case TControllerDataTypes::EWiiMoteReportWrite:
            {
            TUint8 data1(0);
            TUint8 data2(0);
            TUint8 data3(0);
            TUint8 data4(0);
            data1 = iDataPtr[0];
            data2 = iDataPtr[1];
            data3 = iDataPtr[2];
            data4 = iDataPtr[3];

            TRemoteInfo info;
            info = iObserver.RemoteInfo();
            info.iCommand = (TControllerDataTypes::TWiiMoteCommands)data3;
            switch(data3)
                {
                case TControllerDataTypes::EWiiMoteCommandAudioEnable:
                case TControllerDataTypes::EWiiMoteCommandAudioMute:
                    {
                    if(data1 || data2 || data4)
                        {
                        info.iWiiSpeakerEnabled = TControllerDataTypes::EWiiSpeakerError;
                        }
                    }break;
                }            
            iObserver.UpdateRemoteInfo(info);
            }break;
        default:
            break;
        }
    }
Ejemplo n.º 3
0
void ship::fireEngine() {

    accX (turnRadians, engine);
    accY (turnRadians, engine);
}