さあC言語(DXライブラリ)を使って超繊細、美麗、箱庭シューティングゲームを作ってみましょう 超初心者向けです 0.367
sqrt関数を使って√2の値を求めてみましょう そのためにヘッダファイル<math.h>をインクルードします
sqrt関数を使って√2の値を求めてみましょう そのためにヘッダファイル<math.h>をインクルードします
ソーラー「そうなんです
左に5ドット
上に5ドット移動をする場合
合成される移動速度は
💖5√2ドット💖
になります
その時の様子はこちらです
👇
https://solalion.blogspot.com/2022/07/blog-post_93.html
ソーラー「このように
左に5ドット
上に5ドット移動をする場合
オレンジリング10体の移動速度は
💖5√2ドット💖
になるのです
このとき
オレンジリング10体同士の間に
隙間ができることになります
左上にオレンジリング10体が移動する場合
オレンジリング10体同士の間に隙間ができないようにするには
オレンジリング10体の移動速度を
💖5ドット💖
にする必要があります
その様子はこちらです
👇
https://solalion.blogspot.com/2022/07/blog-post_21.html
このように
左上への
オレンジリング10体の移動速度を
💖5ドット💖
にするには
x軸方向の移動速度を-5/2√2ドット
y軸方向の移動速度を-5/2√2ドット
にする必要があります
solarplexuss「結局
左上にオレンジリング10体が移動する場合でも
左右にオレンジリング10体が移動する場合でも
オレンジリング10体同士の間に隙間ができないようにするには
オレンジリング10体の移動速度を
💖5ドット💖
にする必要があるんだね
でも
x軸方向の移動速度を-5/2√2ドット
y軸方向の移動速度を-5/2√2ドット
って
どうやって
√2の値を求めるの?」
ソーラー「
√2の値を計算するには
sqrt関数を用います
sqrt関数は
ヘッダファイル <math.h>
に含まれている関数です
なので
sqrt関数を使用するには
ヘッダファイル <math.h>
を
インクルードする必要があります
sqrt関数をもちいて
√2の値を求めてみましょう
そのプログラムはこちらです
👇
#include <stdio.h>
#include <math.h>
int main(void)
{
double x = 2.0;
double y = 0;
y = sqrt(x);
//👆🌞 xの平方根を計算してyに代入しています
printf("√2の値は%fです", y);
//👆🌞 実数を表示するには%f出力変換指定子を用います %d出力変換指定子ではありません
DxLib_End(); // DXライブラリの使用を終了します DXライブラリの使用しているメモリ領域が解放されます
return 0; // プログラムを終了します
}
プログラムの実行結果は
√2の値は1.414214です
となりますが
みなさんは
DXライブラリを用いるために
Visual Studioの設定を変更しているので
上記のプログラムを実行することはできません
そこで
次のプログラムを実行して
√2の値を求めてみましょう
そのプログラムはこちらです
👇
#include "DxLib.h"
#include <math.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE); // ウインドウモードに設定します
if (DxLib_Init() == -1) // DXライブラリを初期化処理しています
{
return -1; // DXライブラリの初期化に失敗したら直ちにプログラムを終了します
}
SetDrawScreen(DX_SCREEN_BACK);//👈🌞SetDrawScreen関数です 裏画面に画像を描きます printfDxで表示される文字も裏画面に描かれることになります
int FontHandle;
FontHandle = CreateFontToHandle(NULL, 10, 3);
// 👆CreateFontToHandle(NULL, 10, 3)が実行されると書体のデータ(フォント)に対応する値が戻り値としてCreateFontToHandle(NULL, 10, 3)に返されます
// 👆FontHandle に書体のデータ(フォント)に対応する値を代入しています
int FontHandle1;
FontHandle1 = CreateFontToHandle(NULL, 15, 0);
// 👆CreateFontToHandle(NULL, 15, 0)が実行されると書体のデータ(フォント)に対応する値が戻り値としてCreateFontToHandle(NULL, 15, 0)に返されます
// 👆FontHandle1に書体のデータ(フォント)に対応する値を代入しています
SetFontSize(8);
double x = 2.0;//double型の変数xに実数2.0を代入しています 2.0の平方根をもとめます
double y = 0;
while (CheckHitKey(KEY_INPUT_ESCAPE) == 0 && ProcessMessage() == 0) {
//👇🌞🌞🌞今 何フレーム目なのかを表示します
DrawStringToHandle(0, 0, "√2の値は", GetColor(255, 255, 255), FontHandle1);//👈🌞🌞🌞FontHandle1が用いられています
DrawStringToHandle(120, 0, "です", GetColor(255, 255, 255), FontHandle1);//👈🌞🌞🌞FontHandle1が用いられています
y = sqrt(x);
DrawFormatString(75, 5, GetColor(255, 255, 255), "%f", y);
//👆🌞🌞🌞今 何フレーム目なのかを表示します
ScreenFlip();
ClearDrawScreen();
};
DxLib_End(); // DXライブラリの使用を終了します DXライブラリの使用しているメモリ領域が解放されます
return 0; // プログラムを終了します
}
デバッグなしで実行をしてから一度プログラムを終了し
生成されたexeファイルをハードディスクから探し出しクリックする方法により得られたプログラムの実行結果はこちらです
👇
https://solalion.blogspot.com/2022/07/blog-post_15.html
ソーラー「
√2の値は1.414214です
が表示されています
√2の値を求めることができたね」
マックス「
√2の値は1.41421356・・・
だが
小数点以下7位の5が四捨五入されて
1.414214
になっているわけだ」
ソーラー「変数を介在させなくても
sqrt関数の引数に直接数値を代入して
sqrt(2)
と記述しても
√2の値を求めることができます」
そのプログラムはこちらです
👇
#include "DxLib.h"
#include <math.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE); // ウインドウモードに設定します
if (DxLib_Init() == -1) // DXライブラリを初期化処理しています
{
return -1; // DXライブラリの初期化に失敗したら直ちにプログラムを終了します
}
SetDrawScreen(DX_SCREEN_BACK);//👈🌞SetDrawScreen関数です 裏画面に画像を描きます printfDxで表示される文字も裏画面に描かれることになります
int FontHandle;
FontHandle = CreateFontToHandle(NULL, 10, 3);
// 👆CreateFontToHandle(NULL, 10, 3)が実行されると書体のデータ(フォント)に対応する値が戻り値としてCreateFontToHandle(NULL, 10, 3)に返されます
// 👆FontHandle に書体のデータ(フォント)に対応する値を代入しています
int FontHandle1;
FontHandle1 = CreateFontToHandle(NULL, 15, 0);
// 👆CreateFontToHandle(NULL, 15, 0)が実行されると書体のデータ(フォント)に対応する値が戻り値としてCreateFontToHandle(NULL, 15, 0)に返されます
// 👆FontHandle1に書体のデータ(フォント)に対応する値を代入しています
SetFontSize(8);
while (CheckHitKey(KEY_INPUT_ESCAPE) == 0 && ProcessMessage() == 0) {
//👇🌞🌞🌞今 何フレーム目なのかを表示します
DrawStringToHandle(0, 0, "√2の値は", GetColor(255, 255, 255), FontHandle1);//👈🌞🌞🌞FontHandle1が用いられています
DrawStringToHandle(120, 0, "です", GetColor(255, 255, 255), FontHandle1);//👈🌞🌞🌞FontHandle1が用いられています
DrawFormatString(75, 5, GetColor(255, 255, 255), "%f", sqrt(2));//👈🌞🌞🌞ここに注目💖
//👆🌞🌞🌞今 何フレーム目なのかを表示します
ScreenFlip();
ClearDrawScreen();
};
DxLib_End(); // DXライブラリの使用を終了します DXライブラリの使用しているメモリ領域が解放されます
return 0; // プログラムを終了します
}
デバッグなしで実行をしてから一度プログラムを終了し
生成されたexeファイルをハードディスクから探し出しクリックする方法により得られたプログラムの実行結果はこちらです
👇
https://solalion.blogspot.com/2022/07/blog-post_15.html
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます