一些语法在游戏开发中的应用
生活随笔
收集整理的這篇文章主要介紹了
一些语法在游戏开发中的应用
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一些語法在游戲開發(fā)中的應(yīng)用
- 一、減少不必要的全局變量
- 二、動(dòng)態(tài)二維數(shù)組
- 三、整數(shù)轉(zhuǎn)換為字符串輸出
- 四、播放音樂模板
一、減少不必要的全局變量
游戲開發(fā)中有些變量只需要在少數(shù)函數(shù)中傳遞,修改數(shù)值。如果不用指針的話,會(huì)造成全局變量過多。例如下面:
#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; } 上面代碼就有一個(gè)全局變量, 接下來我們就來盡量的減少不必要的全局變量,讓它們變成局部變量。 我們可以用指針作為函數(shù)的參數(shù),因?yàn)橹羔樋梢栽诤瘮?shù)內(nèi)部中改變參數(shù)的值,減少不必要的全局變量。改進(jìn)后的代碼如下:
#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; }二、動(dòng)態(tài)二維數(shù)組
模板代碼如下:
#include<stdio.h> #include<stdlib.h> int main(void) {int high,width,i,j;scanf("%d %d",&high,&width);//自定義輸入長、寬。//分配動(dòng)態(tài)二維數(shù)組的內(nèi)存空間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;//初始化為坐標(biāo)之和 for(i=0;i<high;i++){ for(j=0;j<width;j++)printf("%d ",canvas[i][j]);printf("\n");}//回收動(dòng)態(tài)數(shù)組的空間for(i=0;i<high;i++)free(canvas[i]);free(canvas);return 0; }三、整數(shù)轉(zhuǎn)換為字符串輸出
在圖形化編程中只能輸出字符串,所以我們要把整數(shù)轉(zhuǎn)換為字符串自己寫的轉(zhuǎn)換函數(shù)如下:
#include<stdio.h> #include<stdlib.h> void Int2Str(int x,char *istr)//將正整數(shù)x轉(zhuǎn)換為字符串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; } 當(dāng)然我們也可以用系統(tǒng)自帶的sprintf函數(shù)例:
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);//先把前面一次的音樂關(guān)閉mciSendString(cmdString1,NULL,0,NULL);//打開音樂mciSendString("play song",NULL,0,NULL);//僅播放一次 } int main(void) {PlayMusicOnce(" F:\\1.mp3 ");//輸入的是要播放的音樂的路徑system("pause");return 0; }循環(huán)播放音樂 模板代碼如下:
#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);//先把前面一次的音樂關(guān)閉mciSendString(cmdString1,NULL,0,NULL);//打開音樂mciSendString("play song repeat",NULL,0,NULL);//循環(huán)播放 } int main(void) {PlayMusicOnce(" F:\\1.mp3 ");system("pause");return 0; }總結(jié)
以上是生活随笔為你收集整理的一些语法在游戏开发中的应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 项目: 双人反弹球游戏
- 下一篇: 项目: 代码雨