子弹的实现
程序员文章站
2024-03-25 23:51:16
...
子弹的实现因为是 玩家也在用 敌人也在用 所以也是一个公共的类 那么怎么区别 这样的存在呢 其实很简单 在敌人和 玩家调用 这个子弹类的时候 调用子弹 类里的一个函数 这个 函数是这样的
bool Bullet::init() {
/*if ( ! cocos2d::Node::init)
{
return false;
}*/
Tepy = HowBullets::player;
speek =500;
return true;
}
void Bullet::BulletInit(HowBullets t, Vec2 pos)
{
Tepy = t;
std::string Path = "";
switch (Tepy)
{
case Bullet::HowBullets::none:
break;
case Bullet::HowBullets::player:
Path = "pic/bullet_player.png";break;
case Bullet::HowBullets::enemy1:
Path = "pic/enemybullet1.png";
dirmove = Vec2(0, -1);
bullet = Sprite::create(Path);
break;
case Bullet::HowBullets::enemy2:
Path = "pic/enemybullet2.png";
dirmove = Vec2(0, -1);
bullet = Sprite::create(Path);
break;
case Bullet::HowBullets::enemy3:
Path = "pic/enemybullet3.png";
dirmove = Vec2(0, -1);
bullet = Sprite::create(Path);
break;
case Bullet::HowBullets::special1:
Path = "pic/texiao1.png";
dirmove = Vec2(0, 1);
bullet = Sprite::create(Path);
break;
case Bullet::HowBullets::special2:
break;
case Bullet::HowBullets::special3:
break;
case Bullet::HowBullets::special4:
break;
case Bullet::HowBullets::special5:
break;
}
bullet->setTag(1);
bullet->setName("bullet1");
bullet->addComponent(physicsBody);
bullet->setScale(0.5f);
this->addChild(bullet, 1);
this->setPosition(pos+Vec2(0,50));
auto contactListener = EventListenerPhysicsContact::create();
contactListener->onContactBegin = CC_CALLBACK_1(Bullet::onContactBegin1, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(contactListener, this);
scheduleUpdate();
}
这个就是子弹里的别的类调用的函数
这个类init的函数里就是用来做初始值得 这个函数 解决了 谁是谁的子弹 那个人调用了就用那个 人的子弹最后一个调用时让子弹行动的
void Bullet::update(float dt)
{Vec2 pos = this->getPosition();
pos += speek * dirmove*dt;
this->setPosition(pos);
if (this->getPositionY() > Director::getInstance()->getVisibleSize().height + 200) {
this->removeFromParent();
}
然子弹移动下去 每个子弹都是每个个体的 移动 别的函数调动的时候怎么调用
auto bullet=Bullet::create()
bullet->BulletInit(Bullet::Howbullet::player,pos);
bullet->setScale(0.5f, 1.0f);
this->addChild(bullet, 2);
这样就 OK了 做到这 那么敌人飞机子弹就全部完事了现在你们可以运行了 就都有了
上一篇: webpack之小白从零开始
下一篇: entitas学习笔记二