提示コードですがコンストラクタでmSprite変数をstd::make_shared<>してDraw()関数部でなぜnullptrという例外が発生するのでしょうか?
色々調べましたが原因がどうしてもわかりません。どうすればいいのでしょうか?
cpp
1#include "../../Header/Game/MapChip.hpp" 2 3MapChip::MapChip(Entry* e, ObjectType type, std::shared_ptr<TextureData> data, TextureUV& uv, Box_Collision_2D& col, glm::ivec2 pos) : Object(e, type, col) 4{ 5 Owner = e; //Entryクラス 6 mPosition = pos; //座標 7 UV = uv; //UV座標 8 9 mSprite = std::make_shared<Sprite>(Owner, data); //スプライト 10 11} 12 13MapChip::MapChip() 14{ 15 16} 17 18MapChip::MapChip(const MapChip& m) 19{ 20 21} 22 23void MapChip::Update() 24{ 25 26} 27 28void MapChip::Draw() 29{ 30 printf("ああああ\n"); 31 mSprite->DrawGraph(mPosition,UV.start,UV.end); 32 printf("いいいい\n"); 33 34} 35 36MapChip::~MapChip() 37{ 38 39}
hpp
1#ifndef ___MAPCHIP_HPP_ 2#define ___MAPCHIP_HPP_ 3 4 5#include "../LoadTexture.hpp" 6#include "../Rectangle.hpp" 7#include "../Collision.hpp" 8#include "../Sprite.hpp" 9#include "Object.hpp" 10 11#include <iostream> 12#include "glm/glm.hpp" 13 14 15/*####################################################################### 16* NOTE 17* マップチップ一枚の情報 18* 19#########################################################################*/ 20 21 22class Entry; 23class MapChip : public Object 24{ 25public: 26 /* 27 * Entry クラス 28 * オブジェクトタイプ 29 * 画像データ 30 * UV座標 31 * 当たり判定 32 * 座標 33 */ 34 35 MapChip(Entry* e, ObjectType type, std::shared_ptr<TextureData> data, TextureUV& uv, Box_Collision_2D& col, glm::ivec2 pos); 36 MapChip(const MapChip& m); 37 MapChip(); 38 ~MapChip(); 39 40 void Update()override; 41 void Draw()override; 42private: 43 44 45 std::shared_ptr<Sprite> mSprite; //スプライト 46 TextureUV UV; //UV座標 47}; 48#endif
違うとは?
どういう意味でしょうか?
回答1件
あなたの回答
tips
プレビュー