当前位置: 首页 > wzjs >正文

政府门户网站建设情况工作汇报新手怎么做seo优化

政府门户网站建设情况工作汇报,新手怎么做seo优化,火车头发布wordpress带磁力链,iis建设的网站无法访问目录 前言 一 游戏初始化界面的分析 二 游戏的大概框架 三 显示界面的开发 四 完整代码 总结 我们可以来看看游戏初始界面是什么样的 勇士游戏样例 前言 这里是开发游戏的初始界面 一 游戏初始化界面的分析 我们需要一个背景图,开始游戏图标&#xff0…

目录

前言

一  游戏初始化界面的分析

二  游戏的大概框架

三 显示界面的开发 

四  完整代码 

总结


我们可以来看看游戏初始界面是什么样的

勇士游戏样例


前言

这里是开发游戏的初始界面


一  游戏初始化界面的分析

我们需要一个背景图,开始游戏图标,显示图标
 

 
首先我们先需要收集资源如:背景,游戏开始图标,显示的图标
有人问:为什么一个背景是白的留一个图标,一个是黑的图标是白的,这个黑白的是掩码图,使用来我们实现透明效果的,就是在窗口只显示图标,而不显示图片的背景,增加美观,至于掩码图怎么弄,我这里推一个视频,运用ps一下就可以做出来
【PS学习】Easyx 掩码图 \反白图 \黑白贴图 \透明贴图 制作_哔哩哔哩_bilibili
 

二  游戏的大概框架

#define _CRT_SECURE_NO_WARNINGS 1#include"tool.h"
#include"attribute.h"
int main() {initgraph(WIN_LONG, WIN_WIDTH);welcome();loading();runwrold();loading();while (1) {int level = mapmain();if (level == 1) {loading();level1main();}mciSendString("stop ./image\\begingame.mp3 ", 0, 0, 0);mciSendString("close ./image\\begingame.mpload.mp33 ", 0, 0, 0);loading();runwrold();}
}

这个是游戏的框架,这篇文章就是实现welcome()
welcome()函数框架
1  图片的初始化
2  图片的放置
3  鼠标的是否触碰显示图标
4  鼠标是否点击

三 显示界面的开发 

首先我们进入游戏的时候是需要播放音乐的

char image[60];
mciSendString("open ./image\\begingame.mp3", 0, 0, 0);
mciSendString("play ./image\\begingame.mp3 repeat", 0, 0, 0);

上面那个数组是用来放置图片的,我们来看下面那个
第二句分析

MCIERROR mciSend(
String  LPCTSTR lpszCommand,   // 指向命令字符串的指针LPTSTR lpszReturnString, // 指向返回字符串的缓冲区指针UINT cchReturn,         // 返回字符串缓冲区的大小HANDLE hwndCallback     // 回调窗口句柄
);
  1. lpszCommand
    这是第一个参数,是一个指向命令字符串的指针。它包含了你希望执行的 MCI 命令,例如 "play MySound""stop MySound"

  2. lpszReturnString
    这是第二个参数,是一个指向返回字符串的指针。如果命令执行成功,MCI 会将一些返回信息存储在这个缓冲区中。如果不需要返回信息,可以传入 NULL

  3. cchReturn
    这是第三个参数,表示返回字符串缓冲区的大小(以字符为单位)。如果第二个参数是 NULL,这个参数也应该是 0

  4. hwndCallback
    这是第四个参数,是一个窗口句柄,用于接收 MCI 命令执行过程中的通知消息。如果回调不需要通知,可以传入 NULL0

综上所述:第一个就是用于执行命令的 第二个是用于把一些信息返回到缓冲区的 第三个是返回字符串缓冲区的 第四个就是窗口和你内部代码的互动的

当然我们现在这部游戏没有如此的复杂,所以我们只需要掌握第一个形参即可,我们来分析如何书写

"open ./image\\begingame.mp3 "

对于这个执行命令的输入格式是这样的
<command> [<device>] [<parameters>]

  • <command>:表示要执行的操作,例如 playstopopenclose 等。

  • <device>:可以是设备别名(alias)或设备类型(如 waveaudio)。

  • <parameters>:是命令的附加参数,例如文件路径、播放选项等。

所以第一个是open是打开意思,然后后面是你的文件路径,这个文件路径很简单,就是你文件放置在哪里,中间这个就是你取得别名,这个一般是不需要写的,但是如果你要写的话,就类似于这个,前面加一个alias就好了,这个设备类型得话,我们这里选的是文件路径的话就不需要管这个设备类型

mciSendString("open \"./image\\begingame.mp3\" alias MySound", NULL, 0, NULL);mciSendString("play MySound", NULL, 0, NULL);  // 播放
mciSendString("stop MySound", NULL, 0, NULL);  // 停止
mciSendString("close MySound", NULL, 0, NULL); // 关闭

然后就是加载图片了

//begin game picture
sprintf(image, "./image\\gamebegin.jpg");
loadimage(&gamebegin, image, 1150, 600);sprintf(image, "./image\\beginback.jpg");
loadimage(&keyback, image, 260, 260);sprintf(image, "./image\\begin.jpg");
loadimage(&key, image, 260, 260);
updateBg();//button control
sprintf(image, "./image\\fight.jpg");
loadimage(&fight, image);sprintf(image, "./image\\fight1back.jpg");
loadimage(&fightback, image);

 这个十分的简单哈,看过我天天酷跑开发的肯定知道怎么写了
首先就是用sprintf来把这个文件名字存入到这个里面,然后再把这个文件运用loadimage加载到我们前面定义的IMAGE变量里面

IMAGE gamebegin;
IMAGE keyback;
IMAGE key;
IMAGE fightback;
IMAGE fight;

然后就是加载图片了

void updateBg() {BeginBatchDraw();putimage(0, 0, &gamebegin);putimage(WIN_LONG / 2 - 500, WIN_WIDTH / 2 + 40, &keyback, NOTSRCERASE);putimage(WIN_LONG / 2 - 500, WIN_WIDTH / 2 + 40, &key, SRCINVERT);EndBatchDraw();
}

这里就是把这个背景和图标显示到这个界面里面来
首先把这个背景写进来,然后就是开始游戏的图标了
然后就是透明图的制作,这里运用了颜色的反转我们不需要深入研究,深入研究也学不到什么,只要记住这么写就好了,前面放白底由图标的图,后面放黑底无图标的图
前面两个就是x和y的坐标了
这个begin和end就是把这三个图全部加载到缓冲区之后再加载出来的意思

判断是否由触碰

bool isMouseOnButton(int mouseX, int mouseY) {return (mouseX >= BUTTON_X+55 && mouseX <= BUTTON_X+210  &&mouseY >= BUTTON_Y+40 && mouseY <= BUTTON_Y+150 );
}

 我们来分析这个函数,这个就是传入你的鼠标的X和Y,然后进行判断,这个return如果是真就是0,是假就是1,我们可以根据这个来进行判断是否触碰,这个后面所相加的数字一般是图片的长与宽,这个就是一个矩形的判断区域

鼠标和结束
 

void keyevent1() {while (true) {// 获取鼠标消息MOUSEMSG msg = GetMouseMsg();  int mouseX = msg.x, mouseY = msg.y;//进行清屏操作,防止fight按钮持续出现cleardevice();putimage(0, 0, &gamebegin);putimage(WIN_LONG / 2 - 500, WIN_WIDTH / 2 + 40, &keyback, NOTSRCERASE);putimage(WIN_LONG / 2 - 500, WIN_WIDTH / 2 + 40, &key, SRCINVERT);if (isMouseOnButton(mouseX, mouseY)) {/*这里由于无法使用透明化这个黄色,所以我们设计另外的,注意图片还有算自己的宽度0*/BeginBatchDraw();putimage(BUTTON_X + 210 + 40, BUTTON_Y + 80, &fightback, NOTSRCERASE);putimage(BUTTON_X + 210 + 40, BUTTON_Y + 80, &fight, SRCINVERT);EndBatchDraw();if (msg.uMsg == WM_LBUTTONDOWN) {break;}}Sleep(10);}cleardevice();mciSendString("stop ./image\\begingame.mp3", 0, 0, 0);mciSendString("close ./image\\begingame.mp3", 0, 0, 0);
}

 首先我们先定义一个鼠标的全部信息的变量msg,msg所等于的函数是获取当前鼠标的具体信息,
因为我们要有图标在旁边显示,我们贴上去就要里面清除,所以就要cleardevice()函数,cleardevice()函数后面是放置背景和开始游戏的图标,要不然清除了就没了,然后我们再进行判断
我们把鼠标现在具体的信息放进到我们自己写的判断函数里面取就好了,然后如果为真,就显示图标,然后我们再判断是否点击,就后面的if语句,里面后面那个是系统自己写的点击的值,然后如相等就是突出,然后没有就先短暂休眠一下,为了保持流畅,然后如果if为真就会结束外面的循环,然后后面就是清理屏幕为加载界面创建空间,然后再进行关闭音乐就好了

 

四  完整代码 
 

#include"attribute.h"
#include"tool.h"IMAGE gamebegin;
IMAGE keyback;
IMAGE key;
IMAGE fightback;
IMAGE fight;//判断是否点击了之后是否在按钮的范围
//加减是偏移量,由于图片本身有空白的
bool isMouseOnButton(int mouseX, int mouseY) {return (mouseX >= BUTTON_X+55 && mouseX <= BUTTON_X+210  &&mouseY >= BUTTON_Y+40 && mouseY <= BUTTON_Y+150 );
}void updateBg() {BeginBatchDraw();putimage(0, 0, &gamebegin);putimage(WIN_LONG / 2 - 500, WIN_WIDTH / 2 + 40, &keyback, NOTSRCERASE);putimage(WIN_LONG / 2 - 500, WIN_WIDTH / 2 + 40, &key, SRCINVERT);EndBatchDraw();
}void keyevent1() {while (true) {// 获取鼠标消息MOUSEMSG msg = GetMouseMsg();  int mouseX = msg.x, mouseY = msg.y;//进行清屏操作,防止fight按钮持续出现cleardevice();putimage(0, 0, &gamebegin);putimage(WIN_LONG / 2 - 500, WIN_WIDTH / 2 + 40, &keyback, NOTSRCERASE);putimage(WIN_LONG / 2 - 500, WIN_WIDTH / 2 + 40, &key, SRCINVERT);if (isMouseOnButton(mouseX, mouseY)) {/*这里由于无法使用透明化这个黄色,所以我们设计另外的,注意图片还有算自己的宽度0*/BeginBatchDraw();putimage(BUTTON_X + 210 + 40, BUTTON_Y + 80, &fightback, NOTSRCERASE);putimage(BUTTON_X + 210 + 40, BUTTON_Y + 80, &fight, SRCINVERT);EndBatchDraw();if (msg.uMsg == WM_LBUTTONDOWN) {break;}}Sleep(10);}cleardevice();mciSendString("stop ./image\\begingame.mp3", 0, 0, 0);mciSendString("close ./image\\begingame.mp3", 0, 0, 0);
}void welcome() {char image[60];mciSendString("open ./image\\begingame.mp3", 0, 0, 0);mciSendString("play ./image\\begingame.mp3 repeat", 0, 0, 0);//begin game picturesprintf(image, "./image\\gamebegin.jpg");loadimage(&gamebegin, image, 1150, 600);sprintf(image, "./image\\beginback.jpg");loadimage(&keyback, image, 260, 260);sprintf(image, "./image\\begin.jpg");loadimage(&key, image, 260, 260);updateBg();//button controlsprintf(image, "./image\\fight.jpg");loadimage(&fight, image);sprintf(image, "./image\\fight1back.jpg");loadimage(&fightback, image);keyevent1();
}

前面的预处理指令就是包含了一些需要的库函数,系统自己带的,然后我只是懒得每次写的就直接全部放在一起方便些


总结

今天我们学习游戏开始界面的开发和游戏的大概框架,游戏开始界面的开发主要是鼠标的互动,我们只需要MOUSEMSG这个类型知道就好,然后这个里面由x,y与是uMsg这个后面可以理解这个u为use为使用的意思
1  鼠标的互动
2  掩码图
3  加载图和放置图

http://www.dtcms.com/wzjs/526799.html

相关文章:

  • 广州越秀区有什么好玩的地方提升关键词排名seo软件
  • 温州seo平台电脑系统优化软件哪个好用
  • 网站做影集安全吗网站seo推广哪家值得信赖
  • 网站空间美国外贸推广平台
  • 景德镇网站制作公司百度首页入口
  • 徐州鼓楼区建设网站企业网站推广效果指标分析
  • 做黑彩票的网站赚钱吗百度竞价推广怎么样才有效果
  • 做直播网站用什么系统阿里seo排名优化软件
  • 南通seo公司网站竞价网站推广
  • 昆明网站建设推荐q479185700上墙福州网站排名提升
  • 公司 网站源码视频网站建设
  • 太原网站建设ty556影视后期哪个培训靠谱
  • 网站制作流程详解(学做网站第一步)网站内容管理系统
  • ps做的网站模板百度图片搜索引擎
  • 做词做曲网站百度热搜榜小说排名
  • 现代网站建设成都网络推广公司
  • 网站建设发布教程视频网址大全下载
  • 网站源码网百度手机助手安卓版
  • 网站建设经天猫店铺申请条件及费用
  • 成都网站建设 3e网上营销方法
  • 基于站点的网络营销方法优化网站的软件下载
  • 科技网站建设方案岳阳网站界面设计
  • 南京做网站建设的公司哪家好天津seo优化公司
  • 网站怎么做电子合同营销技巧和营销方法
  • wordpress可以做门户网站百度关键词搜索排名统计
  • 用模板网站做h5宣传页多少钱惠州seo整站优化
  • 网络营销推广方案内容泉州seo报价
  • seo站长工具平台搜索引擎排名优化
  • 软件设计师中级考什么关键词在线优化
  • 电子商务网站建设薛万欣网络热词2022流行语及解释