カウントしている変数の型はint型で、C言語の「itoa」や「sprintf」を使ってみてchar*(文字列型)に直そうとやったのですが駄目で、エラーが出てしまいます。
今回初めてファイルを分けて関数を使ってみているのですが駄目でした、、、
▽ エラー内容 ▽
1.itoaの場合
オフトピック
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー C4996 'itoa': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _itoa. See online help for details. 初めてのゲーム2 C:\Users\user\source\repos\初めてのゲーム2\test.cpp 17
エラー C4996 'itoa': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _itoa. See online help for details. 初めてのゲーム2 C:\Users\user\source\repos\初めてのゲーム2\test.cpp 17
オフトピック
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー C4996 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 初めてのゲーム2 C:\Users\user\source\repos\初めてのゲーム2\test.cpp 17
エラー C4996 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 初めてのゲーム2 C:\Users\user\source\repos\初めてのゲーム2\test.cpp 17
// main
#define WORLD_WIDTH 640
#define WORLD_HEIGHT 480
#define Tama 500
#define TEKI_MAX 50
#define BOMB_MAX TEKI_MAX
#include "DxLib.h"
#include "test.h"
#include <stdio.h>
#include <string>
#include <stdlib.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
int i;
int j;
int b;
int JikiX, JikiY, JikiGraph;
int JikiTamaGraph, JikiTamaX[Tama], JikiTamaY[Tama], JikiTamaFlag[Tama];
int Teki1X[TEKI_MAX], Teki1Y[TEKI_MAX], Teki1Flag[TEKI_MAX], Teki1Graph;
int Teki1W, Teki1H, TamaW, TamaH;
int titlebackground, gamebackground, titlefont, titlemojifont;
int sht_sound, sht_game_sound, sht_powerup_sound, sht_bc_sound;
int BombX[BOMB_MAX], BombY[BOMB_MAX], BombStatus[BOMB_MAX];
int BombImage[16];
int Tekikazu2;
ChangeWindowMode(true);
SetGraphMode(WORLD_WIDTH, WORLD_HEIGHT, 64);
DxLib_Init();
SetDrawScreen(DX_SCREEN_BACK);
SetDrawMode(DX_DRAWMODE_BILINEAR);
SetWindowText("生姜");
for (i = 0; i < Tama; i++)
{
JikiTamaFlag[i] = 0;
}
for (j = 0; j < TEKI_MAX; j++)
{
Teki1Flag[j] = 0;
}
for (b = 0; b < BOMB_MAX; b++)
{
BombStatus[i] = -1;
}
titlebackground = LoadGraph("Game.title.jpg");
gamebackground = LoadGraph("title2.jpg");
JikiGraph = LoadGraph("sprite.png");
JikiX = 320; JikiY = 400;
JikiTamaGraph = LoadGraph("sht.jikishot.png");
Teki1Graph = LoadGraph("killerT.png");
titlefont = CreateFontToHandle("けいふぉんと", 50, 9, DX_FONTTYPE_ANTIALIASING_EDGE);
titlemojifont = CreateFontToHandle("07やさしさゴシック手書き", 20, 5, DX_FONTTYPE_ANTIALIASING_EDGE);
sht_sound = LoadSoundMem("sht.c.z.mp3");
sht_game_sound = LoadMusicMem("sht.game.mp3");
sht_powerup_sound = LoadSoundMem("powerup.mp3");
sht_bc_sound = LoadSoundMem("bc.mp3");
Tekikazu2 = 0;
SetVolumeMusicMem(255 * 80 / 100, sht_game_sound);
SetVolumeMusicMem(255 * 80 / 100, sht_bc_sound);
SetVolumeMusicMem(255 * 80 / 100, sht_powerup_sound);
LoadDivGraph("sht.bomb.png", 16, 8, 2, 71, 68, BombImage);
bool TekiDesFlag = false;
// 弾のグラフィックのサイズをえる
GetGraphSize(JikiTamaGraph, &TamaW, &TamaH);
// 四角君のグラフィックのサイズを得る
GetGraphSize(Teki1Graph, &Teki1W, &Teki1H);
enum {
TITLE,
GAME,
END,
}status = TITLE;
while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0)
{
ClearDrawScreen();
switch (status)
{
case TITLE:
DrawGraph(0, 0, titlebackground, 0);
if (CheckHitKey(KEY_INPUT_Z)) {
status = GAME;
PlaySoundMem(sht_sound, DX_PLAYTYPE_BACK);
PlayMusicMem(sht_game_sound, DX_PLAYTYPE_BACK);
}
break;
case GAME:
DrawGraph(0, 0, gamebackground, 0);
break;
case END:
break;
}
if (status == TITLE)
{
DrawStringToHandle(70, 200, "シューティングゲーム", GetColor(255, 255, 255), titlefont);
DrawStringToHandle(30, 420, "Zでゲーム開始", GetColor(255, 255, 255), titlemojifont);
DrawStringToHandle(30, 450, "ESCでゲーム終了", GetColor(255, 255, 255), titlemojifont);
}
if (status == GAME)
{
DrawGraph(JikiX, JikiY, JikiGraph, true);
if (CheckHitKey(KEY_INPUT_W))JikiY -= 5;
if (CheckHitKey(KEY_INPUT_A))JikiX -= 5;
if (CheckHitKey(KEY_INPUT_S))JikiY += 5;
if (CheckHitKey(KEY_INPUT_D))JikiX += 5;
DrawStringToHandle(230, 10, "敵を50体倒せ!", GetColor(255, 255, 255), titlemojifont);
if (CheckHitKey(KEY_INPUT_SPACE) == 1)
{
i = -1;
for (int p = 0; p < Tama; p++) // 配列を走査し
{
if (JikiTamaFlag[p] != 1) // 空いている場所を見つけたら
{
i = p; // その添字をiに設定
break;
}
}
if (i >= 0)
{
int Pw, Ph, Tw, Th;
GetGraphSize(JikiGraph, &Pw, &Ph);
GetGraphSize(JikiTamaGraph, &Tw, &Th);
// 弾iの位置をセット、位置はボール君の中心にする
JikiTamaX[i] = (Pw - Tw) / 2 + JikiX;
JikiTamaY[i] = (Ph - Th) / 2 + JikiY;
JikiTamaFlag[i] = 1;
}
}
for (i = 0; i < Tama; i++)
{
// 自機の弾iの移動ルーチン( 存在状態を保持している変数の内容が1(存在する)の場合のみ行う )
if (JikiTamaFlag[i] == 1)
{
// 弾iを16ドット上に移動させる
JikiTamaY[i] -= 20;
for (int a = 0; a < TEKI_MAX; a++)
{
int p = i;
if (Teki1Flag[a] != 0 && JikiTamaFlag[p] == 1)
{
if (((JikiTamaX[p] > Teki1X[a] && JikiTamaX[p] < Teki1X[a] + Teki1W) ||
(Teki1X[a] > JikiTamaX[p] && Teki1X[a] < JikiTamaX[p] + TamaW)) &&
((JikiTamaY[p] > Teki1Y[a] && JikiTamaY[p] < Teki1Y[a] + Teki1H) ||
(Teki1Y[a] > JikiTamaY[p] && Teki1Y[a] < JikiTamaY[p] + TamaH)))
{
// 敵と弾が接触している場合
PlaySoundMem(sht_bc_sound, DX_PLAYTYPE_BACK);
if (!TekiDesFlag)
{
for (b = 0; b < BOMB_MAX; b++)
{
if (BombStatus[b] < 0)
{
BombStatus[b] = 0;
BombX[b] = Teki1X[a];
BombY[b] = Teki1Y[a];
break;
}
}
}
TekiDesFlag = false;
Tekikazu_Update();
Tekikazu2 += 1;
Teki1Flag[a] = 0;
JikiTamaFlag[p] = 0;
}
else {
TekiDesFlag = false;
}
}
}
// 画面外に出てしまった場合は存在状態を保持している変数に0(存在しない)を代入する
if (JikiTamaY[i] < -80)
{
JikiTamaFlag[i] = 0;
}
// 画面に弾iを描画する
DrawGraph(JikiTamaX[i] + 10, JikiTamaY[i] - 30, JikiTamaGraph, true);
DrawGraph(JikiTamaX[i] - 10, JikiTamaY[i] - 30, JikiTamaGraph, true);
}
}
if (rand() < (RAND_MAX / 100)) // 乱数で敵、発生
{
//j = -1;
for (int t = 0; t < TEKI_MAX; t++) // 配列を走査し
{
// if (PienTamaFlag[t] != 1) // 空いている場所を見つけたら
if (Teki1Flag[t] != 1) // 空いている場所を見つけたら
{
Teki1X[t] = GetRand(WORLD_WIDTH);
Teki1Y[t] = -64;
Teki1Flag[t] = 1;
break;
}
}
}
// 敵の描画
for (j = 0; j < TEKI_MAX; j++)
{
if (Teki1Flag[j] != 0) {
Teki1Y[j] += 3;
DrawGraph(Teki1X[j], Teki1Y[j], Teki1Graph, true);
}
}
//爆発アニメーションの描画
for (b = 0; b < BOMB_MAX; b++)
{
if (BombStatus[b] >= 0)
{
DrawGraph(BombX[b], BombY[b], BombImage[BombStatus[b]], true);
BombStatus[b]++;
if (BombStatus[b] >= 16)
{
BombStatus[b] = -1;
}
}
}
if (Tekikazu2 == 9 || Tekikazu2 == 19 || Tekikazu2 == 29 || Tekikazu2 == 39)
{
PlaySound("nyokinyoki.mp3", DX_PLAYTYPE_BACK);
}
if (Tekikazu2 == 10)
{
JikiTamaGraph = LoadGraph("tama.10.png");
}
else if (Tekikazu2 == 20)
{
JikiTamaGraph = LoadGraph("tama.20.png");
}
else if (Tekikazu2 == 30)
{
JikiTamaGraph = LoadGraph("tama.30.png");
}
else if (Tekikazu2 == 40)
{
JikiTamaGraph = LoadGraph("tama.40.png");
}
if (Tekikazu2 == TEKI_MAX)
{
PlaySoundMem(sht_powerup_sound, DX_PLAYTYPE_BACK);
StopMusicMem(sht_game_sound);
status = END;
}
Tekikazu_Draw();
//壁の当たり判定
if (JikiX > 640 - 64) JikiX = 640 - 64;
if (JikiX <= 0) JikiX = 0;
if (JikiY > 480 - 64) JikiY = 480 - 64;
if (JikiY <= 0) JikiY = 0;
}
//もしEND画面だったら
if (status == END)
{
//CLEAR!と描画する
DrawStringToHandle(210, 200, "CLEAR!", GetColor(255, 255, 255), titlefont);
}
//裏画面を表画面に描画
ScreenFlip();
}
//DxLibの終了
DxLib_End();
//プログラムの終了
return 0;
}
#include "DxLib.h"
#include "test.h"
#include <stdio.h>
#include <stdlib.h>
static int Tekikazu = 0;
void Tekikazu_Update() {
Tekikazu += 1;
}
void Tekikazu_Draw() {
static char tk[1024];
static int itk = 0;
itk = Tekikazu;
itoa(itk,tk,10);
DrawString(200, 200, tk, GetColor(255, 255, 255), true);
}
あっているのかもわかりません。(二重include防止とか?・・)
ご指摘よろしくおねがいします。