自分は1ヶ月に1回は日記を投稿することにしている!
なんか書いてけ!
というわけで、「なんか」と書くプログラムを作ってみました。
DXライブラリを使用しています。
実際にマウスで書いて得られたデータを変換して埋め込みました。
環境があればコードをコピペしてすぐ実行できるようにするため、外部のファイルから読み込む仕様にはしませんでした。
ソースコード
► スポイラーを表示
#include
extern int data[];
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
// 初期化
SetMainWindowText("なんか書いてけ");
if (ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() != 0) return -1;
SetDrawScreen(DX_SCREEN_BACK);
// 色情報
int lineColor = GetColor(255, 255, 255);
int circleColor = GetColor(255, 0, 0);
// 実行情報
int startTime = GetNowCount();
int run = 1;
int prevSpace = 0;
while (ProcessMessage() == 0 && ClearDrawScreen() == 0) {
// 入力処理
int space = CheckHitKey(KEY_INPUT_SPACE);
int spaceEdge = space && !prevSpace;
prevSpace = space;
// スペースキーが押されたら
if (spaceEdge) {
if (run) {
// 実行中なら、実行準備状態に遷移
run = 0;
} else {
// 実行準備状態なら、時刻を初期化子て実行中に遷移
startTime = GetNowCount();
run = 1;
}
}
if (run) {
// 描画を実行
int currentTime = GetNowCount() - startTime;
int x = 0, y = 0, t = 0, prevClick = 0;
for (int i = 0; !(data[i] & 0x2000000); i++) {
// データのデコード
int dx = data[i] & 0xFF;
int dy = (data[i] >> 8) & 0xff;
int dt = (data[i] >> 16) & 0xff;
int click = (data[i] >> 24) & 0x1;
if (dx >= 0x80) dx -= 0x100;
if (dy >= 0x80) dy -= 0x100;
// 時刻を更新し、未来になったら止める
t += dt;
if (t > currentTime) {
DrawCircle(x, y, 10, circleColor, FALSE);
break;
}
// 線を描画する時は線を描画する
if (prevClick && click) DrawLine(x, y, x + dx, y + dy, lineColor, 5);
// 状態を更新する
x += dx;
y += dy;
prevClick = click;
}
}
ScreenFlip();
}
DxLib_End();
return 0;
}
int data[] = {
0x00000FF,0x00F0301,0x0100503,0x0100504,0x00F0405,0x0000304,0x0100403,0x00F0304,
0x0000101,0x0100202,0x0100101,0x00F0101,0x0000101,0x0100102,0x00F0302,0x0000401,
0x0100201,0x0100201,0x00F0101,0x0000202,0x0100101,0x00F0303,0x0100100,0x0000201,
0x0100201,0x00F0301,0x0000301,0x0100402,0x00F0403,0x0100502,0x0000502,0x0100301,
0x00F0301,0x0000201,0x0100401,0x00F0201,0x0100201,0x0000101,0x01F0100,0x0100100,
0x0000100,0x00F0100,0x0100200,0x0000300,0x0100201,0x00F0300,0x0100101,0x00F0200,
0x0100500,0x0100402,0x19C0301,0x11F0101,0x1000001,0x10F0003,0x1100002,0x1100002,
0x1000004,0x10F0005,0x1100005,0x10F0006,0x1000003,0x1100005,0x1100006,0x1000007,
0x10F0005,0x110FF05,0x1000004,0x10F0003,0x110FF03,0x110FF04,0x1000006,0x10FFF07,
0x1100007,0x10F0007,0x1000007,0x1100005,0x1100004,0x1000004,0x10F0003,0x1100004,
0x10F0005,0x100000A,0x110000B,0x110000C,0x10F0008,0x06D0008,0x01000FE,0x01000FF,
0x00FFFFD,0x000FFFE,0x010FCFC,0x00FFBFC,0x000FEFD,0x010FBFB,0x010F9F7,0x00FF8F6,
0x000FAF7,0x010FAF8,0x00FFBF9,0x010FCFD,0x000FDFD,0x010FEFF,0x03EFF00,0x01FFF00,
0x02F0001,0x11F0001,0x11002FF,0x10004FD,0x10F03FF,0x11003FC,0x10005FC,0x11005FC,
0x10F05FC,0x10007FC,0x11008FD,0x10F07FC,0x11008FC,0x11008FB,0x10006FD,0x10F06FD,
0x11005FD,0x10004FF,0x10F03FE,0x11004FF,0x10006FE,0x11007FE,0x10F06FD,0x11008FD,
0x10008FD,0x10F0AFC,0x11009FD,0x11008FD,0x10008FD,0x10F07FD,0x11007FE,0x10006FE,
0x10F07FE,0x11006FE,0x11006FE,0x10006FE,0x10F03FE,0x11004FE,0x10003FF,0x10F02FF,
0x12004FE,0x04E0000,0x0000001,0x00FFE03,0x010FE02,0x00FFC04,0x000FE02,0x010FC02,
0x010FD02,0x000FC04,0x00FFA05,0x010FE03,0x00FFE03,0x000FB05,0x010FB06,0x010FA07,
0x000FB06,0x00FFB05,0x010FB06,0x00FFC04,0x000FB04,0x010FD04,0x010FC04,0x00FFC05,
0x000FC04,0x010FD04,0x00FFF02,0x000FE01,0x010FF03,0x010FE02,0x00FFF04,0x000FE05,
0x0100001,0x00FFE02,0x0000002,0x0100001,0x010FF03,0x00FFE04,0x000FF04,0x010FF06,
0x00FFE04,0x000FF04,0x010FE02,0x010FE03,0x00FFF02,0x000FF01,0x15E0002,0x10F0002,
0x1100504,0x1000605,0x1100504,0x10F0504,0x1100603,0x1000504,0x10F0301,0x1100404,
0x1000404,0x1100302,0x10F0503,0x1100101,0x13E0101,0x1100100,0x10000FC,0x10F00FB,
0x11000FE,0x11000FD,0x10000FD,0x10F00FC,0x01000FF,0x01F00FE,0x010FFFF,0x00000FE,
0x00F00FC,0x01000FE,0x00F00FE,0x00000FE,0x01000FD,0x01000FD,0x00000FD,0x00F00FF,
0x01000FE,0x00F00FD,0x00000FE,0x01000FE,0x010FFFD,0x00000FE,0x00F00FE,0x01000FF,
0x03E00FF,0x0100500,0x10F0800,0x1100500,0x1100800,0x1000700,0x10F0800,0x1100800,
0x10F0700,0x1000900,0x11008FE,0x11009FE,0x10008FE,0x10F07FD,0x11006FD,0x10F05FD,
0x10004FD,0x11001FF,0x11002FD,0x10F02FC,0x10002FD,0x11000FE,0x10F00FB,0x10000FB,
0x11000FA,0x11000FC,0x10F00FC,0x10000FC,0x11000FC,0x10FFEFD,0x100FEFE,0x110FDFE,
0x110FFFF,0x10FFDFF,0x100FC00,0x110FD00,0x10FFC00,0x100FE00,0x110FE00,0x110FD03,
0x10FFC05,0x100FD06,0x110FE06,0x10FFE06,0x1100005,0x1000003,0x1100003,0x10F0002,
0x1000004,0x1100403,0x10F0102,0x1100205,0x1000406,0x1100606,0x10F0509,0x1100509,
0x1000306,0x10F0406,0x1100306,0x1000204,0x05E0002,0x01FFF02,0x000FF03,0x00FFC05,
0x010F90C,0x000F40F,0x010F112,0x00FEF15,0x010F010,0x000F10E,0x00FF10A,0x010F405,
0x010F303,0x000F502,0x00FF401,0x010F303,0x000F502,0x00FF702,0x010F602,0x010F901,
0x000FA01,0x00FFA01,0x010FB01,0x00FFB01,0x000FB02,0x010FF01,0x010FE00,0x000FE01,
0x00FFF01,0x010FF00,0x00FFE00,0x000FD00,0x010FE00,0x010FF00,0x000FD00,0x00FFE00,
0x010FE00,0x00FFE00,0x17DFF00,0x1100100,0x10F0400,0x10006FF,0x11008FE,0x11009FC,
0x10F0AFD,0x1000AFE,0x1100AFD,0x10F0CFB,0x1100BFB,0x1000AFD,0x1100AFC,0x10F0AFB,
0x10009FC,0x11009FA,0x10F0AFB,0x1000AFB,0x11009FB,0x11007FC,0x10F08FB,0x10006FD,
0x11004FD,0x10F05FE,0x10006FD,0x11006FB,0x11009FD,0x10F07FD,0x10008FD,0x11007FD,
0x10F07FC,0x11008FB,0x10006FC,0x11006FC,0x10F06FD,0x10005FD,0x11003FF,0x15D02FE,
0x110FF00,0x100FD00,0x110FC00,0x10FFA02,0x100FB04,0x110FE02,0x10FFC03,0x110F904,
0x110FA06,0x100FA04,0x10FFA04,0x110FA04,0x100F904,0x10FFA04,0x110FA04,0x100FB04,
0x110FB04,0x10FFD04,0x110FD02,0x100FF02,0x10FFE03,0x110FF01,0x1100002,0x100FE03,
0x10FFF02,0x1100001,0x1000002,0x10FFF01,0x1100001,0x1100001,0x1000001,0x11F0001,
0x10F0103,0x1000402,0x1100301,0x1100301,0x1000402,0x10F0602,0x1100602,0x1000601,
0x10F0601,0x1100500,0x1100600,0x1000400,0x10F0400,0x1100400,0x1000101,0x10F0200,
0x1100100,0x1100100,0x1000100,0x11F0201,0x10F0202,0x1100201,0x1100101,0x10F0102,
0x1100102,0x10F0005,0x1100003,0x1000003,0x1100002,0x10F0001,0x1000001,0x1100002,
0x10F0003,0x110FF01,0x100FF01,0x1100002,0x10FFE02,0x100FF01,0x110FE02,0x10FFF01,
0x110FE03,0x100FC01,0x110FD02,0x10FFE02,0x100FD00,0x110FF00,0x10FFE01,0x110FE00,
0x100FE00,0x110FF00,0x10FFF00,0x100FD00,0x01FF800,0x010FCFF,0x000FD00,0x010FE00,
0x00FFC00,0x010FD00,0x000FB02,0x00FFA01,0x010FA02,0x000FE01,0x010FA03,0x00FF903,
0x010F805,0x000F805,0x00FF704,0x010F705,0x000F902,0x010F703,0x00FF802,0x000F902,
0x010F803,0x00FFA03,0x010FA03,0x010FC02,0x000FB03,0x00FFC03,0x010FF00,0x000FD01,
0x00FFF00,0x010FF00,0x01FFF00,0x010FE00,0x01FFEFF,0x01000FF,0x01F00FF,0x01F00FF,
0x14E00FF,0x1100003,0x10F0106,0x1100207,0x10F040D,0x1000310,0x1100312,0x110020E,
0x100020B,0x10F040A,0x1100307,0x1000306,0x10F0305,0x1100303,0x1100403,0x1000502,
0x10F0402,0x1100602,0x10F0602,0x1000802,0x1100901,0x1100900,0x10F0A00,0x1000900,
0x1100A00,0x10F0A00,0x10008FE,0x11007FD,0x11009FB,0x10F09FC,0x10007FB,0x11008FA,
0x10F07FB,0x11007FB,0x10005FA,0x11006FA,0x10F04FC,0x10004FD,0x11003FC,0x10F03FC,
0x12F01FF,0x11F00FF,0x11000FF,0x100FDFF,0x110FDFF,0x10FFAFF,0x100FDFF,0x110FDFF,
0x01FFC00,0x000FD00,0x010FC00,0x00FFD00,0x000FD00,0x010FE00,0x00FFE00,0x010FC00,
0x000FC01,0x010FB01,0x00FFD00,0x010FC00,0x000F900,0x00FF700,0x010F700,0x000F600,
0x010F700,0x00FF900,0x000FAFF,0x010FA00,0x00FFCFF,0x010FCFF,0x010FBFF,0x000FDFF,
0x00FFA00,0x010FC00,0x000FCFF,0x00FFD00,0x010FD00,0x000FD00,0x010FD00,0x00FFD00,
0x010FD00,0x000FD00,0x00FFD00,0x010FE00,0x000FD00,0x010FC00,0x00FFC01,0x010FD00,
0x000FD00,0x00FFD00,0x010FD00,0x010FE00,0x000FD00,0x00FFD00,0x010FD01,0x00FFD00,
0x000FD00,0x010FD00,0x010FD00,0x000FD00,0x00FFF00,0x010FC00,0x00FFE00,0x000FEFF,
0x010FF00,0x010FF00,0x16D01FF,0x10F06FE,0x11004FE,0x10007FD,0x11007FD,0x10F09FD,
0x1000AFB,0x1100AFD,0x10F0AFD,0x11008FE,0x10009FC,0x11007FE,0x10F06FE,0x10007FD,
0x11006FD,0x10F06FE,0x11006FD,0x10006FE,0x11005FD,0x10F06FE,0x10006FE,0x11004FF,
0x10F05FF,0x11004FE,0x10005FF,0x11003FF,0x10F05FE,0x10004FE,0x11005FF,0x10F04FF,
0x10005FF,0x11004FE,0x11004FF,0x10F04FF,0x10005FE,0x1100300,0x10F03FF,0x11003FF,
0x1000100,0x11F0100,0x1100100,0x06DFD01,0x000FD02,0x010FD01,0x00FFE00,0x000FD02,
0x010FB02,0x00FF902,0x010F703,0x010F803,0x000F805,0x00FF903,0x010F903,0x000FA03,
0x00FFA02,0x010FA03,0x010FA03,0x000F703,0x00FF705,0x010F803,0x000F703,0x00FF903,
0x010F803,0x010FA03,0x000FC02,0x00FFA03,0x010FA03,0x000FB03,0x00FFB03,0x010FB03,
0x010FD02,0x000FC02,0x00FFD01,0x010FD02,0x00FFB01,0x000FD01,0x010FD01,0x010FC02,
0x000FD01,0x00FFD02,0x010FC02,0x00FFE01,0x000FE02,0x010FD01,0x010FC00,0x000FF01,
0x00FFF01,0x010FD00,0x000FE01,0x00FFD00,0x010FE02,0x010FC01,0x000FD00,0x00FFC02,
0x010FB02,0x00FFD02,0x000FD01,0x010FD00,0x010FE01,0x00FFF01,0x000FD01,0x16DFF00,
0x1100002,0x1100605,0x10F0506,0x1000203,0x1100402,0x10F0602,0x1000302,0x1100201,
0x1100502,0x10F0101,0x1000201,0x1100402,0x10F0302,0x1100100,0x1000402,0x1100200,
0x10F0403,0x1000300,0x1100301,0x10F0302,0x1100301,0x1000200,0x1100401,0x10F0301,
0x1000602,0x1100101,0x10F0301,0x1100200,0x1100201,0x2000000
};
- なんか書いた
- nannka-20170731.png (28.41 KiB) 閲覧数: 2178 回
[youtube][/youtube]