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

设置定位坐标

目的

在编程和游戏开发中,设置定位坐标的目的是为了确定对象在屏幕或游戏世界中的具体位置。坐标通常由一对数值表示,例如 (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.hqwc.cn/news/671842.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jquery项目 html使用export import方式调用模块

jquery的老项目,引入vue3, 需要方便使用export, import方式引用一些常用的方法与常量 导出模块 export js/numberUtil.js /*** Description:* Author Lani* date 2024/1/10*//* * 【金额】 保留2位小数,不四舍五入 * 5.992550 >5.99 , 2 > 2.…

Vue3 动态引入图片: require is not defined报错

问题&#xff1a;在 Vue3 项目中&#xff0c;使用 require 引入图片&#xff0c;报错 require is not defined 原因&#xff1a; Vue3 使用的是 vite&#xff0c;而 require 是 Webpack 的方法。 官网说明&#xff1a; 解决代码&#xff1a; <template><div v-fo…

ElasticSearch知识点汇总

1、ES中的​​​​​​​倒排索引是什么。 倒排索引&#xff0c;是通过分词策略&#xff0c;形成了词和文章的映射关系表&#xff0c;这种词典映射表即为倒排索引 2、ES是如何实现master选举的。 选举过程主要包括以下几个步骤&#xff1a; 心跳检测&#xff1a; 每个节点…

websevere服务器从零搭建到上线(四)|muduo网络库的基本原理和使用

文章目录 muduo源码编译安装muduo框架讲解muduo库编写服务器代码示例代码解析用户连接的创建和断开回调函数用户读写事件回调 使用vscode编译程序配置c_cpp_properties.json配置tasks.json配置launch.json编译 总结 muduo源码编译安装 muduo依赖Boost库&#xff0c;所以我们应…

webstorm 常用插件

安装插件步骤&#xff1a; 打开软件&#xff0c;文件 -- 设置-- 插件 -- 输入插件名称 -- 安装 代码截图: code screenShots 先选中代码&#xff0c;按 ctrl shift alt a&#xff0c;就可截取选中的代码颜色注释: comments highlighter 对注释的文字改变颜色高亮成对符号: h…

Redis开源社区持续壮大,华为云为Valkey项目注入新的活力

背景 今年3月21日&#xff0c;Redis Labs宣布从Redis 7.4版本开始&#xff0c;将原先比较宽松的BSD源码使用协议修改为RSAv2和SSPLv1协议&#xff0c;意味着 Redis在OSI&#xff08;开放源代码促进会&#xff09;定义下不再是严格的开源产品。Redis官方表示&#xff0c;开发者…

[Docker]容器的网络类型以及云计算

目录 知识梗概 1、常用命令2 2、容器的网络类型 3、云计算 4、云计算服务的几种主要模式 知识梗概 1、常用命令2 上一篇已经学了一些常用的命令&#xff0c;这里补充两个&#xff1a; 导出镜像文件&#xff1a;[rootdocker ~]# docker save -o nginx.tar nginx:laster 导…

Codeforces Round 943 (Div. 3) C-G

C. Assembly via Remainders 思路&#xff1a; 我们可以注意到&#xff0c;数组的长度只有 500 500 500 &#xff0c;并且每个数的大小都在 500 500 500 以内&#xff0c;再看向这题&#xff0c;容易知道&#xff0c;当第一个数确定之后&#xff0c;之后所有的数字都会确定下…

力扣:63. 不同路径 II

63. 不同路径 II 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish”&#xff09;。 现在考虑网格中有障碍物。那么…

延时任务通知服务的设计及实现(五)-- Netty时间轮HashedWheelTimer

一、背景 前文我们讲述了如何使用redisson的RDelayedQueue以及JDK的DelayQueue实现延迟队列&#xff0c;本文将补充一种实现延迟队列的方式–Netty的时间轮HashedWheelTimer。 它和JDK的DelayQueue一样&#xff0c;都存在着以下问题&#xff1a; 占jvm内存&#xff0c;数据量…

[Android]四大组件简介

在 Android 开发中&#xff0c;“四大组件”&#xff08;Four Major Components&#xff09;是指构成 Android 应用程序的四种核心组件&#xff0c;它们通过各自的方式与系统交互&#xff0c;实现应用的多样功能。这些组件是&#xff1a;Activity、Service、Broadcast Receiver…

IOS自动化—将WDA打包ipa批量安装驱动

前言 CSDN&#xff1a; ios自动化-Xcode、WebDriverAgent环境部署 ios获取原生系统应用的包 如果Mac电脑没有配置好Xcode相关环境,可以参考以上文章。 必要条件 Mac电脑&#xff0c;OS版本在12.4及以上&#xff08;低于这个版本无法安装Xcode14&#xff0c;装不了Xcode14就…