1時間目
#include "DxLib.h" #include "globals.h" #include "input.h" #include "Vector2D.h" //ファイルの中だけで使えるグローバル変数 namespace { const int BGCOLOR[3] = {255, 250, 205}; // 背景色{ 255, 250, 205 }; // 背景色 int crrTime; int prevTime; float atTime;//フレーム間時間表示用の変数 Vector2D a(0, 0); Vector2D b(50, 0); } float gDeltaTime = 0.0f; // フレーム間の時間差 void DxInit() { ChangeWindowMode(true); SetWindowSizeChangeEnableFlag(false, false); SetMainWindowText("TITLE"); SetGraphMode(WIN_WIDTH, WIN_HEIGHT, 32); SetWindowSizeExtendRate(1.0); SetBackgroundColor(BGCOLOR[0],BGCOLOR[1],BGCOLOR[2]); // DXライブラリ初期化処理 if (DxLib_Init() == -1) { DxLib_End(); } SetDrawScreen(DX_SCREEN_BACK); } void MyGame() { DrawFormatString(100, 100, GetColor(0, 0, 0), "ウィンドウのテスト"); static int timer = 0; timer++; DrawFormatString(100, 150, GetColor(0, 0, 0), "%010d", timer); } //ゲーム内容の初期化 void Initialize() { atTime = 0.0f; } //ゲーム内容の更新 void Update() { atTime = gDeltaTime; //フレーム間時間 } //ゲーム内容の描画 void Draw() { //atTimeを表示 DrawFormatString(100, 50, GetColor(0, 0, 0), "%8.3lf", atTime); DrawFormatString(100, 100, GetColor(20, 255, 20), "a点:(%5.2lf, %5.2lf)", a.x, a.y); DrawFormatString(100, 130, GetColor(20, 255, 20), "b点:(%5.2lf, %5.2lf)", b.x, b.y); //Vector2D tmpを宣言して a+bのベクトルを表示 //aとbの距離を表示 } int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nCmdShow) { DxInit(); crrTime = GetNowCount(); prevTime = GetNowCount(); Initialize(); while (true) { ClearDrawScreen(); Input::KeyStateUpdate(); // キー入力の状態を更新 crrTime = GetNowCount(); // 現在の時間を取得 // 前回の時間との差分を計算 float deltaTime = (crrTime - prevTime) / 1000.0f; // 秒単位に変換 gDeltaTime = deltaTime; // グローバル変数に保存 //ここにやりたい処理を書く Update(); Draw(); ScreenFlip(); WaitTimer(16); prevTime = crrTime; // 現在の時間を前回の時間として保存 if (ProcessMessage() == -1) break; if (CheckHitKey(KEY_INPUT_ESCAPE) == 1) break; } DxLib_End(); return 0; }
#pragma once class Vector2D { public: float x, y;//メンバ変数 Vector2D(float _x, float _y); Vector2D Add(const Vector2D& _v); // this = this + _v; float Distance(const Vector2D& _v); //thisと_vの距離 };
#include "Vector2D.h" #include <cmath> Vector2D::Vector2D(float _x, float _y) :x(_x), y(_y) { } Vector2D Vector2D::Add(const Vector2D& _v) { //tmp => temporaly 一時的なもの Vector2D tmp(x + _v.x, y + _v.y); //tmp.x = x + _v.x; //tmp.y = y + _v.y; return tmp; } float Vector2D::Distance(const Vector2D& _v) { float dist2 = (_v.x - x)* (_v.x - x) + (_v.y - y)* (_v.y - y); return sqrt(dist2); }