利用windows.h中的SetConsoleCursorPosition光标位置控制

SetConsoleCursorPosition是一个C语言中的windows.h库函数,声明变量COORD coord,COORD 是一个结构体,X,Y表示列和行,注意:X是列,Y是行(与正常逻辑相反)。

  • 通过修改pos.X和pos.Y的值就可以实现光标的位置控制。,其中pos.X=0,pos.Y=0,为控制台左上角。
  • printf(“\033[m<==\033[?25l”);其中,格式为printf(“\033[m【定义内容】\033[?25l”);主要用于无光标闪烁打印内容。

效果如下:

实现功能:'w’键向上选择,'s’键向下选择,数字1选择第一行,数字2选择第二行,数字3选择第三行。

代码如下:

代码粗略,可优化。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <windows.h>
#define N 1024//定位箭头
static COORD coord;void Move(char dir)
{COORD originCoord = coord;if (dir == 'w' && coord.Y <= 4 && coord.Y > 2){coord.Y--;}else if (dir == 's' && coord.Y < 4 && coord.Y >= 2){coord.Y++;}else if (dir == '1'){coord.Y = 2;}else if (dir == '2'){coord.Y = 3;}else if (dir == '3'){coord.Y = 4;}SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), originCoord);printf("   ");SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);printf("\033[m<==\033[?25l");}static char menuContent[3][N] = {{"1.游戏开始"},{"2.保存文档"},{"3.退出游戏"}
};void printMenu() {coord.X = 10;//列coord.Y = 2;//行for (int i = coord.Y,j=0; i <= 4; i++){SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);coord.Y++;printf("%s\n", menuContent[j++]);}coord.X = 20;coord.Y = 2;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);printf("\033[m<==\033[?25l");
}int main()
{printMenu();while (1){if (_kbhit()){char Direction = _getch();if (Direction == 'w' || Direction == 's' || Direction == '1' || Direction == '2' || Direction == '3'){Move(Direction);}}}return 0;
}

游戏筑基之游戏菜单制作(C语言)相关推荐

  1. c语言的菜单制作,C语言的菜单制作.ppt

    C语言的菜单制作 C语言的菜单制作 图形化菜单 要完成一个菜单需要考虑以下几个方面: 菜单的定义 保存部分屏幕 恢复期望的屏幕 用户的响应值传递 如何显示菜单 可以利用输出字符画出主界面上的边框和主菜 ...

  2. 五子棋游戏程序设计制作(C语言)

    五子棋游戏程序设计制作 大家都玩过手机的小游戏吧.我是编程爱好者,喜欢动脑筋研究一些算法,编程做出小游戏程序,很有趣很有成就感.在学习VB6编程时就编制过钻石棋和伤脑筋十二块那样的游戏,都是标准Win ...

  3. 使用c 语言的游戏设计软件,游戏制作软件,制作游戏的软件

    NES游戏生产软件 您无法使用它! 游戏制作 更重要的是~~制作一个游戏需要多个工作组~~游戏原始脚本设置?计算机语言编程~~ 3D图形设计~~~角色动作捕捉和制作~~菜单字幕制作?音乐, 声音效果制 ...

  4. Unity制作第三人称射击游戏-成为创新游戏开发者学习教程

    用Unity游戏引擎学习和制作第三人称射击游戏-成为创新游戏开发者- TPS战地克隆 你会学到什么 Unity 3D游戏开发 如何打造TPP第三人称射击游戏 第三人控制者 第三人称动画 第三人运动控制 ...

  5. 使用MV制作最简单的游戏:我要做游戏(9)

    公众号原文 完成了我要做游戏(8)的内容,在不涉及js的层面,这个DEMO其实已经做得七七八八了. 不过本回所说的js,在整个RMMV游戏制作流程中,其实占了非常大的比重.虽然对于萌新制作者,可能用不 ...

  6. 使用MV制作最简单的游戏:我要做游戏(9)PLUS

    公众号原文 以上内容做完,其实这个DEMO已经算是完成了. 接下来鱼虾要讲3个从大佬那里学来的,RMMV新手又时常问道的实用功能. (1)物品菜单的修改 这个问题长见于想要制作解谜类游戏的制作者,他们 ...

  7. Python制作当年第一款手机游戏-贪吃蛇游戏(练习)

    前言: 文章利用Python pygame做一个贪吃蛇的小游戏而且讲清楚每一段代码是用来干嘛的. 据说是贪吃蛇游戏是1976年,Gremlin公司推出的经典街机游戏,那我们今天用Python制作的这个 ...

  8. ​Unity 游戏开发技巧集锦之制作一个望远镜与查看器摄像机

    ​Unity 游戏开发技巧集锦之制作一个望远镜与查看器摄像机 Unity中制作一个望远镜 本节制作的望远镜,在鼠标左键按下时,看到的视图会变大:当不再按下的时候,会慢慢缩小成原来的视图.游戏中时常出现 ...

  9. Unity中制作游戏的快照游戏支持玩家拍快照

    Unity中制作游戏的快照游戏支持玩家拍快照 有些游戏支持玩家"拍快照",也就是将游戏的精彩瞬间以图片的形式记录下来的功能.这个功能比较有趣,而且以后的用途也会很广,为此本节打算介 ...

  10. 【微信小游戏实战】零基础制作《欢乐停车场》二、关卡设计

    1.游戏立项 微信小游戏中有一款<欢乐停车场Plus>的小游戏,大家可以搜索玩下.这是一款益智类的小游戏,游戏中有红.黄.绿.蓝.紫5辆豪车6个停车位,玩家通过可行走路线移动小车,最终让各 ...

最新文章

  1. 皮一皮:确定不是某种特色酒店?
  2. Linux服务器下的HTTP抓包分析
  3. 【转】visual studio 2012进行C语言开发[图文]
  4. 解决IE10以下对象不支持“bind“属性或方法
  5. ASP.NET MVC 重点教程一周年版 第八回 Helper之演化 【转】
  6. 批量输入ISA防火墙的URL对象
  7. u-boot移植随笔:一些内存地址的研究(gd_t和bd_t结构体)
  8. 《HTML与CSS入门经典(第8版)》——导读
  9. 遍历结构体内部元素和值(Name and Value)
  10. Atitit. 资深高级软件工程师and 普通的区别 高度金字塔 深度 广度 1. 高度金字塔 深度 广度 1 1.1. 角色差异高度金字塔 使用者 维修者 制造者 1 1.2. 广度圈 1 1
  11. 【零知ESP8266教程】快速入门28 六轴传感器模块的使用
  12. ARM嵌入式——堆栈寻址
  13. python中abbab什么意思_ABtest与Python代码-Go语言中文社区
  14. 微信公众号开发工具类
  15. python如何画神经网络特征图
  16. Vue 使用 video 标签实现视频播放
  17. python 金额计算_Python | 根据销售金额计算折扣
  18. 线上运行的项目突然变得很卡如何排查?
  19. pr学习心得(入门篇)
  20. 你的生活布满了网络爬虫

热门文章

  1. LeetCode动态规划系列教程(上)
  2. 【每日算法Day 63】LeetCode 第 179 场周赛题解
  3. 2.4 sklearn中的metrics.roc_auc_score评价指标
  4. pytorch---pack_padded_sequence()与pad_packed_sequence()
  5. 李宏毅机器学习——无监督学习(三)
  6. 基于Hosted WebCore 方式部署Web Role
  7. 《Java程序员职场全攻略:从小工到专家》连载十三:给自己估个好价
  8. 2.1 Hadoop概述
  9. 多线程三大概念:并发并行,阻塞,同异步
  10. 3分钟tips:泛函中,什么是开映像定理?