void EnemyEntity::Start() { ResourceCache* cache = GetSubsystem<ResourceCache>(); AnimationSet2D* animationSet = cache->GetResource<AnimationSet2D>("Urho2D/tortuga2.scml"); if (!animationSet) return; AnimatedSprite2D* animatedSprite = node_->CreateComponent<AnimatedSprite2D>(); animatedSprite->SetLayer(2); // Set animation animatedSprite->SetAnimationSet(animationSet); animatedSprite->SetAnimation("walk"); animatedSprite->SetSpeed(1.0f); RigidBody2D* bodysprite = node_->CreateComponent<RigidBody2D>(); bodysprite->SetBodyType(BT_DYNAMIC); bodysprite->SetFixedRotation(true); //bodysprite->SetBullet(false); //bodysprite->SetLinearVelocity(Vector2::ZERO); CollisionCircle2D* circle = node_->CreateComponent<CollisionCircle2D>(); // Set radius circle->SetRadius(1.2f); circle->SetDensity(1.0f); circle->SetFriction(0.4f); circle->SetRestitution(0.0f); circle->SetCenter(0,0.35f); circle->SetCategoryBits(8192); circle->SetMaskBits(65533); vel = Vector2(-2.0f,0); }
void EnemyEntity::Shoot() { ResourceCache* cache = GetSubsystem<ResourceCache>(); Sprite2D* bulletSprite = cache->GetResource<Sprite2D>("Urho2D/bullet2.png"); if (!bulletSprite) return; SharedPtr<Node> bulletNode_(GetScene()->CreateChild("e_bullet")); bulletNode_->SetPosition2D(node_->GetPosition2D()); //bulletNode_->SetDirection(Vector3(dir.x_,-dir.y_,0)); StaticSprite2D* staticSprite = bulletNode_->CreateComponent<StaticSprite2D>(); staticSprite->SetSprite(bulletSprite); staticSprite->SetLayer(6 * 10); RigidBody2D* bulletBody = bulletNode_->CreateComponent<RigidBody2D>(); bulletBody->SetBodyType(BT_DYNAMIC); bulletBody->SetFixedRotation(true); bulletBody->SetBullet(true); CollisionCircle2D* circleshape = bulletNode_->CreateComponent<CollisionCircle2D>(); circleshape->SetRadius(0.08f); circleshape->SetDensity(1.0f); circleshape->SetFriction(0.0f); circleshape->SetRestitution(0.0f); circleshape->SetMaskBits(57340); circleshape->SetCategoryBits(2); bulletNode_->CreateComponent<BulletEntity>(); Node* nodebullet2 = bulletNode_->Clone(); Node* nodebullet3 = bulletNode_->Clone(); Node* nodebullet4 = bulletNode_->Clone(); nodebullet2->GetComponent<RigidBody2D>()->ApplyLinearImpulse(Vector2(0.030f,0.13f),node_->GetPosition2D(),true ); nodebullet3->GetComponent<RigidBody2D>()->ApplyLinearImpulse(Vector2(-0.02f,0.13f),node_->GetPosition2D(),true ); nodebullet4->GetComponent<RigidBody2D>()->ApplyLinearImpulse(Vector2(-0.030f,0.13f),node_->GetPosition2D(),true ); bulletBody->ApplyLinearImpulse(Vector2(0.02f,0.13f),node_->GetPosition2D(),true ); }