質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

DXライブラリ

DXライブラリとは、DirectXを使ったWindowsソフトの開発に必ず付いて回るDirectXやWindows関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。

Q&A

解決済

1回答

1131閲覧

DrawGraph();関数がエラーになる原因が知りたい。

退会済みユーザー

退会済みユーザー

総合スコア0

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

DXライブラリ

DXライブラリとは、DirectXを使ったWindowsソフトの開発に必ず付いて回るDirectXやWindows関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。

0グッド

1クリップ

投稿2021/04/15 09:22

提示コードですがprintf();で変数の中身を確認しているのですがLoadgraph()関数では-1以外が返ってきているためリファレンス通り問題ありません。DrawGraph();関数で"あああああ"が表示されていますつまりDrawGraph();関数で問題が起きているということなのですがこれはなぜでしょうか?リファレンスを確認しまたが引数の指定などは間違えておらず座標の設定も表示画面ないのため描画されるはずです。

ライブラリDrawGraph : https://dxlib.xsrv.jp/function/dxfunc_graph1.html#R3N7
ライブラリLoadGraph : https://dxlib.xsrv.jp/function/dxfunc_graph1.html#R3N2
イメージ説明
イメージ説明

hpp

1#ifndef ___GAME_HPP 2#define ___GAME_HPP 3#include "glm/glm.hpp" 4#include <array> 5 6#define SCREEN_WIDTH ((int)640) 7#define SCREEN_HEIGHT ((int)480) 8 9//前方宣言 10class Entry; 11class Game 12{ 13public: 14 Game(Entry* entry); 15 ~Game(); 16 17 void Update(); 18 void Draw(); 19 20 21private: 22 23 //スプライト 24 int handle_Player; //プレイヤー 25 26 27 28 29 30 31 Entry* owner; //Entryクラス 32}; 33 34#endif 35

cpp

1#include "Game.hpp" 2#include <iostream> 3#include "DxLib.h" 4 5 6Game::Game(Entry* entry) 7{ 8 owner = entry; //Entry クラス 9 10 handle_Player = 0; 11 int handle_Player = LoadGraph("Assets/test.png"); //プレイヤー 12 printf("%d\n",handle_Player); 13} 14 15 16Game::~Game() 17{ 18 19} 20 21//計算 22void Game::Update() 23{ 24 25} 26 27//描画 28void Game::Draw() 29{ 30 DrawBox(0,0,100,100,GetColor(255,255,255),true); 31 32 if (DrawGraph(100, 100, handle_Player, TRUE) == -1) 33 { 34 printf("あああああああ\n"); 35 } 36} 37

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

txty

2021/04/15 09:56 編集

c++で推すのは勝手だけどdirectxかunityで推すべきかもしれない h○lはdirectxだったし、(他にもやってるみたいだけど)他の専門は2カ所ともunityだった。2年前ぐらいの情報だけどもう会社うけてもいいような(まだ若いからどうにかなる)。責任とらないけど、それとも趣味なのか。dxlibは学校で学ぶんですか
退会済みユーザー

退会済みユーザー

2021/04/15 10:14

ゲームプログラマーの専門学校で三年間学んでましたが上達しないのでコツコツ努力しています。 なんでもいいのですがunityはちょっと情報が少なく飛行機のを飛ばす等の処理にはまりちょっと難しいので とりえずdxlib です。
txty

2021/04/15 11:01 編集

まあ何社も受ければ受かるだろうね。(たぶん)関係ないけどサーバーはもっと年齢とっても平気って聞いた。わたしの年齢でも平気なのだが有余がないのでもう私は好きなことやってる
guest

回答1

0

ベストアンサー

dxlibのことはさっぱりわかりませんが、

cpp

1 handle_Player = 0; 2 int handle_Player = LoadGraph("Assets/test.png"); //プレイヤー

ローカル変数 handle_Player に LoadGraph() の結果を代入しています。データメンバ Game::handle_Palyer ではなく。

こういうミスを防ぐために、「データメンバは m_ で始める」「データメンバは _ で終わる」のようなコーディングスタイルがあるわけです。

投稿2021/04/15 09:30

int32_t

総合スコア20884

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/04/15 12:01

なるほど int m_handle_Player_; //プレイヤー とるのでしょうか?
int32_t

2021/04/15 12:54

やるなら、m_handle_player か handle_palyer_ か mHandlePlayer ですかね。大事なのは、全ソースで統一することです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問