无敌框架并受到伤害等级
invincibility frame and take damage class
我是初学者,我已经阅读了文档,但我需要练习学习,现在我被卡住了。
所以我想做一个类拿Dommage应用一些dmg并激活倒计时以创建无敌框架。
所以我试了这个(见下面的代码(
这是我独自创建的第一堂课,所以我不明白出了什么问题
主要:
if(Collision::PixelPerfectTest(sprite_perso,sprite_ennemis))
{
std::cout<<"collision pp"<<std::endl;
takeDommage::prendreDegat(10);
std::cout<<pv<<std::endl;
}
拿多米奇 :
#ifndef TAKEDOMMAGE_H
#define TAKEDOMMAGE_H
#include <SFML/Graphics.hpp>
#include <string>
#include <iostream>
#include <cstdlib>
#include <cmath>
class takeDommage
{
public:
takeDommage();
prendreDegat(int Dommage);
//virtual ~takeDommage();
protected:
sf::Clock takeDammageClock;
int Dommage;
private:
};
#endif // TAKEDOMMAGE_H
拿多姆吉.cpp
#include "takeDommage.h"
takeDommage::takeDommage()
{
}
void takeDommage::prendreDegat(int Dommage)
{
if(takeDammageClock.getElapsedTime().asSeconds()>=3)
{
std::cout << "bite" << std::endl;
pv -= Dommage;
takeDammageClock.restart();
}
}
错误:
||=== Build: Debug in TheGameSFML (compiler: GNU GCC Compiler) ===|
E:WorkTop_secretcodeTheGamemain.cpp||In function 'int main()':|
E:WorkTop_secretcodeTheGamemain.cpp|168|warning: comparison between signed and unsigned integer expressions [-Wsign-compare]|
E:WorkTop_secretcodeTheGamemain.cpp|180|warning: comparison between signed and unsigned integer expressions [-Wsign-compare]|
E:WorkTop_secretcodeTheGamemain.cpp|217|error: cannot call member function 'int takeDommage::prendreDegat(int)' without object|
E:WorkTop_secretcodeTheGamemain.cpp|156|warning: unused variable 'enemySpawnTimer' [-Wunused-variable]|
E:WorkTop_secretcodeTheGamesrctakeDommage.cpp|8|error: prototype for 'void takeDommage::prendreDegat(int)' does not match any in class 'takeDommage'|
includetakeDommage.h|15|error: candidate is: int takeDommage::prendreDegat(int)|
||=== Build failed: 3 error(s), 3 warning(s) (0 minute(s), 0 second(s)) ===|
你似乎对 C++ 很陌生。 编译器已经告诉你它出了什么问题。error: cannot call member function 'int takeDommage::prendreDegat(int)' without object|
您需要先实例化(创建(对象。 您访问的方式好像 takeDommage 函数是一个静态函数,但事实并非如此。 它的公共 takeDamage 的成员函数
假设您已经在 if 语句调用之前的某个地方实例化了 takeDommage 类,
TakeDommage Obj;
...
...
if(Collision::PixelPerfectTest(sprite_perso,sprite_ennemis))
{
std::cout<<"collision pp"<<std::endl;
Obj.prendreDegat(10); //calling the prendredegat member function of Obj
std::cout<<pv<<std::endl;
}
除此之外,您还缺少返回类型void
在函数名称prendreDegat
class takeDommage
{
public:
takeDommage();
//prendreDegat(int Dommage); //missing void
void prendreDegat(int Dommage); //correct way. which can be translated as Prendredegat returns nothing.
相关文章:
- 在没有Xcode的情况下在Mac捆绑包中嵌入框架
- catch框架有没有办法比较流或文件
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 使用Qt框架在c ++类中创建API调用
- 如何在ECS框架中更新组件数据和通知系统
- 寻找地理和伤害意味着超载
- VSCode IntelliSense无法识别SDL框架的SDL_image扩展库
- 用于C++的静态二进制检测或二进制重写工具和框架
- GoogleMock是否仍然打算与任何测试框架一起使用?
- 带有框架的 QGraphicsTextItem 的 QPropertyAnimation 会使文本抖动
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- 修改生成文件以简化框架 #include 路径
- 无敌框架并受到伤害等级
- 如何在提升构建中设置环境变量以进行提升单元测试框架?
- 使用 gtest 框架在单元测试代码中检查目标对象的私有变量的最佳实践是什么?
- Xcode 中的加速框架以获得 A 的 QR 分解,但找不到 zgeqrf
- 是否可以在 Xcode C++项目中包含框架?
- 我的精灵使用名为 ASGE 的C++框架卡在屏幕边缘
- 受到伤害并使对手HP达到0
- 静态链接到 CMake 中的 macOS 框架