當前位置:首頁 » 編程軟體 » 高中編程游戲

高中編程游戲

發布時間: 2022-07-26 07:21:39

❶ c++ 編程游戲是怎麼實現的

跟我剛學程序的時候一模一樣阿。
1.在WIN32下可執行程序都是.exe的,實際上你在vc里編譯 聯接運行的也是exe文件。他通常在你工程下的build路徑下。編譯通常分為debug跟realease,debug版本一般不能獨立運行 需要在IDE(也就是VC里運行),realease可以單獨運行。

2.首先要記住無論什麼語言都只是一個工具,這個工具在沒有實際平台的時候沒有任何用處。所以純粹的c++語言在脫離平台的情況下只能製作命令行(console)程序與靜態庫。要製作一個游戲你需要依賴平台的圖形庫,聲音庫等等。比如在VC下最簡單的製作游戲,你需要用GDI來繪制圖形,當然這些是依賴於平台的也就是windows的。而你所使用的語言,比如c++就是這么以們負責使用圖形庫,與描述邏輯的工具。如果你有興趣製作游戲的話,可以看看相關書籍與圖形學方面的東西。

❷ 如何學習游戲編程好學嗎

學動漫遊戲編程是吧,這個行業現在很不錯,也算是新新產業吧,我建議你去北京的中關村游戲學院 教學質量不錯,你可以到那裡去學 詳細資料可以到網路上去搜,地址:北京市海淀區海淀南路13號(人民大學西門)億方大廈11層
地鐵十號線乘至蘇州街下車。 B口出就到。
編程就是將程序的運行過程和方式用英文編譯出來,從「輸入」「下一步.....」一直到「輸出」.然後轉換成能運行的程序,程序就會按編譯的內容執行命令。一專心去學的話還是挺好的,現在計算機時代這些是很有用的

❸ 有哪些python寫的游戲

python編程游戲有哪些?下面給大家介紹幾款由Python開發的游戲:

1. Github上面有個項目Free Python Games,裡面集合了不少的Python開發的小游戲,能玩,也適合新手用來練練手,另外 PyGame 這個網站裡面裡面集合了很多Python開發的小游戲。

2. Python版本的 Flapy Bird 簡化版,但是感覺更加難玩了。當然你也可以嘗試用Python開發原版的 Flapy Bird,涵蓋了顏色圖像等:Flappy Block - 1.0

3. 小時候經常在手機上玩的一個游戲,也是一款經典的街機游戲,這款游戲進化之後其實就是一個打乒乓的小游戲,這里同樣有一個進化版本,圖形設計的更加好看:Ping Pong

相關推薦:《Python基礎教程》

4. 以前初高中在學校很無聊的時候跟同桌或者前後桌玩的游戲,你還記得么

5. 同樣一款小時候在小霸王上玩的游戲:Junk Jungle

6. 除此之外,一款比較有名基於Pyhton的戰爭的游戲:Home - TaleWorlds Entertainment

7. 一款看起來非常有趣的3D游戲:Galcon

8. 據說是能與Pyhton搭上邊最有名的一款游戲,但好像他的客戶端是用的C++,我試了一下很炸裂:EVE Online - One community. Countless journeys

❹ 高中畢業能不能學習電腦編程學習電腦編程都需要知道什麼

可以啊,有計算機科學與技術 數字媒體技術方向。
數字媒體技術主要包含場景設計、角色形象設計、游戲程序設計、多媒體後期處理、人機交互技術。主要針對游戲開發和網站美工還有創意設計這類工作設計的專業。
數字媒體技術,此專業最早出現在北京,目前實力較強的大學是南京大學、浙江大學、中國傳媒大學、吉林動畫學院及浙江科技學院等。

培養目標
本專業培養德智體美全面發展的、面向當今信息化時代的、從事數字媒體開發與數字傳播
數字媒體技術的研究內容
的專業人才。畢業生將兼具信息傳播理論、數字媒體技術和設計管理能力,可在黨政機關、新聞媒體、出版、商貿、教育、信息咨詢及IT相關等領域,從事數字媒體開發、音視頻數字化、網頁設計與網站維護、多媒體設計製作、信息服務及數字媒體管理等工作。
主要課程
攝影攝像技術、藝術設計基礎、數字媒體技術概論、程序設計基礎、資料庫設計、網頁設計與製作、互動式多媒體網站開發、數字信號處理、數據結構、演算法設計與分析、面向對象程序設計(java)、計算機圖形圖像處理、人機交互技術、多媒體資料庫、動畫設計與製作、3D造型、電視節目編導與製作、音視頻信息處理、特效製作與非線性編輯等。

專業特色
數字媒體技術專業的教學與出版、新聞、影視等文化媒體及其它數字媒體軟體開發和產品設計製作行業的要求相結合,培養面向數字網路時代兼具信息傳播理論、數字媒體技術和設計管理能力的復合型人才。
1,計算機系統結構,就是俗話說的硬體。其實不限於硬體。主要搞網路體系結構,網格技術,計算機嵌入式結構,計算機結構,甚至是計算機CPU結構設計。其實這些專業,主要是編程,出來以後,除了搞CPU結構設計的,大多數還是做軟體工程師去了。真正的硬體工程師,大多數是學電子的人做的。

2,計算機軟體理論。這個主要是搞資料庫,操作系統,網路軟體,中間件,數據挖掘什麼的,出來以後肯定是軟體工程師。

3,計算機應用。這個什麼都有,肯定是偏軟體。還有一些所謂的計算機圖象處理,計算機識別,專家系統什麼的。

現在很多學校還開始了一個叫 網路安全 的二級學科。

其實我告訴你,我是國內一個重點大學計算機本科出來的,本科的時候,你要是用心學,自學比較勤奮,確實能學到東西,甚至很牛。要是很著混,也能畢業,畢業了什麼都不會,對計算機狗屁都不是。大多數人是混,反正我們學校是這樣,那些不如我們學校的估計也是。比我們學校好的,我不知道。能好些吧。

要是研究生,好一些,會點具體的技術。但是也看你學校,看你水平。

很大一部分學計算機的人畢業以後,做的是和計算機一點關系都沒有的活。或者如上面2個老兄說的,做什麼修理電腦,或者賣電腦,網管,替人做網頁,這些沒有什麼技術含量的工作。

但是如果你真的有本事,學到東西,主要是良好的基礎知識和嫻熟的編程技巧,還有英語,那麼不管你是本科還是研究生,華為,中興,大唐,甚至微軟,NEC,通用電氣這些極其牛的研究型公司就會要你。那就不光是一個工資的問題了,你得到的是一分前途。

計算機還是前景很好,就業比其他專業都容易。其實我覺得不一定非要上計算機專業,我個人認為,現在最好的專業是微電子,就是所謂的電子科學與技術。就是IC。是IT業最賺錢的行業。我覺得計算機本科學東西,編程機會少,所以軟體學不到什麼,硬體又接觸不上,也沒有硬體知識。不如學電子信息工程,極其實用。

好了,差不多就這樣。如果你是一個高考的學生,那麼我今天打這么多字就算沒有白打,我高考的時候就是什麼都不明白。哎。無論學校好壞,只要你大學好好學,都能學出來。關鍵看你自己。專業很重要,比學校重要,專業決定你一生,而學校只是4年的事情。畢業了還可以考研究生。當年我是太在意學校了。最後學校也垃圾,在學校裡面呆的也不開心,學習也沒有學好。

如果你報志願,有一個千萬不能報,就是生物學科。出來沒有工作,即便你是復旦畢業的也一樣。

如果你學習特別好,且不說清華,你要是能考上浙江大學,上海交大,西安交大,華中科大這些工科學校,我建議你報電子科學與技術,就是微電子。因為這個專業一旦你日後上研究生,出來了前途無量。

如果你學習一般,為了以後就業考慮,報電子信息工程就不錯,或者計算機也可以。好好學,出來了總有一份1500元以上的工作等你。研究所,高新企業什麼的,很多地方需要電子類人才。
我們常說的學計算機,主要指的是學計算機專業中的編程技術,
想學好編程技術,首先就是自己要對這個方面感興趣(不反感就行)。
其次就是找個專業的計算機學校學習,有名師指導,會少走彎路~
良好的學習氛圍更能激發你學習的慾望。
當然除了一個好的計算機學校之外,自己的態度也很重要,
自己需要按照以下的要求去做。
1、付出足夠的時間和精力。
2、每天上課認真的聽。
3、學習的時候不會的東西要及時學會搞懂,不要越積越多,多問老師。
4、每天的學習內容在前一天預習,在自習的時候復習,在睡前自己把知識點再過一遍。
5、在一周的周末,對於一周學習的內容進行一個總結。
其實學好計算機編程並不難,就算你沒有基礎,沒有經驗,沒有任何概念,也能學好。
高中生可以先從java編程語言開始。
這首先得看你的時間充不充裕了。另外我並不知道樓主你想學習計算機哪方面的。畢竟你只說計算機的話,太廣了。如果想學習編程的話可以買本書,再找些視頻來學習。編程這一塊可以慢慢學,學編程是急不來的。如果是其他方面的話,也可以找些其他的資料沒事的時候看看,畢竟高中的學業還是很重要的。
可以自己買些電腦的書,從基礎開始學,只要用心學就可以。沒有什麼太難的,不懂的可以再網上查查。

❺ 游戲編程

做網路游戲 視頻教材基本上都是國外的,你能不能看懂英語很重要
我給你的建議:
先學編程(VC或者C) 然後學習圖形圖象 其中有opengl 和dx 看你的方向如何.其中會有很多演算法需要學習,所以數學很重要,這個時候你能做成一些場景了 然後學習腳本編程... 當然網路編程要會哦
很漫長的過程,數學,物理,藝術,都會涉及到哦..

❻ 高中畢業學游戲編程能不能學會北京哪裡有學游戲編程的學校

高中畢業學編程可能會有些吃力 不過興趣是最好的老師。全國都有學校呢,你在北京的話可以考慮我們學校,西三環游戲學院 你網路查一下,

❼ 高中生可以學習編程嗎

可以作為興趣和特長學習,現在高中有一些編程競賽。首先了解一下熱門的程序技術崗位及編程語言,選擇一個技術方向,因為編程的復雜性不可能全部精通。編程需要一定的邏輯思維能力和耐力,可以看一下基礎視頻教程,了解一下,像前端技術(HTML\CSS\Javascript)是比較容易上手的,可以做網頁小游戲、Html5頁面、小程序等,另外可以學學Python編程,非常容易上手,是比較流行的編程語言,JAVA難度大一點,但是學會了容易找工作,可以學一下JAVA基礎了解一下。
程序員有很多技術方位,也有很多不同編程語言,難度各不相同。好不好學需要看個人的理解能力。高中畢業當然可學懂編程,別爾蓋茨也是十幾歲就開始學習編程的,但是從目前招聘情況看,比如前端開發、JAVA開發等崗位,一般都要求專科及以上學歷,可能只有少數公司對學歷沒有一定限制,當然這也要看技術水平。

如果說學編程是為了找工作,那麼學歷就是敲門磚,現在公司招人大多數都要求大專以上,如果達不到這個要求,HR可能就不會給你發面試邀請。除非你沒有學歷但是是技術大牛,還得知名度極高的那種,不過,技術大牛考個文憑也不是難事吧,何必給自己增加這個門檻呢?提升學歷方面,成人教育,繼續教育,可以考大專。

❽ 求簡單短節的小游戲編程

#include <graphics.h>
#include <stdlib.h>
#include <dos.h>
#include <conio.h>
#include <bios.h>
#define KEY_ESC 0x01
#define KEY_SPACE 0x39
#define KEY_UP 0x48
#define KEY_LEFT 0x4b
#define KEY_RIGHT 0x4d
#define KEY_DOWN 0x50
/*1石頭,2磚塊,3水,5老家,8玩家,9敵人*/
int map[20][20]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,2,2,2,2,0,0,2,2,2,2,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,2,0,0,2,0,1,1,1,1,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,2,2,2,2,2,2,2,0,0,0,0,0,0,0,2,2,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,1,
1,0,1,1,1,1,3,3,3,3,0,0,0,0,0,0,0,2,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,3,3,3,0,1,
1,0,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,3,3,3,1,1,1,1,1,1,1,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,2,2,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,
1,0,2,2,0,0,0,0,2,2,2,0,0,0,2,2,0,0,0,1,
1,0,0,0,0,0,0,8,2,5,2,0,0,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
struct f
{
int x;
int y;
int direction;
};
struct play
{
int x;/*行坐標*/
int y;/*列坐標*/
int direction;/*方向*/
struct f fire[5];/*5顆子彈*/
int score;/*分數*/
}Playone;
struct a
{
int x;
int y;
int color;
int direction;
int directiontwo;/*用來判斷走的路是否往返*/
int fireplay;/*是否攻擊的變數,隨機生成*/
struct f fire;
}amy[5];/*敵人的結構體,其實可以添加不同的顏色來表示不同種類的坦克*/
char key_state[128],key_pressed[128];
void Init();/*圖象驅動開始*/
void End();/*圖象驅動結束*/
void DrawMap();/*畫地圖*/
void DrawWater(int x,int y);/*畫水*/
void DrawBrick(int x,int y);/*畫磚*/
void DrawTone(int x,int y);/*畫石頭*/
void DrawHome(int x,int y);/*畫老家*/
void DrawBlack(int x,int y);/*去除內容*/
void DrawPlay(int x,int y);/*畫玩家*/
void DrawAmy(int x,int y,int i);/*畫敵人*/
void Score();/*輸出分數*/
void GamePlay();/*玩游戲過程*/
void GameOver();/*游戲失敗*/
void TimeDelay(unsigned long microsec); /*延時函數 傳入微秒數*/
int GetKey(int ScanCode);/*這里開始都是按鍵函數*/
void interrupt far (*OldInt9Handler)();
void far interrupt NewInt9();
void InstallKeyboard();
void ShutDownKeyboard();
void main(void)
{
Init();
DrawMap();
GamePlay();
End();
}
void TimeDelay(unsigned long microsec) /*延時函數 傳入微秒數*/
{
union REGS r;
r.h.ah=0x86;
r.x.cx=microsec>>16;
r.x.dx=microsec;
int86(0x15,&r,&r);
}
void Init()/*圖象驅動開始*/
{int gd=DETECT,gm;
initgraph(&gd,&gm,"d:\\tc\\tc");
cleardevice();
InstallKeyboard();
}
void End()/*圖象驅動結束*/
{
ShutDownKeyboard();
closegraph();
}
void DrawTone(int x,int y)/*畫石頭*/
{
setfillstyle(SOLID_FILL,7);
bar(100+x*20-9,50+y*20-9,100+x*20+9,50+y*20+9);
}
void DrawWater(int x,int y)/*畫水*/
{
setfillstyle(SOLID_FILL,BLUE);
bar(100+x*20-9,50+y*20-9,100+x*20+9,50+y*20+9);
}
void DrawBrick(int x,int y)/*畫磚*/
{
setfillstyle(SOLID_FILL,6);
bar(100+x*20-9,50+y*20-9,100+x*20+9,50+y*20+9);
setcolor(15);
line(100+x*20-9,50+y*20-4,100+x*20+9,50+y*20-4);
line(100+x*20-9,50+y*20+4,100+x*20+9,50+y*20+4);
line(100+x*20-4,50+y*20-9,100+x*20-4,50+y*20+9);
line(100+x*20+4,50+y*20-9,100+x*20+4,50+y*20+9);
}
void DrawHome(int x,int y)/*畫老家*/
{
setcolor(0);
setfillstyle(SOLID_FILL,GREEN);
fillellipse(100+x*20,50+y*20,9,9);
}
void DrawBlack(int x,int y)/*去除內容*/
{
setcolor(0);
setfillstyle(SOLID_FILL,0);
bar(100+x*20-9,50+y*20-9,100+x*20+9,50+y*20+9);
}
void DrawPlay(int x,int y)/*畫玩家*/
{
setcolor(4);/*玩家為紅色*/
circle(100+x*20,50+y*20,7);
switch(Playone.direction)/*判斷玩家方向*/
{
case 1:line(100+x*20,50+y*20,100+x*20,50+y*20-9);break;/*上*/
case 2:line(100+x*20,50+y*20,100+x*20+9,50+y*20);break;/*右*/
case 3:line(100+x*20,50+y*20,100+x*20,50+y*20+9);break;/*下*/
case 4:line(100+x*20,50+y*20,100+x*20-9,50+y*20);break;/*左*/
}
}
void DrawAmy(int x,int y,int i)/*畫敵人*/
{
if(amy.color==12)
setcolor(12);
else if(amy.color==13)
setcolor(13);
else/*這里是判斷三種顏色的坦克*/
setcolor(14);
circle(100+x*20,50+y*20,7);
switch(amy.direction)/*判斷玩家方向*/
{
case 1:line(100+x*20,50+y*20,100+x*20,50+y*20-9);break;/*上*/
case 2:line(100+x*20,50+y*20,100+x*20+9,50+y*20);break;/*右*/
case 3:line(100+x*20,50+y*20,100+x*20,50+y*20+9);break;/*下*/
case 4:line(100+x*20,50+y*20,100+x*20-9,50+y*20);break;/*左*/
}
}
void Score()/*輸出分數*/
{
char s[10];
Playone.score+=10;
sprintf(s,"%d",Playone.score);
setfillstyle(SOLID_FILL,0);
bar(550,100,640,130);
settextstyle(0,0,2);
setcolor(YELLOW);
outtextxy(550,115,s);
}
void DrawMap()/*畫地圖*/
{int i,j,k;
for(i=0;i<20;i++)
{
for(j=0;j<20;j++)
if(map[j]==1)
DrawTone(j,i);
else if(map[j]==2)
DrawBrick(j,i);
else if(map[j]==3)
DrawWater(j,i);
else if(map[j]==5)
DrawHome(j,i);
else if(map[j]==8)
{
Playone.x=i;
Playone.y=j;
Playone.direction=1;
DrawPlay(j,i);
for(k=0;k<5;k++)
Playone.fire[k].direction=-1;/*5顆子彈的方向都為-1,表示不存在*/
}
else if(map[j]==9)
{
amy[0].x=1;amy[0].y=1;amy[0].direction=amy[0].directiontwo=3;/*第一個敵人*/
amy[0].color=12;
DrawAmy(j,i,0);
}
}
for(i=1;i<5;i++)/*敵人都沒出現*/
amy.direction=amy.fire.direction=-1;
outtextxy(210,450,"2003.10.1 milo_zy");
settextstyle(0,0,2);/*首次輸出得分*/
setcolor(9);
outtextxy(525,80,"Score");
setcolor(YELLOW);
outtextxy(550,115,"0");
}
void far interrupt NewInt9(void)
{
unsigned char ScanCode,temp;
ScanCode=inportb(0x60);
temp=inportb(0x61);
outportb(0x61,temp | 0x80);
outportb(0x61,temp & 0x7f);
if(ScanCode&0x80)
{
ScanCode&=0x7f;
key_state[ScanCode]=0;
}
else
{
key_state[ScanCode]=1;

key_pressed[ScanCode]=1;
}
outportb(0x20,0x20);
}

void InstallKeyboard(void)
{
int i;
for(i=0;i<128;i++)
key_state=key_pressed=0;
OldInt9Handler=getvect(9); /*中斷向量值*/
setvect(9,NewInt9); /*中斷程序NewInt9地址存入指定的中斷向量表中INT 09H*/
}

void ShutDownKeyboard(void)
{
setvect(9,OldInt9Handler);
}

int GetKey(int ScanCode)
{
int res;
res=key_state[ScanCode]|key_pressed[ScanCode];
key_pressed[ScanCode]=0;
return res;
}
void GameOver()/*游戲失敗*/
{
setcolor(0);
setfillstyle(SOLID_FILL,0);/*把老家給去除*/
fillellipse(100+9*20,50+18*20,9,9);
nosound();
setcolor(RED);
settextstyle(0,0,4);
outtextxy(150,5,"GAME OVER");
while(1)
{
if(GetKey(KEY_ESC))
break;
}
}
void GamePlay()/*玩游戲的過程*/
{
int i,j,lose=0;/*lose是1的時候表示失敗*/
int t=0;
randomize();
while(1)
{
for(i=0;i<5;i++)/*畫敵人的子彈*/
{
if(amy.fire.direction>0)
putpixel(100+amy.fire.y*20,50+amy.fire.x*20,11);
}
for(i=0;i<=4;i++)/*畫玩家子彈*/
{
if(Playone.fire.direction>0)/*大於0表示玩家子彈存在*/
putpixel(100+Playone.fire.y*20,50+Playone.fire.x*20,11);
}
TimeDelay(500000);/*關鍵的時間改動*/
for(i=0;i<5;i++)/*去敵人的子彈*/
{
if(amy.fire.direction>0)
putpixel(100+amy.fire.y*20,50+amy.fire.x*20,0);
}
for(i=0;i<=4;i++)/*去玩家除子彈*/
{
if(Playone.fire.direction>0)
putpixel(100+Playone.fire.y*20,50+Playone.fire.x*20,0);
}
for(i=0;i<=4;i++)/*玩家子彈位置的變化*/
{
if(Playone.fire.direction<0)
continue;
if(Playone.fire.direction==1)
{Playone.fire.x--;Playone.fire.y=Playone.fire.y;}
else if(Playone.fire.direction==2)
{Playone.fire.y++;Playone.fire.y=Playone.fire.y;}
else if(Playone.fire.direction==3)
{Playone.fire.x++;Playone.fire.y=Playone.fire.y;}
else if(Playone.fire.direction==4)
{Playone.fire.y--;Playone.fire.y=Playone.fire.y;}
/*打到石頭或者磚頭的情況下減少子彈*/
if(map[Playone.fire.x][Playone.fire.y]==1)/*打到石頭*/
Playone.fire.direction=-1;/*子彈消失*/
if(map[Playone.fire.x][Playone.fire.y]==2)/*打到磚頭*/
{
Playone.fire.direction=-1;
DrawBlack(Playone.fire.y,Playone.fire.x);/*磚頭打掉*/
map[Playone.fire.x][Playone.fire.y]=0;/*被打掉的地方變成可走的地方*/
}
if(map[Playone.fire.x][Playone.fire.y]==5)/*自己打到老家*/
{lose=1;break;}
for(j=0;j<5;j++)
{
if(amy[j].direction<0)/*不存在的不判斷*/
continue;
if(amy[j].x==Playone.fire.x&&amy[j].y==Playone.fire.y)/*打中敵人*/
{
Playone.fire.direction=-1;
DrawBlack(Playone.fire.y,Playone.fire.x);
map[Playone.fire.x][Playone.fire.y]=0;/*被打掉的地方變成可走的地方*/
amy[j].fire.direction=amy[j].direction=-1;/*這個敵人消失*/
Score();/*輸出得分*/
}
}
}
for(i=0;i<5;i++)/*敵人子彈位置的變化*/
{
if(amy.direction<0||amy.fire.direction<0)
continue;
if(amy.fire.direction==1)
{amy.fire.x--;amy.fire.y=amy.fire.y;}
else if(amy.fire.direction==2)
{amy.fire.y++;amy.fire.x=amy.fire.x;}
else if(amy.fire.direction==3)
{amy.fire.x++;amy.fire.y=amy.fire.y;}
else if(amy.fire.direction==4)
{amy.fire.y--;amy.fire.x=amy.fire.x;}
/*打到石頭或者磚頭的情況下減少子彈*/
if(map[amy.fire.x][amy.fire.y]==1)/*打到石頭*/
amy.fire.direction=-1;/*子彈消失*/
if(map[amy.fire.x][amy.fire.y]==2)/*打到磚頭*/
{
amy.fire.direction=-1;
DrawBlack(amy.fire.y,amy.fire.x);/*磚頭打掉*/
map[amy.fire.x][amy.fire.y]=0;/*被打掉的地方變成可走的地方*/
}
if(map[amy.fire.x][amy.fire.y]==5)/*敵人打到老家*/
{lose=1;break;}
if(amy.fire.x==Playone.x&&amy.fire.y==Playone.y)/*打中玩家*/
{
for(j=0;j<5;j++)
Playone.fire[j].direction=-1;/*玩家子彈都消失*/
amy.fire.direction=-1;
DrawBlack(amy.fire.y,amy.fire.x);
map[amy.fire.x][amy.fire.y]=0;/*被打掉的地方變成可走的地方*/
lose=1;break;/*好人被打掉後就失敗*/
}
}
nosound();
for(i=0;i<5;i++)/*敵人方向隨機的改變*/
{
if(amy.direction<0)
continue;
while(1)
{
amy.directiontwo=random(4)+1;
if(amy.direction==1&&amy.directiontwo==3)
continue;
if(amy.direction==3&&amy.directiontwo==1)
continue;
if(amy.direction==2&&amy.directiontwo==4)
continue;
if(amy.direction==4&&amy.directiontwo==2)/*這里4個if是判斷有沒有往返走*/
continue;
if(amy.directiontwo==3&&(map[amy.x+1][amy.y]==3||map[amy.x+1][amy.y]==1||map[amy.x+1][amy.y]==2))
continue;
if(amy.directiontwo==1&&(map[amy.x-1][amy.y]==3||map[amy.x-1][amy.y]==1||map[amy.x-1][amy.y]==2))
continue;
if(amy.directiontwo==2&&(map[amy.x][amy.y+1]==3||map[amy.x][amy.y+1]==1||map[amy.x][amy.y+1]==2))
continue;
if(amy.directiontwo==4&&(map[amy.x][amy.y-1]==3||map[amy.x][amy.y-1]==1||map[amy.x][amy.y-1]==2))
continue;/*以上4個是是否碰到了牆壁或者水什麼的*/
DrawBlack(amy.y,amy.x);/*把原來的地方擦掉*/
amy.direction=amy.directiontwo;
if(amy.direction==1)
{amy.x--;amy.y=amy.y;}
if(amy.direction==3)
{amy.x++;amy.y=amy.y;}
if(amy.direction==2)
{amy.y++;amy.x=amy.x;}
if(amy.direction==4)
{amy.y--;amy.x=amy.x;}
if(amy.x==Playone.x&&amy.y==Playone.y)/*相撞*/
lose=1;
if(map[amy.x][amy.y]==5)/*敵人撞到老家*/
lose=1;
DrawAmy(amy.y,amy.x,i);/*畫敵人*/
if(amy.fire.direction<0)
amy.fireplay=random(4);
if(amy.fireplay==1&&amy.fire.direction<0)/*發射*/
{
amy.fire.direction=amy.direction;/*子彈方向與敵人方向一致*/
amy.fire.x=amy.x;
amy.fire.y=amy.y;
}
break;
}
}
if(lose)/*因為失敗而跳出循環顯示失敗*/
{GameOver();break;}
if(GetKey(KEY_ESC))
break;
if(GetKey(KEY_UP))/*往上*/
{
if(Playone.direction==1&&map[Playone.x-1][Playone.y]!=1&&map[Playone.x-1][Playone.y]!=2)
{
if(map[Playone.x-1][Playone.y]==3)
continue;
DrawBlack(Playone.y,Playone.x);/*這個if是移動,前提是方向與按下的到向一致*/
Playone.x--;
Playone.direction=1;
DrawPlay(Playone.y,Playone.x);
}
else/*只調整炮頭方向*/
{
DrawBlack(Playone.y,Playone.x);
Playone.direction=1;
DrawPlay(Playone.y,Playone.x);
}
}
else if(GetKey(KEY_DOWN))/*往下*/
{
if(Playone.direction==3&&map[Playone.x+1][Playone.y]!=1&&map[Playone.x+1][Playone.y]!=2)
{
if(map[Playone.x+1][Playone.y]==3)
continue;
DrawBlack(Playone.y,Playone.x);
Playone.x++;
Playone.direction=3;
DrawPlay(Playone.y,Playone.x);
}
else
{
DrawBlack(Playone.y,Playone.x);
Playone.direction=3;
DrawPlay(Playone.y,Playone.x);
}
}
if(GetKey(KEY_RIGHT))/*往右*/
{
if(Playone.direction==2&&map[Playone.x][Playone.y+1]!=1&&map[Playone.x][Playone.y+1]!=2)
{
if(map[Playone.x][Playone.y+1]==3)
continue;
DrawBlack(Playone.y,Playone.x);
Playone.y++;
Playone.direction=2;
DrawPlay(Playone.y,Playone.x);
}
else
{
DrawBlack(Playone.y,Playone.x);
Playone.direction=2;
DrawPlay(Playone.y,Playone.x);
}
}
if(GetKey(KEY_LEFT))/*往左*/
{
if(Playone.direction==4&&map[Playone.x][Playone.y-1]!=1&&map[Playone.x][Playone.y-1]!=2)
{
if(map[Playone.x][Playone.y-1]==3)
continue;
DrawBlack(Playone.y,Playone.x);
Playone.y--;
Playone.direction=4;
DrawPlay(Playone.y,Playone.x);
}
else
{
DrawBlack(Playone.y,Playone.x);
Playone.direction=4;
DrawPlay(Playone.y,Playone.x);
}
}
if(GetKey(KEY_SPACE))/*發射子彈*/
{
for(i=0;i<5;i++)/*用循環來找是否有子彈可以用*/
if(Playone.fire.direction<0)
{
sound(300);
Playone.fire.direction=Playone.direction;/*子彈方向與坦克方向一致*/
Playone.fire.x=Playone.x;
Playone.fire.y=Playone.y;
break;/*找到後就跳出循環*/
}
}
if(map[Playone.x][Playone.y]==5)/*玩家自己撞到老家*/
lose=1;
for(i=0;i<5;i++)/*判斷是否因自己控制撞到敵人*/
{
if(amy.direction<0)
continue;
if(amy.x==Playone.x&&amy.y==Playone.y)/*相撞*/
lose=1;
}
if(lose)/*因為失敗而跳出循環顯示失敗*/
{GameOver();break;}
t++;/*加到一定的程序就出現新的敵人*/
if(t==30) /*到了增加敵人的時候*/
{t=0;
for(i=0;i<5;i++)
if(amy.direction<0)
{
amy.direction=amy.directiontwo=3;
amy.x=1;
amy.y=random(3);/*方向隨機*/
if(amy.y==0)
amy.y=1;
else if(amy.y==1)
amy.y=9;
else/*這里和上面的兩個判斷是判斷敵人的初始位置*/
amy.y=18;
amy.color=random(3)+12;/*顏色隨機*/
DrawAmy(amy.y,amy.x,i);
break;/*找到一個後就出循環*/
}
}
}
}

❾ 我是一個高中生,我想上火星時代學游戲設計與編程,聽說學費很貴,生

你可以先去【繪學霸】網站找「游戲設計/游戲製作」板塊的【免費】視頻教程-【點擊進入】完整入門到精通視頻教程列表: www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=307&zdhhr-11y13r-363935804793515932

想要系統的學習可以考慮報一個網路直播課,推薦CGWANG的網路課。老師講得細,上完還可以回看,還有同類型錄播課可以免費學(贈送終身VIP)。

自製能力相對較弱的話,建議還是去好點的培訓機構,實力和規模在國內排名前幾的大機構,推薦行業龍頭:王氏教育。
王氏教育全國直營校區面授課程試聽【復制後面鏈接在瀏覽器也可打開】: www.huixueba.com.cn/school/3dmodel?type=2&zdhhr-11y13r-363935804793515932

在「游戲設計/游戲製作」領域的培訓機構里,【王氏教育】是國內的老大,且沒有加盟分校,都是總部直營的連鎖校區。跟很多其它同類型大機構不一樣的是:王氏教育每個校區都是實體面授,老師是手把手教,而且有專門的班主任從早盯到晚,爆肝式的學習模式,提升會很快,特別適合基礎差的學生。

大家可以先把【繪學霸】APP下載到自己手機,方便碎片時間學習——繪學霸APP下載: www.huixueba.com.cn/Scripts/download.html

熱點內容
普通火車wifi密碼多少 發布:2025-02-06 03:04:20 瀏覽:436
可編程監控 發布:2025-02-06 03:03:33 瀏覽:645
c語言取隨機數 發布:2025-02-06 02:46:57 瀏覽:863
uc緩存的視頻卡住 發布:2025-02-06 02:17:05 瀏覽:144
解壓同學介紹 發布:2025-02-06 02:13:10 瀏覽:776
icsftp 發布:2025-02-06 02:12:59 瀏覽:325
ftp跨域上傳文件 發布:2025-02-06 02:09:22 瀏覽:822
非遞歸全排列演算法 發布:2025-02-06 02:06:45 瀏覽:551
vs反編譯dll 發布:2025-02-06 02:06:00 瀏覽:584
ubuntu設置ftp許可權 發布:2025-02-06 01:54:07 瀏覽:599