设置定位坐标+请按任意键继续

设置定位坐标

目的

在编程和游戏开发中,设置定位坐标的目的是为了确定对象在屏幕或游戏世界中的具体位置。坐标通常由一对数值表示,例如 (x, y),其中 x 表示水平位置,y 表示垂直位置。设置定位坐标的目的包括:


1. **精确控制对象位置**:

通过坐标,开发者可以精确地控制游戏对象(如角色、道具、障碍物等)在屏幕上的位置,从而创建精确的游戏场景和布局。


2. **运动和动画**:

在游戏或动画中,对象的移动是通过不断更新其坐标来实现的。通过改变坐标,可以模拟对象在屏幕上的移动、跳跃、飞翔等动作。


3. **用户交互**:

在用户界面设计中,坐标用于确定按钮、文本框、图标等元素的位置,以便用户能够与之交互。正确的坐标设置可以提升用户体验。


4. **碰撞检测**:

在游戏中,坐标用于检测和响应对象之间的碰撞。通过比较对象的坐标和大小,可以确定是否发生了碰撞,并据此触发相应的游戏逻辑。


5. **图形渲染**:

在图形编程中,坐标用于确定图形元素(如点、线、形状、图像等)的绘制位置。正确的坐标设置可以确保图形按照预期显示。


6. **空间关系和布局**:

坐标用于建立对象之间的空间关系和布局,这对于游戏设计和用户界面设计至关重要。


7. **寻路和导航**:

在需要寻路或导航的游戏中,坐标用于确定角色或物体的移动路径,以及它们如何在不同地点之间移动。


8. **模拟和仿真**:

在模拟和仿真程序中,坐标用于表示现实世界对象的位置,这对于模拟真实世界中的物理现象或过程非常重要。


总之,设置定位坐标是编程和游戏开发中的一个基本概念,它允许开发者创建动态、交互式和有组织的视觉体验。
 

坐标的概念

这里我们可以看见,控制台也是按照坐标系进行计算然后设置围墙和定位的

这里我想表达的是,我们可以看见,一个字符占据的是1x,1y

但是,y比x长

也就是2x=y

所以在之后打印里面,一个宽字符占据的是两个字符的大小

也就是占据2x,1y的大小

COORD 结构

这个结构就是一个很简单的定位位置的结构体,

	//定位光标的位置
	COORD pos1 = { x,y };

这里注意括号{ },不要写成【】,因为这里是结构体

SetConsoleCursorPosition (定位光标位置)

我们可以看到定位光标的位置还是比较简单的,只需要句柄参数和COOR参数,什么意思呢也就是,我们主需要获得句柄,定义一个结构体位置信息,就可以定位光标的位置

	//设置光标的位置,目的是可以让最后的提示按照想出现的位置进行出现
	//BOOL WINAPI SetConsoleCursorPosition(
	//	In HANDLE hConsoleOutput,//句柄
	//	In COORD  dwCursorPosition//位置
	//);

	//获得句柄
	HANDLE houtpu = NULL;
	houtpu = GetStdHandle(STD_OUTPUT_HANDLE);

	//定位光标的位置
	COORD pos1 = { x,y };
	SetConsoleCursorPosition(houtpu, pos1);

封装一个设置定位坐标

//定义光标的位置/定义位置
void set_pos(short x, short y)
{
	//设置光标的位置,目的是可以让最后的提示按照想出现的位置进行出现
	//BOOL WINAPI SetConsoleCursorPosition(
	//	In HANDLE hConsoleOutput,//句柄
	//	In COORD  dwCursorPosition//位置
	//);

	//获得句柄
	HANDLE houtpu = NULL;
	houtpu = GetStdHandle(STD_OUTPUT_HANDLE);

	//定位光标的位置
	COORD pos1 = { x,y };
	SetConsoleCursorPosition(houtpu, pos1);
}

这里我们可以看到我们可以把欢迎来到贪吃蛇小游戏的界面文字定义到控制台中间

 请按任意键继续

这里就是 一个很简单的cmd命令

	system("pause");

只要在欢迎来到贪吃蛇小游戏,下面定位一个位置,并且使用这个cmd命令进行调用就可以

	//1.打印环境界面
	set_pos(40, 14);
	wprintf(L"欢迎来到贪吃蛇小游戏\n");
	//按任意键继续
	set_pos(40, 15);
	system("pause");

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【云原生】Pod 的生命周期(二)

【云原生】Pod 的生命周期(一)【云原生】Pod 的生命周期(二) Pod 的生命周期(二) 6.容器探针6.1 检查机制6.2 探测结果6.3 探测类型 7.Pod 的终止7.1 强制终止 Pod7.2 Pod 的垃圾收集 6.容器探针 probe 是…

MATLAB 变换

MATLAB 变换(Transforms) MATLAB提供了用于处理诸如Laplace和Fourier变换之类的变换的命令。转换在科学和工程中用作简化分析和从另一个角度查看数据的工具。 例如,傅立叶变换允许我们将表示为时间函数的信号转换为频率函数。拉普拉斯变换使…

Linux驱动开发——(十一)INPUT子系统

目录 一、input子系统简介 二、input驱动API 2.1 input字符设备 2.2 input_dev结构体 2.3 上报输入事件 2.4 input_event结构体 三、代码 3.1 驱动代码 3.2 测试代码 四、平台测试 一、input子系统简介 input子系统是管理输入的子系统,和pinctrl、gpio子…

#9松桑前端后花园周刊-React19beta、TS5.5beta、Node22.1.0、const滥用、jsDelivr、douyin-vue

行业动态 Mozilla 提供 Firefox 的 ARM64 Linux二进制文件 此前一直由发行版开发者或其他第三方提供,目前Mozilla提供了nightly版本,正式版仍需要全面测试后再推出。 发布 React 19 Beta 此测试版用于为 React 19 做准备的库。React团队概述React 19…

【driver4】锁,错误码,休眠唤醒,中断,虚拟内存,tasklet

文章目录 1.互斥锁和自旋锁选择:自旋锁(开销少)的自旋时间和被锁住的代码执行时间成正比关系2.linux错误码:64位系统内核空间最后一页地址为0xfffffffffffff000~0xffffffffffffffff,这段地址是被保留的,如果…

全新桥隧坡安全监测解决方案,24h监测效率提升30%

4月26日,交通运输部党组书记、部长李小鹏在部务会上强调,要高度重视公路桥梁隧道结构监测工作,抓紧推进公路桥梁隧道结构监测系统建设,进一步健全完善公路桥梁隧道结构监测长效运行机制。 中海达积极参与公路桥梁隧道结构监测工作…

触摸OpenNJet,感悟云原生

小程一言 云原生使得应用充分利用云计算、容器化和微服务架构等现代技术来构建和运行应用程序。 云原生技术的用处在于提高应用程序的可靠性、可伸缩性和灵活性,加快开发和部署速度,降低成本,提升整体的效率和竞争力。通过采用云原生技术&a…

Flink窗口理论到实践 | 大数据技术

⭐简单说两句⭐ ✨ 正在努力的小叮当~ 💖 超级爱分享,分享各种有趣干货! 👩‍💻 提供:模拟面试 | 简历诊断 | 独家简历模板 🌈 感谢关注,关注了你就是我的超级粉丝啦! &a…

嵌入式学习

笔记 作业 有如下结构体 struct Student{ char name[16]; int age; double math_score; double chinese_score; double english_score; double physics_score; double chemistry…

图片浏览器-PicView

一、前言 PicView 是一款适用于 Windows 10 或 11 的快速高效的图像查看器,配备了干净简洁的用户界面,可以在不需要时方便地隐藏。 二、支持类型 它支持广泛的图像文件类型,包括:WEBP、GIF、SVG、PNG、JXL、HEIC、PSD 三、软件特…

软件设计师-应用技术-数据库设计题2

基础知识及技巧: 1. 数据库设计过程: 四个阶段:需求分析、概念结构设计、逻辑结构设计、物理设计。每个阶段的产物: 需求分析:数据流图、数据字典、需求说明书。概念结构设计:ER模型逻辑机构设计&#xf…

AndroidStudio的Iguana版的使用

1.AndroidStudio介绍 Android Studio 是用于开发 Android 应用的官方集成开发环境 (IDE)。Android Studio 基于 IntelliJ IDEA 强大的代码编辑器和开发者工具,还提供更多可提高 Android 应用构建效率的功能,例如: 基于 Gradle 的灵活构建系统…

esp32+mqtt协议+paltformio+vscode+微信小程序+温湿度检测

花费两天时间完成了这个项目(不完全是,属于是在resnet模型训练和温湿度检测两头跑......模型跑不出来,又是第一次从头到尾独立玩硬件,属于是焦头烂额了......,完成这个项目后,我的第一反应是写个csdn&#…

毕设:邮件分发系统

文章目录 前言一、登录1.邮箱登录2.账号登录 二、注册三、首页四、写邮件五、收邮件六、草稿箱七、垃圾箱八、已发送九、通讯录十、用户管理十一、邮件管理十二、登录日志总结 前言 分享一下邮件分发系统 一、登录 1.邮箱登录 2.账号登录 二、注册 三、首页 首页有邮件信息&…

华为ensp中USG6000V防火墙双机热备VRRP+HRP原理及配置

作者主页:点击! ENSP专栏:点击! 创作时间:2024年5月6日20点26分 华为防火墙双机热备是一种高可用性解决方案,可以将两台防火墙设备组成一个双机热备组,实现主备切换。当主用防火墙出现故障时&…

Linux 第十九章

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

【数据可视化-02】Seaborn图形实战宝典

Seaborn介绍 Seaborn是一个基于Python的数据可视化库,它建立在matplotlib的基础之上,为统计数据的可视化提供了高级接口。Seaborn通过简洁美观的默认样式和绘图类型,使数据可视化变得更加简单和直观。它特别适用于那些想要创建具有吸引力且信…

后端接口返回二进制数据流,前端如何将其转换成对应的excel、csv和json文件格式并下载

本文主要是介绍在工作中遇到的后端接口返回一个二进制数据流,前端在界面上创建下载按钮并下载成对应格式的文件导出。 downloadData({start: startTime,end: endTime,exportType: 0, // 0-excel, 1-csv, 2-json }).then((res) > {download(res, startTime, endTi…

Flutter笔记:Widgets Easier组件库 - 使用标签(Tag)

Flutter笔记 Widgets Easier组件库 - 使用标签(Tag) - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this …

【网络原理】IP协议详解

一.与IP协议相关的基本概念 IP协议,即网际互连协议(Internet Protocol),是TCP/IP体系中的核心网络层协议。 网络层IP协议解决的问题 数据传输的过程中,不是直接进行的传输,而是经过层层的封装和分用的过程才能到达对端. IP协议主…
最新文章