edit,也就是文字框了,是玩家可輸入的控制項,也是遊戲中ui中最難實現的乙個控制項(相比button,list,checkbox)。
原理:1 先定義一條資料結構,用於處理輸入字串,比如分行,游標位置等。
2 把使用者輸入的內容寫到記憶體中。
3 從記憶體中讀取資料,放到遊戲引擎中,讓引擎顯示到介面。
詳細:1 是比較麻煩的,當然,不同的需求有不同的實現,這裡就不多說了,重點講下2和3。
2/3 獲得使用者輸入的字元,新增到已有的字串中,然後寫到記憶體dc中,當然是以位圖的形式存在。遊戲引擎應當有乙個介面,提供取這些資料,然後生成一張紋理,貼到螢幕上去。部分**如下:
char str[100];
memset(str,0,100);
tchar c=(tchar)wparam;
sztext[index]=c;
index++;
hdc = getdc (g_pkgameworld->getrdnderwindowref()) ;
hdcmem = createcompatibledc (hdc) ;
hbitmap = createcompatiblebitmap (hdc, 300, 30) ;
selectobject(hdcmem, hbitmap) ;
textout (hdcmem, 0, 0, sztext, lstrlen (sztext));
getobject(hbitmap,sizeof(bitmap),&bm);
int count=bm.bmwidthbytes * bm.bmheight;
bitmapinfoheader bih=;
bih.bibitcount=bm.bmbitspixel;
bih.bicompression=bi_rgb;
bih.biheight=bm.bmheight;
bih.biplanes=1;
bih.bisize=sizeof (bitmapinfoheader);
bih.bisizeimage = bm.bmwidthbytes * bm.bmheight;
bih.biwidth = bm.bmwidth;
bitmapfileheader bfh = ;
bfh.bfoffbits = sizeof (bitmapfileheader) + sizeof (bitmapinfoheader);
bfh.bfsize = bfh.bfoffbits + bm.bmwidthbytes + bm.bmheight;
bfh.bftype = (word)0x4d42;
nipixeldataptr pixeldata=ninew nipixeldata(300,30,nipixelformat::rgb24);//nipixelformat::rgb24
p=new byte[count];
int iis=getdibits(hdc,hbitmap,0,30,p,(lpbitmapinfo)&bih,dib_rgb_colors);
unsigned char * pdata = pixeldata->getpixels();
unsigned char szpixeldata[3];
int jj=0;
for(int i=bm.bmheight; i>0; i--)
}nisourcetexture * pktex;
pktex = nisourcetexture::create(pixeldata);
niscreentexture* pkscreentexture = ninew niscreentexture(pktex);
pkscreentexture->addnewscreenrect(50, 50, 300, 30, 0, 0);
delete p;
Android遊戲中的動畫製作
遊戲中最常見的元素就是了,想讓乙個遊戲中的角色看起來更生動,單靠簡單的移動和旋轉是遠遠不夠的,我們應該為角色新增動畫,動起來 的角色看起來既生動又貼近現實,具有更好的使用者體驗。那麼動畫在遊戲中是如何實現的呢?我們拿當今紅的發紫的 捕魚達人 這個遊戲來說明。如果我們有這樣一張,想讓這只鯊魚動起來是很...
遊戲中的指令碼
現在遊戲裡流行的指令碼有python 和lua 例如魔獸世界就是用lua指令碼來驅動邏輯的。我們為什麼用指令碼,而不是純用c 呢?當然,這與團隊協作以及工作效率有關。c 編譯速度不佳,當乙個專案達到比較龐大的乙個規模時,編譯的時間往往會讓人憤怒了。於是,python出現了。一些重要的演算法實現,圖形...
遊戲中的音效
1.遊戲中的即時音效 soundpool類 public int load context context,int resid,int priority 架子啊音訊檔案 context 該引數為應用程式的上下文 resid 該引數為要載入的音效資源的id priority 優先順序 例項 初始化聲音...