奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語言

C語言編寫簡單2D游戲的方法

時間:2024-05-10 10:47:39 C語言 我要投稿
  • 相關推薦

C語言編寫簡單2D游戲的方法

  只要厄運打不垮信念,希望之光就會驅散絕望之云。以下是小編為大家搜索整理的C語言編寫簡單2D游戲的方法,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!

  為了實現鼠標控制飛機飛行,當鼠標一移動,獲取鼠標X的坐標,在消息處理函數中加入下列代碼:

  x = LOWORD(lParam);

  如果鼠標的X坐標大于窗口臨界值,則X等于臨界值,若鼠標的X坐標小于0,則將鼠標X設定為0,加入下列代碼:

  if(x > 730)

  x = 730;

  else

  if(x < 0)

  x = 0;

  同理,獲取鼠標的Y坐標,加入如下代碼:

  y = HIWORD(lParam);

  if(y > 480)

  y = 480;

  else if(y < 0)

  y = 0;

  判斷飛機的移動方向,使飛機的移動方向與鼠標的移動方向一致,即飛機跟隨著鼠標的移動而移動,并進行貼圖,加入代碼如下:

  if(nowX < x)

  {

  nowX += 20;

  if(nowX > x)

  nowX = x;

  }

  else

  {

  nowX -=20;

  if(nowX < x)

  nowX = x;

  }

  if(nowY < y)

  {

  nowY += 20;

  if(nowY > y)

  nowY = y;

  }

  else

  {

  nowY -= 20;

  if(nowY < y)

  nowY = y;

  }

  SelectObject(bufdc,plane);

  BitBlt(mdc,nowX,nowY,70,70,bufdc,0,70,SRCAND);

  BitBlt(mdc,nowX,nowY,70,70,bufdc,0,0,SRCPAINT);

  3.2.2計算機角色動畫

  為了實現游戲畫面的透明效果,加載游戲的石頭位圖(”Stone.bmp”)

  Stone=(HBITMAP)LoadImage(NULL,"Stone.bmp",IMAGE_BITMAP,100,200,LR_LOADFROMFILE);

  其次前景位圖的屏蔽圖部分與背景圖作”AND”運算,加入下列代碼:

  SelectObject(bufdc,Stone);

  BitBlt(mdc,Sx,Sy,100,100,bufdc,0,100,SRCAND);

  將”AND”運算的結果與前景圖作”OR”運算,加入下列代碼:

  BitBlt(mdc,Sx,Sy,100,100,bufdc,0,0,SRCPAINT);

  為了實現游戲石頭下落效果,定義一個速度VY,并計算Y軸坐標,并不停的往下貼,加入如下代碼:

  vy=15;

  Sy += vy;

  為了實現多個石頭下落效果,定義石頭坐標Sx1,Sx2,Sx3,Sy1,Sy2,Sy3,分別表示四個石頭下落的坐標值,通過如上代碼所示加載、實現透明并掉落。

  3.2.3星際迷航背景動畫

  為了實現背景動畫的滾動效果,設定一個間隔時間tPre以及圖片寬度W代碼實現如下

  BitBlt(hdc,0,0,800,600,mdc,0,0,SRCCOPY);

  tPre = GetTickCount();

  w +=10;

  if(w>=600)

  w = 0;

  其中tPre獲取時間,圖片的隨著時間Y坐標不斷增加10,如果當整個圖片(圖片大小為800*600)>600的話,則將圖片重新滾動一遍。

  4、物理現象

  為了實現整個游戲的碰撞效果的物理現象,首先加載游戲的石頭位圖

  baozha0=(HBITMAP)LoadImage(NULL,"baozha0.bmp",IMAGE_BITMAP,316,632,LR_LOADFROMFILE);

  baozha1=(HBITMAP)LoadImage(NULL,"baozha1.bmp",IMAGE_BITMAP,316,632,LR_LOADFROMFILE);

  baozha2=(HBITMAP)LoadImage(NULL,"baozha2.bmp",IMAGE_BITMAP,316,632,LR_LOADFROMFILE);

  baozha3=(HBITMAP)LoadImage(NULL,"baozha3.bmp",IMAGE_BITMAP,316,632,LR_LOADFROMFILE);

  對于碰撞效果,采取臨界值碰撞來實現,Sx1和Sy1為石頭1的坐標,X和Y為鼠標的坐標,當飛機的坐標和石頭的坐標達到臨界值的時候,產生碰撞,相關代碼如下:

  SelectObject(bufdc,baozha0);

  {

  if(((Sx1x))&&((Sy1y)))

  {

  BitBlt(mdc,Sx1-50,Sy1-70,316,316,bufdc,0,316,SRCAND);

  BitBlt(mdc,Sx1-50,Sy1-70,316,316,bufdc,0,0,SRCPAINT);

  DeleteDC(bufdc);

  }}

  5、實驗結果及分析

  本實驗實現了游戲畫面繪制貼圖、游戲輸入消息處理、游戲動畫技巧、游戲物理現象設計原理。優點:初步實現了游戲畫面繪制貼圖、游戲輸入消息處理、游戲動畫技巧、游戲物理現象設計基本功能。缺點:因時間及數據結構算法沒有學好所以未實現子彈與石頭碰撞效果,爆炸效果不逼真,貼圖效果不好。

  6、結論

  這個程序的架構仍顯笨拙,有很多不如意的地方,但是實現了游戲畫面繪制貼圖、游戲輸入消息處理、游戲動畫技巧、游戲物理現象設計原理。雖然整個游戲不能像紅白機一樣內容豐富,但是以后會把它設計得簡潔、優雅,以至于可以把它做成一個像《雷電》一樣精彩的飛行射擊游戲。

【C語言編寫簡單2D游戲的方法】相關文章:

C語言中的鏈接編寫05-26

c語言的記憶方法指導11-09

C語言的冒泡排序方法03-19

C語言的reduce方法應用04-01

Java程序調用C/C++語言函數的方法12-01

C語言返回多個值的方法12-02

C語言的HashTable簡單實現04-01

C語言入門的基本學習方法04-02

C語言socket編程使用方法12-12

主站蜘蛛池模板: 济阳县| 惠水县| 仲巴县| 通道| 酒泉市| 博兴县| 乡城县| 基隆市| 亳州市| 呈贡县| 那曲县| 鄯善县| 平果县| 邛崃市| 盈江县| 甘德县| 临泽县| 台中县| 阿合奇县| 大丰市| 闽清县| 东丰县| 河曲县| 法库县| 辛集市| 玛多县| 来凤县| 郎溪县| 岳普湖县| 朝阳县| 泊头市| 沙田区| 石阡县| 淅川县| 无为县| 平定县| 铜川市| 广水市| 清河县| 金堂县| 山阴县|