日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

怎样做小游戏挖金子(VC,源码4)

發布時間:2024/8/1 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎样做小游戏挖金子(VC,源码4) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?有人下載我的工程文件,“我很欣慰”,名字是“挖金子VC版源碼”,大家多討論。

上回講哪了?地圖加載了,物品能顯示了。該顯示畫面上方擺動的叉子了。計算機圖形學的“圖形旋轉”,當然,有一個WINDOWS API函數PlgBlt,可我沒有用。網上有很多介紹圖形旋轉的文章,我還是講解一下我這個函數:

void?GAMECATCH::TcDrawAngleOff(HDC?hdc,int?*pv,float?a,int?num,int?x0,int?y0)
{
????
int?pvdest[20]={0};
//????int?x0,y0;
????int?i;
????
int?tempx,tempy;
????
????memcpy(pvdest,pv,
sizeof(int)*num);
/*
????x0=pv[0];
????y0=pv[1];

????//move
????for(i=0;i<num;i+=2)
????{
????????pvdest[i]-=x0;
????????pvdest[i+1]-=y0;
????}
*/
????
//rotate
????for(i=0;i<num;i+=2)
????{
????????tempx
=pvdest[i];
????????tempy
=pvdest[i+1];
????????pvdest[i]
=tempx*cos(a)-tempy*sin(a);
????????pvdest[i
+1]=tempx*sin(a)+tempy*cos(a);
????}

????
//move,中心點坐標是320?58
????for(i=0;i<num;i+=2)
????{
????????pvdest[i]
+=x0;
????????pvdest[i
+1]+=y0;
????}

????
//繪制圖形
????Draw(hdc,pvdest);
}

為什么我沒有刪除注釋掉的代碼?有原因。一個圖形繞(x0,y0)旋轉,總共分三步(耳熟):圖形移動到坐標原點,旋轉,再移動回原有位置。而我這個叉子的圖形在哪里?就在原點。所以省略了第一步。叉子的圖形,是畫了幾個線段,各端點坐標如下(x1,y1,x2,y2,...):

?//設置爪子各頂點坐標
?int temp[12]={
?0,32,20,32,
?40,0,64,0,
?64,64,40,64
?};

再解釋一下公式:

??????pvdest[i]=tempx*cos(a)-tempy*sin(a);
????????pvdest[i
+1]=tempx*sin(a)+tempy*cos(a);
屏幕坐標軸x向右,y向下,這個公式將逆時針旋轉圖形。

有一個問題,為什么不用一個位圖?位圖的顯示效果雖然好,但是計算cos,sin時,會產生誤差。這將使圖像有一些變形,所以沒有用位圖。

繪制、擺動的問題解決了。下面是伸縮。

叉子的伸縮

關鍵是使用“狀態機”。三種狀態:擺動,伸出,拉回。我沒有定義宏,應該批評。用0 1 2 表示的。

再次聲明軟件的“可維護性”,這種狀態設置,也許瑣碎,但有好處。

擺動狀態:修改當前角度,當前擺動方向;

伸出狀態:改變坐標,如果達到伸出的最大長度,則狀態遷移:拉回;

拉回狀態:改變坐標,如果“伸出長度”降為0,則狀態遷移:擺動。

為了消除坐標計算的誤差,伸出時,直接將坐標偏移值轉為整型存儲,如下:

???xoff=10*cos(iAngle*10*1.57/90);
???yoff=10*sin(iAngle*10*1.57/90);
拉回的時候,也用相同的偏移值,只要再乘以一個系數,就實現了拉回的快慢不同。

按鍵檢測

用戶按“下”,叉子伸出。用按鍵消息來檢測,代碼為:

????????case?WM_KEYDOWN:
????????????
switch(iGameState)
????????????{
????????????
case?GAME_STATE_MAIN:
????????????????gamecatch.KeyProc(wParam);
void?GAMECATCH::KeyProc(int?iKey)
{
????
switch(iKey)
????{
????
case?VK_DOWN:
????????
if(0==iState)
????????{
????????????
//擺動狀態下才能變成伸出狀態
????????????iState=1;
????????????xoff
=10*cos(iAngle*10*1.57/90);
????????????yoff
=10*sin(iAngle*10*1.57/90);
????????}
????????
break;

目前,叉子能正常擺動,用戶按“下”,叉子伸出,然后拉回。緊接著就是核心問題“抓到物品”,即“檢測碰撞”,下回接著說。歡迎參考原工程“挖金子VC版源碼”(在CSDN下載頻道)。

總結

以上是生活随笔為你收集整理的怎样做小游戏挖金子(VC,源码4)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久99精品成人片毛片 | 亚洲 欧美 另类 综合 偷拍 | 日本黄色美女视频 | 亚洲性精品 | 日韩大胆视频 | 极品少妇视频 | 亚洲成人黄色影院 | 蜜桃视频无码区在线观看 | 国产男男gay体育生白袜 | 亚洲精品lv | 欧美多人猛交狂配 | 亚洲av片不卡无码久久 | 老妇高潮潮喷到猛进猛出 | 日日干干| 都市激情中文字幕 | 亚洲色图欧美视频 | 一级一毛片 | 大牛影视剧免费播放在线 | 精品一区二区三区蜜臀 | 精品国产无码在线 | 中文字幕在线观看网站 | 久久这里只有精品国产 | 国产精品一区2区 | 久草最新网址 | 无码精品a∨在线观看中文 福利片av | 欧美视频一区二区三区在线观看 | 奇米在线观看 | 天堂网中文在线观看 | jizz视频 | 日韩性大片 | 国产一区二区三区精品愉拍 | 爱情岛论坛永久入址在线 | 精品日韩在线观看 | 俄罗斯精品一区二区三区 | 亚洲动漫精品 | 男生吃小头头的视频 | 五月婷婷六月丁香综合 | 成人免费看片'在线观看 | 久久精品视频91 | 初尝人妻少妇中文字幕 | 18禁一区二区三区 | 欧美激情精品久久久久久变态 | 亚洲色精品三区二区一区 | 青青久视频 | 久久av免费看 | 麻豆国产精品 | 亚洲iv一区二区三区 | 长腿校花无力呻吟娇喘的视频 | 香蕉视频黄色 | 懂色av懂色av粉嫩av分享吧 | 台湾男男gay做爽爽的视频 | 91久久精品一区二区三区 | 日本精品视频在线播放 | 亚洲精品网站在线 | www.亚洲一区二区三区 | wwwxxxx欧美| 99碰碰 | 999精品视频 | 国产日韩欧美久久 | 欧美日韩国产高清 | 未满十八岁禁止进入 | 精品人妻视频在线 | 免费在线观看黄 | 久色88| 涩涩涩综合 | 美女扒开屁股让男人桶 | 亚洲av无码日韩精品影片 | 在线免费h | 处破女av一区二区 | 亚洲理论在线观看 | 综合色天天 | 性综合网 | 欧美激情一区 | 手机在线观看av | 日日爽夜夜操 | 可以免费看污视频的网站 | 黄色在线小视频 | 四虎av在线| 女人叉开腿让男人桶 | 五月香蕉网 | 杨幂毛片午夜性生毛片 | 日本wwww色| 动漫av一区| 182tv午夜 | 国产99久久九九精品无码 | 麻豆精品在线看 | 毛片毛片毛片毛片毛片毛片毛片 | 爽妇网国产精品 | 国产精品国产三级国产播12软件 | 欧美成人国产精品一区二区 | 豆花视频成人 | 成人av福利 | 女同性αv亚洲女同志 | 人人爽人人爽人人 | 岛国精品视频 | 日韩av线观看 | 亚洲精品国产精品乱码 | 日韩高清三区 | 与亲女洗澡时伦了毛片 |