bomb* b = new bomb(); weapons.push_back(b); cout << weapons[0]->id << endl;为什么这么插入还是不行
时间: 2024-05-17 14:13:06 浏览: 140
这段代码中的 `weapons` 应该是一个 `vector` 容器,其中存储的元素类型是指向 `bomb` 对象的指针,即 `std::vector<bomb*> weapons;`。如果插入不成功,可能是由于 `bomb` 类的定义中没有 `id` 成员变量。你需要确认 `bomb` 类中是否定义了 `id` 成员变量,并且这个成员变量的访问权限是否为 `public`。
相关问题
public void shoot(){ if(index%bulletInterval==0){ if(hero.doubleFire<=0){ Bullet bullet=new Bullet(hero.x,hero.y-hero.height/2); flyingObjects=Arrays.copyOf(flyingObjects, flyingObjects.length+1); flyingObjects[flyingObjects.length-1]=bullet; } else{ Bullet bullet_1=new Bullet(hero.x-hero.width/4,hero.y-hero.height/2); Bullet bullet_2=new Bullet(hero.x+hero.width/4,hero.y-hero.height/2); flyingObjects=Arrays.copyOf(flyingObjects, flyingObjects.length+2); flyingObjects[flyingObjects.length-2]=bullet_1; flyingObjects[flyingObjects.length-1]=bullet_2; hero.doubleFire--; } } if(index%bombInterval==0){ if(hero.bombFire > 0){ Bomb bomb=new Bomb(hero.x,hero.y-hero.height/2); flyingObjects=Arrays.copyOf(flyingObjects, flyingObjects.length+1); flyingObjects[flyingObjects.length-1]=bomb; hero.bombFire--; } } }
这段代码看起来像是一个射击游戏的控制函数,其中包含了发射子弹和炸弹的逻辑。在函数中,通过 index 变量的值来确定是否可以发射子弹和炸弹,其中 bulletInterval 和 bombInterval 变量用来控制子弹和炸弹的发射间隔。如果英雄角色的 doubleFire 属性大于 0,则可以同时发射两个子弹,否则只能发射一个子弹。如果英雄角色的 bombFire 属性大于 0,则可以发射一个炸弹。函数的最后,通过修改 flyingObjects 数组的长度来添加新的子弹或炸弹对象。
bullet_supply = supply.Bullet_Supply(bg_size) bomb_supply = supply.Bomb_Supply(bg_size) SUPPLY_TIME = USEREVENT pygame.time.set_timer(SUPPLY_TIME, 30 * 1000)
这段代码是在使用pygame模块创建一个2D游戏时,创建了两个不同类型的补给物品 - 子弹和炸弹,并设置了一个定时器,每隔30秒触发一次,用于生成随机位置的补给物品。其中`supply.Bullet_Supply(bg_size)`和`supply.Bomb_Supply(bg_size)`是补给物品的类,`bg_size`是游戏窗口的大小。`USEREVENT`是pygame中的一个事件类型,用于自定义事件。
阅读全文