欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

小游戲代碼編程c,Code如何編寫運行CC

老白2年前43瀏覽0評論
小游戲代碼編程c,在游戲開發中,你可能會遇到Code如何編寫運行CC類似的問題,可以參考如下:

小游戲代碼編程c,Code如何編寫運行CC?

這個主要分為2步,第一步安裝C/C++ for Visual Studio Code插件,第二步安裝MinGW編譯器就行,下面我簡單介紹一下VS Code的C/C++環境配置過程:

1.安裝C/C++ for Visual Studio Code,這個直接在擴展中搜索“C++”,點擊右下角install安裝C/C++ for Visual Studio Code就行,如下:

2.安裝成功后,我們就需要安裝MinGW編譯器了,這個直接在MinGW官網上下載就行,很快就能下載成功:

之后,點擊安裝就行,如下,稍微等待一下:

安裝成功后,我們需要將MinGW安裝目錄下的bin目錄添加到環境變量中,以方便后面使用,如下,換成你自己的目錄路徑:

接著,我們打開cmd窗口,輸入“g++ -v”查看一下,環境變量是否配置成功,如下,說明已經添加成功:

3.一切就緒后,最后面就是編寫C++代碼進行測試了,如下,我們新建一個main.cpp文件,測試代碼如下,很簡單:

接著我們點擊Debug運行,選擇“C++(GDB/LLDB)”,如下:

然后就會彈出如下launch.json這個配置文件,原始配置如下:

我們需要對這個配置文件進行修改,配置成我們程序能正常運行的環境,如下,這里主要修改“program”,“miDebuggerPath”,“preLaunchTask”這3個參數,其中program改成你生成的exe的路徑,也就是"${workspaceRoot}/${fileBasenameNoExtension}.exe",miDebuggerPath改成你的MinGW的gdb路徑,我的是"D:\\MinGW\\mingw32\\bin\\gdb.exe",記著添加反斜杠\,不然會出錯,最后,就是添加preLaunchTask,也就是g++編譯,完整配置如下:

接著我們在當前的vscode文件夾下面新建一個tasks.json文件,配置如下:

最后,就是點擊“Debug”運行了,如下,程序已經成功運行,到此環境就配置成功了:

至此,我們就完成了VS Code的C/C++環境的配置??偟膩碚f,整個過程不難,就是分為2步,一步安裝插件,一步安裝MinGW編譯器,最后,就能正常的編寫運行C/C++代碼了,只要你按著以上步驟配置一下,很快就能成功,網上也有相關教程和資料,感興趣的可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言。

怎樣用C語言編寫歌曲程序和歌曲代碼?

//絕對調試通過,AVR-GCC,mega16,帶數碼顯示,單鍵開關多功能控制

#include <avr/io.h>

#include <avr/interrupt.h>

#include <tone.h>

#include <avr/pgmspace.h>

#define uchar unsigned char

#define uint unsigned int

#define key_input PINA

#define pgm16(A) ((typeof(A))pgm_read_word(&(A)))

const unsigned char seg_code[] ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x7f,0x3f};

const uint music[] PROGMEM={M3,F2,M5,B1,M3,F4,M2,F4,M1,B2,L6,F2,M1,F2,MM,M1,F2,L6,F2,L5,B2, L6,F2,M1,B1,MM,M1,F2,L6,F2,M6,F2,L5,F2,M3,F2,M2,F2,MM,M2,F4,M1,F4,L6,F2,M3,F2,M2,B2, M3,F2,MM,M3,F2,MM,M3,F2,M2,F2,M1,B2,L6,F2,M1,F2,L7,F2,L5,F2,L6,B2, L5,F2,L6,F2,MM,L6,F2,L5,F2,M6,F2,M5,F2,MM,M5,F2,M3,F2,M2,F2,MM,M2,F4,M3,F4,M3,F2,M2,F2,M1,B2, M6,F2,H1,B1,M6,F2,H2,F2,H1,F2,MM,H1,F2,M6,F2,MM,M6,F2,M5,F2,MM,M5,F2,M3,F2,M5,B2, M6,F2,H1,B1,M6,F2,H2,F2,H1,F2,MM,H1,F2,M6,F2,M5,F2,MM,M5,F2,MM,M5,F2,M3,F2,M2,B2, M3,B1,MM,M3,F2,M5,F2,M6,F2,M5,F2,MM,M5,F2,M3,F2,MM,M3,F2,M2,F2,MM,M2,F2,M1,F2,L6,B2, L5,F2,M5,F4,MM,M5,F4,MM,M5,F2,M6,F2,M5,F2,M3,F2,M2,F2,M3,F2,MM,M3,F2,M2,B1,L6,F2,M1,B2, M6,F2,H1,B1,M6,F2,H2,F2,H1,B1,M6,F2,MM,M6,F2,M5,F2,MM,M5,F2,M3,F2,M5,B2, M6,F2,H1,B1,M6,F2,H2,F2,H1,B1,M6,F2, M5,F2,MM,M5,F2,MM,M5,F2,M3,F2,M2,B2,MM, M2,F2,MM,M2,F4,M1,F4,M2,F2,M3,F2,M5,F2,MM,M5,F2,MM,M5,F2,M3,F2,M2,F2,MM,M2,F4,M3,F4,M2,F2,M1,F2,L6,B2, L5,F2,M5,F4,MM,M4,F4,MM,M5,F2,M6,F2,M5,F2,M3,F2,M2,F2,M2,F4,M3,F4,MM,M3,F2,M2,B1,L6,F2,M1,B3,0XFF,0XFF};

//因為兩個相同的音符之間無停頓,人為插入了MM(極短暫的

volatile uint i=1;

volatile uchar timeOK=0;

uchar key_scan(void);

ISR(TIMER0_COMP_vect) //CTC模式,控制音調高低

{

OCR0=pgm16(music[i-1]);

}

ISR(TIMER1_OVF_vect) //時間溢出模式,控制節拍長短

{

i+=2;

TCNT1H=(65536-pgm16(music[i]))/256; //相當于(65536-beat[i])/256

TCNT1L=(65536-pgm16(music[i]))%256; //相當于(65536-beat[i])%256

if(pgm16(music[i])==0xff)i=1; //在音調數組的最后加一個0xff,作為終止信號

if(pgm16(music[i])==0x00)TIMSK&=(~(1<<OCIE0));

else TIMSK|=(1<<OCIE0);

}

ISR(TIMER2_OVF_vect) //時間溢出模式,用于檢測按鍵,周期10ms

{

TCNT2=100;

timeOK=1;

}

void timer0_init(void)

{

TCCR0=0x00;

TCNT0=0x00;

OCR0=pgm16(music[i-1]);

TCCR0=0x1a;

//TIMSK|=(1<<OCIE0);

}

void timer1_init(void)

{

TCCR1B=0x00;

TCNT1H=(65536-pgm16(music[i]))/256;

TCNT1L=(65536-pgm16(music[i]))%256;

TCCR1A=0x00;

TCCR1B=0x05;

//TIMSK|=(1<<TOIE1);

}

void timer2_init(void)

{

TCCR2=0x00;

TCNT2=100;

TCCR2=0x03;

TIMSK|=(1<<TOIE2);

}

void MCU_init(void)

{

DDRA=0X00;

DDRB=0X00;

DDRC=0XFF;

DDRD=0XFF;

PORTB=0X00;

PORTC=0xfe;

PORTD=0xff;

}

uchar key_scan(void) //按鈕掃描函數

{

static uchar key_state=0,key_time1=0,key_time0=0; //靜態變量,調用以后,值被保留;

uchar key_press,key_return=0;

key_press=(~key_input)&0x01; //有鍵1,無鍵0

switch(key_state) //狀態機

{

case 0: //狀態0:無按鈕按下狀態

if(key_press)key_state=1;

break;

case 1: //狀態1:檢測到有按鈕被按下

if(key_press) //按鈕仍按下,轉2

{

//TIMSK^=(1<<TOIE0);

key_state=2;

key_time1=0; //按下時間初始

}

else //按鈕已經釋放,消抖

key_state=0;

break;

case 2: //狀態2:等待釋放或等待按下時間達到長按要求

if(!key_press) //按鈕已經釋放,轉3,繼續判斷是雙按還是單按

{

key_state=3;

key_time0=0; //釋放時間初始

}

else if (++key_time1>=100) //按下時間達到1000ms,返回值2,作長按判斷,轉7等待按鈕釋放

{

key_state=8;

key_time1=0;

key_return=2;

}

break;

case 8:

if(!key_press)

{

key_state=0;

key_time1=0;

}

else if (++key_time1>=50)

{

key_return=2;

key_time1=0;

}

break;

case 3: //狀態3:雙按的第二次按鈕輸入前的等待間隙,設定100ms(經過測試,100ms為比較合適的時間間隙,即為人體普通可以雙擊的速度

if(key_press)key_state=4; //在此時間,如果有按鈕被按下,將當作釋放抖動,轉4進一步作出判斷

else if (++key_time0>4) //如果沒有按鈕被按下,則等待此100ms過去,然后轉5

{

key_state=5;

key_time0=0;

}

break;

case 4: //狀態4:第二按的消抖處理

if(key_press)key_state=2; //快速連按(被認為人手指達不到要求的速率)將被返回到2,當作第一按處理

else key_state=3; //如果第二按只出現一次,不到10ms,消抖

break;

case 5: //狀態5:第二按前等待時間到達,進入正常的第二按等待輸入狀態,第二按只允許在此時間內輸入方為有效

if(key_press)key_state=6; //此時間內有被按下,轉6,判決抖動;

else if(++key_time0>14) //無輸入,則等待輸入有效時間過去,時間滿后,判定為單按,返回值1,狀態位回到0

{

key_state=0;

key_time0=0; //雙擊間隔時間一般為100ms,能夠穩定做到第二擊完成時間總共約180~200ms(因人而異)

key_return=1; //為增加采樣成功率,可適當縮短第二按前的間隙時間,增加第二按等待輸入時間,但總時間不可短于150ms

} //小于150ms,手指將很難達到雙擊的速度要求,如果時間太長則單按判斷時間過長,按鈕不靈敏,此處180ms經測試較為合適

break;

case 6: //狀態6:第二按的抖動判斷

if(key_press) //按鈕仍有效,按下有效,返回3,雙按成立,轉7等待按鈕釋放

{

key_state=7;

key_return=3;

}

else key_state=5; //抖動消除,退回5繼續等待輸入或等待輸入有效時間過去

case 7: //按鈕釋放等待狀態,所有已按下并被識別操作目的的按鈕狀態都將轉到7等待按鈕釋放,并將所有計時初始

if(!key_press)key_state=0;

key_time1=0;

key_time0=0;

break;

}

return key_return;

}

int main(void)

{

MCU_init();

timer0_init();

timer1_init();

timer2_init();

sei();

while(1)

{

if(timeOK)

{

cli();

uchar key;

key=key_scan();

if(key>0)PORTD=seg_code[key];

switch(key)

{

case 1:

TIMSK^=((1<<OCIE0)|(1<<TOIE1)); DDRB^=(1<<DDB3); PORTC=0xfd;

break;

case 2:

//TIMSK|=((1<<OCIE0)&(1<<TOIE1));

if(i>1)i+=10;

if (i>=(sizeof(music)-20))

{

i=1;

TIMSK&=(~((1<<OCIE0)|(1<<TOIE1)));

DDRB&=~(1<<DDB3);

}

PORTC=0xf0;

break;

case 3:

TIMSK&=(~((1<<OCIE0)|(1<<TOIE1)));

i=1;

TIMSK|=((1<<OCIE0)|(1<<TOIE1));

PORTC=0xfe;

break;

default:

break;

}

timeOK=0;

sei();

}

}

}

在Proteus中怎么用C語言寫代碼?

proteus不能直接寫C代碼 只能運行仿真keil寫好 并編譯的C代碼 proteus+keil 這個才是完整的。

以上就是關于小游戲代碼編程c和Code如何編寫運行CC的相關問題解答,希望對你有所幫助。