c++游戏小技巧3:Sleep(停顿) 与 gotoxy(0,0) (无闪清屏)

news/2025/2/19 5:41:04/

因为篇幅原因,这一次我们讲两个小方法

目录

1.gotoxy

1.无闪清屏

2.移动到指定地点

2.Sleep

1.与gotoxy一起用

2.文字游戏必备

1.gotoxy

大家写游戏清屏用什么???

是不是一般都是

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;int main()
{while(1){printf("脏脏包 YYDS!!!");system("cls");}return 0;
}

发现什么没有

是不是特别闪!

于是,在奇妙的windows.h里面有这样一个函数:

SetConsoleCursorPosition(hOut,pos);

可以用来改变光标位置

光标就是你输出、输入是一闪一闪的那个东西

表示着你输入、输出到哪里了

我们就可以改变它位置

就有了一下两种用法:

1.无闪清屏

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;void gotoxy(int x, int y)//覆盖清屏 ,从指定行列覆盖
{COORD pos = {x,y};HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(hOut, pos);return ;
}int main()
{while(1){printf("脏脏包 YYDS!!!");gotoxy(0,0);//从0,0 覆盖}return 0;
}//是不是还是更闪???
//等把Sleep讲了就好了

2.移动到指定地点

对比下面两段代码:

1.

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;int main()
{system("mode con cols=50 lines=25");while(1){for(int i=1;i<=12;i++) cout<<"\n";for(int i=1;i<=18;i++) cout<<" ";printf("脏脏包 YYDS!!!");system("cls");}return 0;
}

2.

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;void gotoxy(int x, int y)//覆盖清屏 
{COORD pos = {x,y};HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(hOut, pos);return ;
}int main()
{system("mode con cols=50 lines=25");while(1){gotoxy(18,12);printf("脏脏包 YYDS!!!");}return 0;
}

发现了吧,是不是gotoxy更加简洁??(虽然一次感觉有点多,但多次就会写的少些)

2.Sleep

Sleep 也是 windows.h 中的一员

用法very very 简单:

Sleep(n) //停顿n毫秒

最常见的用法有两种(个人认为)

1.与gotoxy一起用

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;void gotoxy(int x, int y)//覆盖清屏 
{COORD pos = {x,y};HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(hOut, pos);return ;
}int main()
{while(1){gotoxy(0,0);printf("脏脏包 YYDS!!!");Sleep(20);}return 0;
}

是不是就不闪了???

但是像这种不断输出体现不了什么

如果是有改变的2D游戏中使用,效果就会特别好

2.文字游戏必备

曾经看过某些人写过的文字游戏

怎么说呢

不咋地

它一口气把要说的全部说了

就像这样:

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;int main()
{printf("脏脏包的简介 :\n"); printf("脏脏包是蒟蒻!!\n");printf("脏脏包 很懒!!!\n");printf("最近专注于教别人写游戏\n");printf("码龄一坤年的小黑子!\n");return 0;
}

是不是感觉没有一点神秘感?

用Sleep就会不一样:

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
#define printf printvoid print(string s,int ti)
{int l=s.size();for(int i=0;i<l;i++) cout<<s[i],Sleep(ti);return ;
}int main()
{printf("脏脏包的简介 :\n",40); printf("脏脏包是蒟蒻!!\n",40);printf("脏脏包 很懒!!!\n",40);printf("最近专注于教别人写游戏\n",40);printf("码龄一坤年的小黑子!\n",40);return 0;
}

所以写文字游戏的时候,用这个会不会更高级一点呢????

ヾ( ̄▽ ̄)Bye~Bye~(别忘了点赞、关注!!!)


http://www.ppmy.cn/news/211845.html

相关文章

【C语言】基础

在b站上看郝斌老师网课记的笔记 C语言的基本单位是函数&#xff0c;C语言是面向过程的高级语言。 文件后缀.c 规范写代码&#xff1a; 让别人看懂&#xff0c;不容易出错&#xff0c; 开头格式 /* 写程序时间&#xff1a; 功能&#xff1a; 目的&#xff1a; */ 结尾格式&am…

React18并发模式

前言 React18版本的发布标志着并发模式的正式应用&#xff0c;实际上自React16引入Fiber架构后&#xff0c;之后的版本工作之一就是为了后续并发模式的引入做铺垫。在具体说明并发模式之前首先需要明确并发的含义&#xff0c;这里会结合串行、并行概念对比并举例说明&#xff…

阿里P8架构师让我简历写精通AlibabaSentinel,结果收到P7的offer

有些程序员可能不知道阿里的职级是怎么划分的&#xff0c;下面就给大家介绍一下&#xff1a; ​ 从图上可以看出来&#xff0c;P7是技术专家&#xff0c;薪资在30W-50W&#xff0c;但是股票给到2400股&#xff0c;在大环境不好的情况下&#xff0c;还能给到这么高的薪水着实不错…

BIOS升级后的华硕P8P67 LE 主板支持i5 3570与之前G860对比性能质的飞跃,还能再战3年。(#^.^#)

升级前的配置&#xff1a; 升级后配置&#xff1a; 主板BIOS固件升级在华硕官网查找对应型号下载到U盘里面然后进入BIOS刷就可以。记住U盘&#xff0c;开始我放在第二个硬盘里面&#xff0c;读取不到。后方U盘就读到了。

P67

&#xfeff;&#xfeff; #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<math.h> /*函数prime判断输入的整型参数x是否为素数。是&#xff0c;则返回1&#xff0c;否则返回0 */ int prime(int x) { int i2,isprime1;//isprime作…

高度紧张的六面阿里P7岗我到底是怎么熬过来的?现在回头看真的难以置信!(Java架构师岗已拿Offer!)

本人开发8年&#xff0c;从一个中游的公司跳槽的阿里P7&#xff0c;其实这六轮的面试下来整体感觉还是不错的&#xff0c;在这之前我其实面试的其他公司的时候很烂。 第一轮&#xff1a;团队面试 第一轮基本上是你的团队成员面试你&#xff0c;是和你同级或者高你一个P的师兄…

阿里P7架构师面试题(总结)

常用设计模式 单例模式&#xff1a;懒汉式、饿汉式、双重校验锁、静态加载&#xff0c;内部类加载、枚举类加载。保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。代理模式&#xff1a;动态代理和静态代理&#xff0c;什么时候使用动态代理。适配器模式&…

最全阿里架构师P系列解读:P5-P8的技能要求和薪资结构

2018年持续一整年的架构设计分享&#xff0c;2019年我希望持续分享的同时&#xff0c;能真正意义上帮助到部分读者成为一名架构师。 学习的同时请千万别&#xff1a;只见树木&#xff0c;不见森林。 所以我会让大家先俯瞰完整的森林&#xff0c;我们再从树木开始&#xff0c;…