C++ Easyx案例实战:Cookie Maker工作室1.0V

前言

        //制作属于自己的工作室!

        :运行效果以及下载见Cookie Maker 工作室成立程序

        关于Cookie Maker工作室成立的信息,I am very happy(唔……改不过来了)。

        OKOK,第一次用图形库写程序(图形库:你终于想起我了!),下面废话不多说,直接上教程!

开始(游戏)

        此程序灵感来招人通告-鸡你太美--爱坤工作室-慧编程作品社区

         编译参数、链接参数

                图形库的基本准备工作

                依次在编译参数、链接参数写上:

...\Dev-Cpp\MinGW32\lib\libcomdlg32.a -mwindows

*-mwindows用来隐藏控制台。

-static -luuid -lmsimg32 -lgdi32 -limm32 -lole32 -loleaut32 -lwinmm -luuid

*这些用来提供头文件的需求。

        1、定义函数 

                这个程序我们会有三个功能:招人要求、工作室简介、工作室近况,但还需要一个主界面。

void Start();     //主界面
void Ghange1();   //招人要求
void Ghange2();   //工作室近况
void Ghange3();   //工作室简介
//以后还会更新“开始工作”

int main()
{
    //开始写程序
}

        2、主界面函数

                ①打印背景

                        应该先跳出来主界面,这一段代码需要一张这样的图片(500 X 500),

                        名字叫做mk.png

                       (直接复制就可以)

         

                        首先需要创建一个500 X 500的图形界面,再把标题改成 Cookie Maker工作室:

initgraph(500, 500);
setcaption("Cookie Maker工作室");

                        然后要把主界面的背景打印出来:

	PIMAGE img1 = newimage();
    //定义一个图片变量
	if (getimage(img1, "mk.png") != grOk) {
  	  MessageBox(NULL, "Error!", "Error!", MB_ICONERROR|MB_OK);
      exit(-1);
	}
    //获取图片信息并且检测是否可以打开图片
	putimage(0, 0, img1);
    //打印图片
	delay_ms(0);
    //刷新

                ②打印按钮

                        紧接着,需要输出几个可以供我们点击的按钮, 招人要求、工作室简介、工作室近况。

setcolor(LIGHTRED);
//设置输出颜色
setbkcolor(LIGHTBLUE);
//设置输出背景颜色
setfont(55, 20, "微软雅黑");
//设置字体以及大小
outtextxy(160, 240, "招人要求");
//打印
setcolor(YELLOW);
outtextxy(140, 310, "工作室近况");
setcolor(GREEN);
outtextxy(140, 380, "工作室简介");

        3、判断鼠标指针是否喷碰到按钮以及是否按下鼠标

                图形库的获取鼠标指针数据变量叫做mouse_msg

	mouse_msg msg = {0};
	int x, y;
	while(1)
	{
		while (mousemsg())
		{
			msg = getmouse();
		}
		//cleardevice();
		mousepos(&x, &y);
		if (x < 382 && x > 157 && y > 209 && y < 263 && msg.is_down() == 1)
		{
			Ghange1();
			getch();
			Start();
			continue;
		}
		if (x < 394 && x > 138 && y < 334 && y > 279 && msg.is_down() == 1)
		{
			Ghange2();
			getch();
			Start();
			continue;			
		}
		if (x < 394 && x > 138 && y < 404 && y > 349 && msg.is_down() == 1)
		{
			Ghange3();
			getch();
			Start();
			continue;
		}
		if (x < 382 && x > 157 && y < 474 && y > 420 && msg.is_down() == 1)
		{
			Ghange4();
			getch();
			Start();
			continue;
		}
        //制作时的测试代码
		//SetPos(0, 0);
		//printf("x = %d y = %d", x, y);
		Sleep(1);	
	}

        4、打印页面

                这一段代码需要几张这样的图片(434 X 434)。

                (可以直接复制)

                名字叫做Ch1.png

                Ch3.png:

                Ch21.png:

                                Ch22.png:

void Ghange1()
{
	PIMAGE img = newimage();
	cleardevice();
	getimage(img, "Ch1.png");
	putimage(30, 30, img);
	delay_ms(0);
}

void Ghange2()
{
	PIMAGE img = newimage();
	cleardevice();
	getimage(img, "Ch21.png");
	putimage(30, 30, img);
	delay_ms(0);
	getch();
	cleardevice();
	getimage(img, "Ch22.png");
	putimage(30, 30, img);
	delay_ms(0);	
}

void Ghange3()
{
	PIMAGE img = newimage();
	cleardevice();
	getimage(img, "Ch3.png");
	putimage(30, 30, img);
	delay_ms(0);
}

 总代码

#include <graphics.h>
#include <bits/stdc++.h>
using namespace std;

void Start();
void Ghange1();
void Ghange2();
void Ghange3();

int main()
{
	Start();
	mouse_msg msg = {0};
	int x, y;
	while(1)
	{
		while (mousemsg())
		{
			msg = getmouse();
		}
		//cleardevice();
		mousepos(&x, &y);
		if (x < 382 && x > 157 && y > 239 && y < 293 && msg.is_down() == 1)
		{
			Ghange1();
			getch();
			Start();
			continue;
		}
		if (x < 394 && x > 138 && y < 364 && y > 309 && msg.is_down() == 1)
		{
			Ghange2();
			getch();
			Start();
			continue;			
		}
		if (x < 394 && x > 138 && y < 434 && y > 379 && msg.is_down() == 1)
		{
			Ghange3();
			getch();
			Start();
			continue;
		}
		//SetPos(0, 0);
		//printf("x = %d y = %d", x, y);
		Sleep(1);	
	}
	return 0;
}

void Start()
{
	initgraph(500, 500);
	setcaption("Cookie Maker工作室");
	PIMAGE img1 = newimage();
	if (getimage(img1, "mk.png") != grOk) {
  	  MessageBox(NULL, "Error!", "Error!", MB_ICONERROR|MB_OK);
      exit(-1);
	}
	putimage(0, 0, img1);
	delay_ms(0);
	setcolor(LIGHTRED);
	setbkcolor(LIGHTBLUE);
	setfont(55, 20, "微软雅黑");
	outtextxy(160, 240, "招人要求");
	setcolor(YELLOW);
	outtextxy(140, 310, "工作室近况");
	setcolor(GREEN);
	outtextxy(140, 380, "工作室简介");
	//getch();
}

void Ghange1()
{
	PIMAGE img = newimage();
	cleardevice();
	getimage(img, "Ch1.png");
	putimage(30, 30, img);
	delay_ms(0);
}

void Ghange2()
{
	PIMAGE img = newimage();
	cleardevice();
	getimage(img, "Ch21.png");
	putimage(30, 30, img);
	delay_ms(0);
	getch();
	cleardevice();
	getimage(img, "Ch22.png");
	putimage(30, 30, img);
	delay_ms(0);	
}

void Ghange3()
{
	PIMAGE img = newimage();
	cleardevice();
	getimage(img, "Ch3.png");
	putimage(30, 30, img);
	delay_ms(0);
}

相关推荐

  1. Pandas实战100例 | 案例 19: 基本数学运算

    2024-06-09 23:12:04       53 阅读
  2. 10 章 监控系统 | 实战案例 - Nginx 监控

    2024-06-09 23:12:04       32 阅读
  3. Pandas实战100例 | 案例 43: 数据排序

    2024-06-09 23:12:04       53 阅读
  4. Pandas实战100例 | 案例 25: 计算相关系数

    2024-06-09 23:12:04       61 阅读
  5. Pandas实战100例 | 案例 52: 重命名列

    2024-06-09 23:12:04       61 阅读
  6. Pandas实战100例 | 案例 31: 转换为分类数据

    2024-06-09 23:12:04       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-09 23:12:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-09 23:12:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-09 23:12:04       82 阅读
  4. Python语言-面向对象

    2024-06-09 23:12:04       91 阅读

热门阅读

  1. 02 Linux 调试手段

    2024-06-09 23:12:04       25 阅读
  2. Git笔记

    2024-06-09 23:12:04       33 阅读
  3. Configuring Projects with vercel.json

    2024-06-09 23:12:04       24 阅读
  4. Nginx 的 stream 模块,配置转发redis和mysql

    2024-06-09 23:12:04       30 阅读
  5. SpringBoot解决跨域的三种解决方案

    2024-06-09 23:12:04       30 阅读
  6. 自然资源-不动产登记资料查询暂行办法

    2024-06-09 23:12:04       33 阅读
  7. MySQL-备份恢复(四)

    2024-06-09 23:12:04       31 阅读
  8. qt 画图 持续更新

    2024-06-09 23:12:04       30 阅读
  9. 使用redis构建简单的社交网站

    2024-06-09 23:12:04       30 阅读
  10. 算法训练营第四十九天 | LeetCode 139单词拆分

    2024-06-09 23:12:04       26 阅读
  11. 《Linux内核精通》笔记参考目录

    2024-06-09 23:12:04       19 阅读