ラベル プログラミング の投稿を表示しています。 すべての投稿を表示
ラベル プログラミング の投稿を表示しています。 すべての投稿を表示

DXライブラリを使ってみる-お絵かきソフトpart2

 とりあえず線を書くプログラムを作ってみる

前回では仕様を決定しました。
今回は、その仕様の中でもマウスで線を書くという機能を実装しようと思います。

必要となる機能

DrawLine 線を引く関数
DrawCircle 円を作成する関数

まあ、他にもありますがメインなのはこれらの機能です。

ソースコード

#include "DxLib.h"



int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
int Key;

ChangeWindowMode(TRUE);
SetGraphMode(850, 600, 16);
if (DxLib_Init() == -1) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}

int mx, my;
mx = 0;
my = 0;

int i,bx, by;
bx = 0; //
by = 0;
i = 0;

unsigned int waterblue;
waterblue = GetColor(0, 255, 255);

while (ProcessMessage() == 0)
{
SetDrawScreen(DX_SCREEN_BACK);
DrawFormatString(0, 0, GetColor(255, 221, 181), "お絵かきソフト_ver1.0");
if ((GetMouseInput() & MOUSE_INPUT_LEFT) != 0) {
GetMousePoint(&mx, &my);
}
else {
bx = 0;
by = 0;
i = 1;
}

if ((GetMouseInput() & MOUSE_INPUT_RIGHT) != 0) break;
if (bx!=0){
DrawLine(bx, by, mx, my, waterblue, 8);
}
if (i != 1) {
DrawCircle(mx, my, 4, waterblue, TRUE);
bx = mx;
by = my;
}
i = 0;
ScreenFlip();
}
WaitKey();
DxLib_End();
return 0;

}

こんな感じです。
前フレームのマウス座標と現在フレームのマウス座標から線を書き、フレーム地点でのマウス座標に円を表示しています。

実は、ようつべでほぼ似たようなことをしている動画を見つけてしまいました。
途中までは、それらの動画と似たような機能を実装することになりますが、どこかでオリジナリティは出そうと思います。

最後に実行結果の画像を貼り付けておきます。

意外と使い道あるかも



DXライブラリを使ってみる-お絵かきソフトpart1


動機

なんかdxライブラリを使ってみたくなった感じです。
お絵かきソフトなのはdxライブラリで作りやすそうだったからですね。

仕様を決めてみる

何も仕様決めないで作って、後から変更とかになったら面倒なので簡単な仕様だけ決めます。

1 マウスの左クリックで線を引く
2 線の太さは変えれるようなシステムにする
4 色も変えれるようなシステムにする
3 メニュー画面とかはやる気があれば作る(後からでもできそう)

こんな感じかな。
セーブ機能とかはなんか面倒くさそうなので今回は省きます。

次回はとりあえず線を引くプログラムを作ってみる所まで書いていきたいと思います。
↑こんな感じ(笑)


DXライブラリで作ったゲーム-ブロック崩し

 概要

一年位前に作ったブロック崩しのゲームとそのソースコードを置いておきます。
ブロック崩しといってもブロックは一列だし、いきなりゲームが始まります。ソースコードをいじってみたりすると面白いかもしれません。

DXライブラリに関しては最近またやる気になってきたので、何か作ってみたいですね。お絵かきソフトとかいいかも。