当前位置: 首页 > news >正文

成都网站制作公司科蓝l网站建设

成都网站制作公司科蓝,l网站建设,中国商标买卖网站,南通网站建设技术支持大家好#xff0c;这里是Dark Flame Master#xff0c;专栏从这篇开始就会变得很有意思#xff0c;我们可以利用今天所学的只是实现很多功能#xff0c;同样为之后的更加好玩的内容打下基础#xff0c;从这届开始将会利用所学的知识制作一些小游戏#xff0c;废话不多说这里是Dark Flame Master专栏从这篇开始就会变得很有意思我们可以利用今天所学的只是实现很多功能同样为之后的更加好玩的内容打下基础从这届开始将会利用所学的知识制作一些小游戏废话不多说开始今天的内容。 专栏EasyX图形化编程 文章目录 动画键盘交互 动画 在之前的笔记中我们所绘制的图形都是静态的现在我们通过代码让图形动起来。 就像小时候我们看的葫芦娃小金刚一样动画是由一帧一帧的图片逐个快速播放利用人的视觉停留就可以达到动画的效果。一般来说电视每秒播放24帧画面游戏更高在打游戏时游戏帧率越高游戏画面也就越流畅。 用前边的知识绘制一个半径100圆形窗体大小800*600圆心初始坐标为-4000。颜色可以自己选择。 要实现像动画一样逐帧播放我们可以不断改变圆心的x坐标更改后清除上一次画的圆形然后重新画出位置变化的圆形同时要使用Sleep()函数暂停程序一段时间。 代码如下 int main() {initgraph(800,600);setbkcolor(RGB(150, 205, 205));cleardevice();setorigin(400, 300);setaspectratio(1, -1);setfillcolor(RGB(106, 90, 205));int dx 15;for (int x -400; x 400; x dx){solidcircle(x, 0, 100);Sleep(200);cleardevice();}getchar();return 0; }画出一个圆形后Sleep200毫秒清空屏幕后画出下一个再Sleep200毫秒。直到运动到最右端循环结束getchar阻塞进程。 运行后效果如下 因为休眠函数在每次循环时休眠200毫秒所以在一秒内可以播放五帧画面每次移动的距离为15像素所以圆形的移动速度为每秒75像素。 如果想让画面更加流畅然而圆形的移动速度几乎不变就要加大帧率减小每次移动的像素。 将休眠时间改为50毫秒将每次移动的像素即dx设置为5。 运行后效果如图 对比上边流畅很多。 键盘交互 在动画的基础上加入键盘交互功能按下w键圆形向上移动按下a键圆形向左移动按下d键圆形向右移动按下s键圆形向下移动。 首先如何从键盘上读取信息 我们会想到使用getchar函数有了思路就开始编写代码实现按下w键圆形向上移动50像素。 int main() {initgraph(800,600);setbkcolor(RGB(150, 205, 205));cleardevice();setorigin(400, 300);setaspectratio(1, -1);int x 0;int y 0;setfillcolor(GREEN);solidcircle(x, y, 50);//画出圆形while (1){char c getchar();if (c w){y 50;}cleardevice();//清除窗体solidcircle(x, y, 50);//画出圆形}getchar();return 0; }编写完成后运行代码发现按下’w’键没有任何反应按下回车后才会向上移动而且点击n次w键会直接向上移动n*50像素。这是为什么呢 让我们深入了解一下getchar函数 getchar函数从输入缓存区中读取一个字符如果读取成功就返回读取到的字符如果缓存区中没有数据函数将会阻塞进程直到缓存区里有数据。 在控制台上输入数据但数据还没有进入输入缓存区需要按下回车键才会将输入的全部数据放在缓存区然后getchar函数取出第一个字符并返回这个字符。若在循环中getchar会依次取出这些数据直到没有数据为止。 我们想让动画和键盘交互组合但getchar函数明显不满足需求想要实现实时型交互按下键盘后程序就作出反应而不是按下回车后才运行运行之后又堵塞。 这里就要提到getch函数 无需回车只需要按下键盘就可以将数据送进输入缓存区。 别忘记包含头文件conio.h 写一串代码探究其特性 注在使用getch函数时要写成_getch的形式。 代码如下 #include conio.h int main() {while (1){char c;c _getch();putchar(c - 32);}return 0; }运行后输入小写a就直接在控制台打印出A输入b就直接打印B。 解决了回车问题我们想在圆形移动的时候就可以控制圆移动的方向而getch仍然具有阻塞程序运行的作用。这种用户输入之后场景才发生变化的适合推箱子游戏2048等然而对于就算没有输入整个场景仍然会变化的场景则不适用。 介绍一下函数kbhit int kbhit(void); kbhit函数会检查getch函数的输入缓存区中是否有数据若没有数据就返回0如果有数据就返回非0的数。 这个函数不会阻塞程序的运行可以借此判断是否用户按下了键盘然后再做出反应这样就不会阻塞程序的运行。kbhit函数也要写作_kbhit。 对前边的圆形动画做出改变加上键盘交互功能。 代码如下 int main() {initgraph(800, 600);setbkcolor(RGB(150, 205, 205));cleardevice();setorigin(400, 300);setaspectratio(1, -1);setfillcolor(RGB(106, 90, 205));int x -400, y 0;int dx 5 , dy0;while (1){cleardevice();solidcircle(x, y, 50);Sleep(40);if (_kbhit() ! 0){char c _getch();switch (c){casew:dx 0;dy 5;break;casea:dx -5;dy 0;break;cases:dx 0;dy -5;break;cased:dx 5;dy 0;break;}}x x dx;y y dy;}getchar();return 0; }起始位置在最左边刚开始设置dx为5即圆形向右移动只有我们按下键盘才会进入switch语句更改dx与dy的值从而实现在运动中改变运动的方向。 运行后效果如下 接下来会用今天所学的知识来实现一个简单的弹球小游戏。希望大家有所收获。
http://www.dnsts.com.cn/news/74020.html

相关文章:

  • 鲜花网站建设策划方案网站规划建设书
  • 集约化网站建设方案专业设计网站效果
  • 长安东莞网站推广企业在线查询系统平台
  • 中太建设集团网站2015做哪个网站能致富
  • 做网站公司大型麻将网站怎么做的
  • 黑河做网站的嘉兴南湖区建设局网站
  • 什么网站可以做任务挣钱的网站被挂马原因
  • 零陵网站建设邯郸市地图高清版最新
  • 淘宝禁止了网站建设类网站怎么开发
  • pathon能做网站开发吗南昌专业网站建设首页排名
  • 做代理的网站wordpress附件地址
  • 天宁建设网站管理软件开发公司
  • 手机网站自适应屏幕网站地图开发
  • 网站建立要多少钱网站建设服务器端软件
  • 免费教育网站大全 建站注册域名的网站
  • 西地那非最佳吃法搜索引擎优化特点
  • 如何自己做论坛网站广州做网站 汉狮网络
  • 网站301跳转有坏处吗网页制作与网站建设项目教程
  • lol门户网站源码新津网站建设
  • 小金县建设局网站黑白的网站
  • 山东威海网站开发wordpress优秀移动站点
  • 手机p2p网站建设微信优惠券网站怎么做的
  • 构建电子商务网站的步骤重庆建设人才促进网
  • 建立网站信息发布登记制度建设网站的网站公司
  • 网站开发系统的可行性研究报告wordpress进入有点卡
  • 东莞市手机网站建设多少钱互联网推广方式
  • wordpress豆瓣小站中山企业推广网站制作
  • 免费设计图网站WordPress添加内容评论可见
  • 网站开发php工资wordpress文字轮播
  • 有趣的网站代码免费绘画素材网站