一些语法在游戏开发中的应用

  • 一、减少不必要的全局变量
  • 二、动态二维数组
  • 三、整数转换为字符串输出
  • 四、播放音乐模板

一、减少不必要的全局变量

游戏开发中有些变量只需要在少数函数中传递,修改数值。如果不用指针的话,会造成全局变量过多。

例如下面:

#include<stdio.h>
int score=5;
void addScore()
{score=score+1;}
void printfScore()
{printf("%d\n",score);
}
void minusScore()
{score=score-1;
}
int main()
{addScore();minusScore();printfScore();return 0;
}
上面代码就有一个全局变量,  接下来我们就来尽量的减少不必要的全局变量,让它们变成局部变量。
我们可以用指针作为函数的参数,因为指针可以在函数内部中改变参数的值,减少不必要的全局变量。

改进后的代码如下:

#include<stdio.h>
void addScore(int *sc)
{*sc=*sc+1;}
void printfScore(int sc)
{printf("%d\n",sc);
}
void minusScore(int *sc)
{*sc=*sc-1;
}
int main()
{int score=5;addScore(&score);minusScore(&score);printfScore(score);return 0;
}

二、动态二维数组

模板代码如下:

#include<stdio.h>
#include<stdlib.h>
int main(void)
{int high,width,i,j;scanf("%d %d",&high,&width);//自定义输入长、宽。//分配动态二维数组的内存空间int **canvas=(int**)malloc(high*sizeof(int*));for(i=0;i<high;i++)canvas[i]=(int*)malloc(width*sizeof(int));for(i=0;i<high;i++)for(j=0;j<width;j++)canvas[i][j]=i+j+1+1;//初始化为坐标之和 for(i=0;i<high;i++){    for(j=0;j<width;j++)printf("%d ",canvas[i][j]);printf("\n");}//回收动态数组的空间for(i=0;i<high;i++)free(canvas[i]);free(canvas);return 0;
}

三、整数转换为字符串输出

在图形化编程中只能输出字符串,所以我们要把整数转换为字符串

自己写的转换函数如下:

#include<stdio.h>
#include<stdlib.h>
void Int2Str(int x,char *istr)//将正整数x转换为字符串istr
{char ch,*p,*t;int r;p=t=istr;while(x>0){r=x%10;x=x/10;*p=48+r;p++;}*p='\0';p--;while(t<p)//将p中的字符串倒序排列{ch=*t;*t=*p;*p=ch;t++;p--;}
}
int main()
{char s[30];int score=5326;Int2Str(score,s);printf("%s\n",s);return 0;
}
当然我们也可以用系统自带的sprintf函数

例:

int score=56;
char s[5];
sprintf(s,"%d",score);

四、播放音乐模板

只播放一次音乐 模板代码如下:

#include<string.h>
#include<Windows.h>
#include<mmsystem.h>
#pragma comment(lib,"Winmm.lib")
void PlayMusicOnce(char *fileName)
{char cmdString1[50]="open";strcat(cmdString1,fileName);strcat(cmdString1,"alias song");mciSendString("close song",NULL,0,NULL);//先把前面一次的音乐关闭mciSendString(cmdString1,NULL,0,NULL);//打开音乐mciSendString("play song",NULL,0,NULL);//仅播放一次
}
int main(void)
{PlayMusicOnce(" F:\\1.mp3 ");//输入的是要播放的音乐的路径system("pause");return 0;
}

循环播放音乐 模板代码如下:

#include<string.h>
#include<Windows.h>
#include<mmsystem.h>
#pragma comment(lib,"Winmm.lib")
void PlayMusicOnce(char *fileName)
{char cmdString1[50]="open";strcat(cmdString1,fileName);strcat(cmdString1,"alias song");mciSendString("close song",NULL,0,NULL);//先把前面一次的音乐关闭mciSendString(cmdString1,NULL,0,NULL);//打开音乐mciSendString("play song repeat",NULL,0,NULL);//循环播放
}
int main(void)
{PlayMusicOnce(" F:\\1.mp3 ");system("pause");return 0;
}

一些语法在游戏开发中的应用相关推荐

  1. 游戏开发- Python语言在游戏开发中的潜力

    PYTHON 是一种面向对象的通用高级编程语言,由 GUIDO VAN ROSSUM 于 1991 年开发.自发展以来,PYTHON 已成为世界上最流行的编程语言之一.它经常在流行度调查中排名靠前-- ...

  2. Unity 3D - 游戏开发中的Lua

    Unity 3D - 游戏开发中的Lua : 本文作者:秦元培, 本文出处:http://blog.csdn.net/qinyuanpei/article/details/39826323 前言 : ...

  3. Python脚本解决在游戏开发中的困难

    Python脚本解决在游戏开发中的困难 新客网 XKER.COM 时间:2010-03-11  点击: 次 Python脚本是一种广泛应用于玩游戏开发的通信语言,在实际应用的过程中还是有不少的问题困扰 ...

  4. J2ME游戏开发中时钟的简单实现

    在java.util包中有一个TimerTask类,你可以扩展这个类并且实现他的run()方法,在run()方法中编写我们的逻辑代码.如果我们想制作一个游戏时钟,那么非常简单我们编写一个GameClo ...

  5. Java ME游戏开发中,碰撞检测算法在Java?ME中的实现(

    2019独角兽企业重金招聘Python工程师标准>>> 在Java ME游戏开发中,碰撞检测算法在Java?ME中的实现(百搜技术) 在Java ME游戏开发中,经常需要进行碰撞检测 ...

  6. 机器学习将在游戏开发中的6种应用

    机器学习正在改变几乎每个行业,从农业中的作物规划到医疗保健中的癌症诊断.这些主题通常会得到更广泛的讨论,因为它们已经产生了切实的,对人类有益的影响.对于游戏行业而言,不幸的是,游戏开发中的机器学习仍处 ...

  7. Android游戏开发中绘制游戏触摸轨迹的曲线图

    本篇文章主要来讲解怎样绘制游戏触摸轨迹的曲线图. 我们在onTouchEvent方法中,可以获取到触摸屏幕时手指触摸点的x.y坐标,如何用这些点形成一条无规则轨迹并把这条无规则轨迹曲线显示在屏幕上就是 ...

  8. [C++基金会]位计算 游戏开发中的应用

    定义的位操作:通俗点说,,位计算是计算机操作二进制整数. 无论整数可以用二的方式来表示进度,不同类型的其长度的整数位的是不一样的.INT8要么char靠8个月2 位表示,INT16或者short是由1 ...

  9. 游戏开发中的数据表示

    声明:本文内容源自腾讯游戏学院程序公开课_服务端 一.数据表示的基础 什么是数据表示? 数据是信息的载体. 数据表示是一组操作,可以描述.显示.操作信息. 数据表示的要素 IDL - 接口描述语言 I ...

最新文章

  1. 用C语言实现三子棋游戏(附上思路+项目展示+源代码)
  2. mysql Sql slow log_MySQL慢查询日志(SLOW LOG)
  3. [源码和文档分享]基于FFMEPEG-MATLAB和C#-SQL SERVER构建的手机录音数据库及特征分析...
  4. C语言模拟实现标准库函数之strlen()
  5. 深度学习02——Softmax、DNN、WideDeep Model
  6. 该系列主要整理收集在使用C#开发WinForm应用文章及相关代码来源于WinForms小组...
  7. All Things Intelligence—Baidu World 2020
  8. 如何设置计算机休眠播放幻灯片,如何设置电脑休眠屏保幻灯片
  9. 网址导航引导页面H5源码
  10. python 求矩阵的特征值和特征向量
  11. 怎样使用Excel填充柄的作用与功能
  12. 【每日一读】SWOPE:Efficient Approximate Algorithms for Empirical Entropy and Mutual Information
  13. RxSwift学习(五)--- RxSwift 操作符
  14. 模拟法-鸡兔同笼问题
  15. 前端开发之走进Vue.js(入门者看过来)
  16. mc用什么版本的java_MC版本Java版5大功能优势
  17. F4键在word可以做什么?万能的F4键竟然还有这些功能!
  18. img标签前面加冒号:src和src的区别
  19. 翻译翻译什么叫她妈的惊喜_妈的程序员说,翻译
  20. ListView滚动的方法

热门文章

  1. 剑指Offer——斐波那契数列
  2. luogu P3293 [SCOI2016]美味
  3. window文件过长无法删除的处理方式
  4. 第二次周考题目答案整理
  5. 砝码问题之一(回头发现貌似多重背包)
  6. ubuntu软件位置(安装位置, 运行文件位置, 缓存位置)
  7. 三种SQL分页查询的存储过程
  8. Bluetooth GAP介绍
  9. CFG_GCR全局配置寄存器设置
  10. C++ Primer 5th笔记(chap 19 特殊工具与技术)异常类层次