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

news2024/11/24 16:50:40

前言

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

        :运行效果以及下载见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);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1806286.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Simulink的双端行波测距

1 输电线路故障仿真模型 基于双端行波测距理论&#xff0c;在MATLAB软件中搭建的三相50Hz的输电线路故障仿真模型如图1所示&#xff0c;该模型包含了三相电源、输电线路、故障发生器和示波器模块等。主要仿真参数设置如下:仿真时间为 0~0.1s,采用固定步长 10-7和ode3 算法&…

knoXSS(case01~10)

case 01: 先在每个框里都输入:<script>alert(1)</script> 检查源码 这里第三个和第四个点都被处理过了&#xff0c;所以先考虑第一个和第二个点 这里试了一下&#xff0c;发现GET也能传参&#xff0c;所以构造 成功 case 02: 这里发现变量a和这个似乎有关联&…

【C语言】Leetcode-312 戳气球

文章目录 题目思路代码如下 题目 链接: Leetcode-312 戳气球 思路 我们观察戳气球的操作&#xff0c;发现这会导致两个气球从不相邻变成相邻&#xff0c;使得后续操作难以处理。于是我们倒过来看这些操作&#xff0c;将全过程看作是每次添加一个气球。 首先 我们需要创建一个…

社交“学习伙伴”:Meta Llama助力对话升级

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

【数据结构】排序——插入排序,选择排序

前言 本篇博客我们正式开启数据结构中的排序&#xff0c;说到排序&#xff0c;我们能联想到我之前在C语言博客中的冒泡排序&#xff0c;它是排序中的一种&#xff0c;但实现效率太慢&#xff0c;这篇博客我们介绍两种新排序&#xff0c;并好好深入理解排序 &#x1f493; 个人主…

HCIA--NAT地址转换(复习)

先交换后路由&#xff1a; 1&#xff1a;在交换机上创建vlan&#xff0c;进入接口划分vlan&#xff0c;接着在交换机连接路由器的接口上建立trunk干道 2&#xff1a;在路由器上&#xff0c;先配置物理接口IP&#xff0c;接着在路由器上创建两个子接口&#xff0c;将建立的vla…

100道面试必会算法-32-二叉树右视图用栈实现队列

100道面试必会算法-32-二叉树右视图&用栈实现队列 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4]示例 2: 输入: [1,n…

powershell:使用IProgressDialog接口创建windows标准进度对话框。

禁止任何形式的抄录&#xff0c;转载请附上本文章地址 Add-Type using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.InteropServices; // 定义ProgressDialog类&#xff0c;实现IProgressDialog接口 …

数据库之PostgreSQL详解

一、PostgreSQL介绍 PostgreSQL是一个功能强大的 开源 的关系型数据库。底层基于C实现。 PostgreSQL的开源协议和Linux内核版本的开源协议是一样的。。BDS协议&#xff0c;这个协议基本和MIT开源协议一样&#xff0c;说人话&#xff0c;就是你可以对PostgreSQL进行一些封装&a…

K210视觉识别模块学习笔记5:(嘉楠)训练使用模型_识别人脸

今日开始学习K210视觉识别模块:(嘉楠)训练与使用模型_识别人脸 亚博智能的K210视觉识别模块...... 固件库版本: canmv_yahboom_v2.1.1.bin 之前的训练网址部署模型时需要我们自己更换固件&#xff0c;而且还不能用亚博的图像操作库函数了&#xff0c;这十分不友好&#xff0…

vue3关于配置代码检查工作流,husky出现创建错误问题的解决方法

关于配置代码检查工作流&#xff0c;husky出现error: cant create hook, .husky directory doesnt exist (try running husky install) 首先根据截图发现最明显的信息是error&#xff0c;中文译为-----错误&#xff1a;无法创建钩子&#xff0c;.husky 目录不存在&#xff08;尝…

【数据结构】十二、八种常用的排序算法讲解及代码分享

目录 一、插入排序 1)算法思想 2&#xff09;代码 二、希尔排序 1&#xff09;算法思想 2&#xff09;代码 三、选择排序 1&#xff09;算法思想 2&#xff09;代码 四、堆排序 1&#xff09;什么是最大堆 2&#xff09;如何创建最大堆 3&#xff09;算法思想 4&a…

Databricks Data Warehouse

Warehouse features 原来的data warehouse痛点&#xff1a; 用例不兼容的支持模型的安全和管理不兼容不相交和重复的数据 ETL workloads Streaming Architecture Data Science and ML

演讲全文|林涛:MongoDB助力智能制造出海控本增效

5月29日-30日在上海世博中心举办的亚马逊云科技中国峰会圆满结束。本文整理了MongoDB北亚区方案与咨询总监林涛在白金讲堂的演讲全文&#xff0c;就《MongoDB助力智能制造出海控本增效》话题与大家共同探讨。 白金讲堂演讲视频 从全球经济竞争的角度看&#xff0c;中国制造业…

原来你长这个样子啊,Java字节码文件

字节码文件 字节码文件是一种二进制文件&#xff0c;扩展名为.class 通过 javac 将源码编译得到&#xff0c;是一种中间形式的代码&#xff0c;这种中间形式的代码让Java有了“一次编译&#xff0c;多次运行”的跨平台特点。 字节码文件的组成 由5大组成部分&#xff1a;基础…

【SQLAlChemy】如何连接数据库?

使用SQLAlChemy连接数据库 导入包 首先&#xff0c;导入创建数据库引擎的包。 from sqlalchemy import create_engine编写数据库配置 SQLALCHEMY_DATABASE_URL "mysql://root:123456789127.0.0.1:3306/tortoise"字段解释&#xff1a; mysql:&#xff1a;这是数…

Python第二语言(七、Python模块)

目录 1. 什么是模块 2. 基本语法 2.1 模块的导入方式 2.2 基本语法 import 模块名 2.3 基本语法 from 模块名 import 功能名 2.4 基本语法as 别名 3. 自定义模块 4. 调用自定义模块时&#xff0c;如何让其模块中的函数不被调用&#xff08;__name__&#xff09; 5. 调…

fl studio怎么设置中文及 2024年最新fl studio选购指南

FL Studio让你的计算机就像是全功能的录音室&#xff0c;漂亮的大混音盘&#xff0c;先进的创作工具&#xff0c;让你的音乐突破想象力的限制。zol提供FL Studio中文版下载。 FL Studio中文版下载软件简介 FL Studio 让你的计算机就像是全功能的录音室&#xff0c;漂亮的大混…

Linux的网络配置

查看网络配置命令 一、查看所有活动的网络接口信息 ifconfig ifconfig 展示的是当前设备正在工作的网卡&#xff08;启动的设备&#xff09; ifconfig -a 展示所有的网络设备 ifconfig ens33 查看指定网卡设备 ifconfig ens33 down 关闭网卡 或者 ifdown ens33 &#xff0…

论文阅读KAN: Kolmogorov–Arnold Networks

学习了最近大热的KAN网络 论文地址&#xff1a;https://arxiv.org/pdf/2404.19756 按我个人读论文的习惯总结了如下几点&#xff1a; 1&#xff0c;背景&#xff1a; 1&#xff09;灵感来源&#xff1a;于Kolmogorov-Arnold表示定理&#xff0c;也就是多变量连续函数可以表…