C语言游戏开发随笔(一)——入门篇

清屏函数system("cls");
如果要使用此函数,需引用头文件#include<stdlib.h> 这个函数可以营造小球移动的感觉,但是如果清屏函数之间代码执行时间过长,画面就会出现严重的闪烁。

通过移动光标来清屏void gotoxy(int x, int y);
这个函数不是编译器自带的,需要自己定义(当然也可以是其他名字)函数如下:

void gotoxy(int x, int y)          //将光标移动到(x, y)位置
{
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos;
    pos.X = x;
    pos.Y = y;
    SetConsoleCursorPosition(handle, pos);
}

调用这个函数还需要引用头文件#include<windows.h> 这个函数可以将光标移动到原点位置,再进行重画,即可实现类似清屏的效果,不会出现画面闪烁,而且还会提高运行速度,但是会出现光标闪烁。

隐藏光标函数void HideCursor();
这个函数不是编译器自带的,需要自己定义(当然也可以是其他名字)函数如下:

void HideCursor()
{
    CONSOLE_CURSOR_INFO cursor_info = {1, 0};     //第二个值为0表示隐藏光标
    SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}

调用这个函数还需要引用头文件#include<windows.h> 将此函数放在主函数里即可隐藏光标,解决光标闪烁问题

Sleep函数Sleep(nms);
比如Sleep(10);表示程序执行到此处暂停10ms,如果要使用此函数,需引用头文件#include<windows.h>或者#include<cwindows.h>(根据编译器的不同选择前一个或则后一个)

输入函数scanf();getch();
scanf();函数要求每输入一个字符按回车键后才能执行,交互效果不好,而getch();函数不需要回车就可以得到输入的控制字符,如果要使用此函数,需引用头文件#include<conio.h>

判断输入函数kbhit();
如果用户有键盘输入时此函数返回1,否则返回0;在没有键盘输入时if(kbhit())下面的语句不会运行(可以避免出现用户不输入游戏就暂停的情况)如果要使用此函数,需引用头文件#include<conio.h>

当代码排版不规范时,按Ctrl+A键全选后按Alt+F8键将自动排版。(如果F8有其他功能时,则按Alt+Fn+F8即可自动排版)

当游戏运行时在cmd窗口上右击选择“属性”(或“默认值”)命令,可以调整字体大小、字体背景颜色、窗口大小等,使游戏的显示效果更好。

退出程序exit(0);或者exit(1);
不论在哪里执行了exit(0);都会结束主程序的运行,而只有在main()函数里执行return才会结束主程序的执行。其中exit(0);表示程序正常退出;exit(1);表示程序异常退出,可以用来终止程序。如果游戏GameOver,可以使用exit(0);正常退出游戏。

获取系统时间GetLocalTime(&ti);
首先定义一个系统变量SYSTEMTIME ti;ti是一个结构体变量

typedef struct _SYSTEMTIME {
    WORD wYear;
    WORD wMonth;
    WORD wDayOfWeek;
    WORD wDay;
    WORD wHour;
    WORD wMinute;
    WORD wSecond;
    WORD wMilliseconds;
} SYSTEMTIME

调用函数GetLocalTime(&ti);后,即可通过ti.wSecond来获取结构体中各变量的值。此函数在头文件#include<WinBase.h>中。

  • 10
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值