int main(void) { e_init_port(); e_init_motors(); e_init_ad_scan(ALL_ADC); e_calibrate_ir(); int selector=getselector(); switch (selector) { case 0:robot_off();break; case 1:aggressive();break; case 2:fear();break; case 3:curious();break; case 4:love();break; case 5:robot_off();break; default:/*own high level behaviour*/break; } }
void Enemy::update(btDiscreteDynamicsWorld* dynamicsWorld, vec3* playerPosition, const string playerState, bool &isPlayerDead) { rigidBody->activate(true); if (isDead == true) { if (death_anim_frames_count == 0) { rigidBody->activate(false); model->setAnimation(death); } death_anim_frames_count++; } else if (state == State::WALKING) { walking(dynamicsWorld, playerPosition, playerState); } else if (state == State::AGGRESSIVE) { aggressive(dynamicsWorld, playerPosition, isPlayerDead); } else if (state == State::AWARE) { aware(dynamicsWorld, playerPosition, playerState); } angle = -(atan2(direction.z, direction.x) * 180 / 3.14f); /*Wyciagniecie pozycji rigidbody z macierzy*/ btScalar openGlMatrix[16]; rigidBody->getWorldTransform().getOpenGLMatrix(openGlMatrix); position.x = openGlMatrix[12]; position.y = openGlMatrix[13]; position.z = openGlMatrix[14]; float poprawka_wysokosci = -1.4f; model->updatePositon(position.x, position.y + poprawka_wysokosci, position.z); model->updateRotation(angle); rigidBody->setWorldTransform(btTransform(btQuaternion(btScalar(degreesToRadians(angle)), btScalar(0), btScalar(0)), btVector3(position.x, position.y, position.z))); }
void operator()() { CPPA_LOG_TRACE(""); detail::cs_thread fself; job_ptr job = nullptr; for (;;) { aggressive(job) || moderate(job) || relaxed(job); CPPA_LOG_DEBUG("dequeued new job"); if (job == m_dummy) { CPPA_LOG_DEBUG("received dummy (quit)"); // dummy of doom received ... m_job_queue->push_back(job); // kill the next guy return; // and say goodbye } if (job->resume(&fself) == resumable::done) { CPPA_LOG_DEBUG("actor is done"); /*FIXME bool hidden = job->is_hidden(); job->deref(); if (!hidden)*/ get_actor_registry()->dec_running(); } job = nullptr; } }