想到哪里寫哪里,不要聯(lián)系上下文
寫在最前:
win10自帶的輸入法簡繁切換快踪危!捷钦无!鍵!Ctrl+Shift+F臥槽
找到ThunderBrowser.exe刪掉再放個(gè)假的文件在同目錄搞死迅雷9的瀏覽器
-
用一個(gè)2位16進(jìn)制數(shù)的byte存儲一張牌的數(shù)據(jù):
- 主要方便網(wǎng)絡(luò)傳輸慈格,byte不能再小了
- 用十六進(jìn)制對應(yīng)到字節(jié)的高低位剛好一個(gè)數(shù)4位,0F可以表示16種*16張牌數(shù)據(jù)怠晴,反正UNO是夠用了~
- 一個(gè)字節(jié)低4位是數(shù)值,高4位是牌型浴捆,
或者反過來也沒差蒜田,取低位&0x0f,取高位(&0xf0)>>4
-
一個(gè)10進(jìn)制快速轉(zhuǎn)2進(jìn)制的方法
轉(zhuǎn)自這里
比如 9999=8192+1024+512+256+8+4+2+1
8192 4096 2048 1024 512 256 128 64 32 16 8 4 2 1
1 0 0 1 1 1 0 0 0 0 1 1 1 1
結(jié)果就是 0010 0111 0000 1111,8個(gè)1妥妥的
-
x&x-1將x最小的(最右邊)為1的位數(shù)置0
- 奇數(shù)減一直接最末位置0选泻,在按位與
- 偶數(shù)從最右側(cè)第一個(gè)為1的位置借位下來冲粤,該位變成0,后面位數(shù)取反页眯,再與原數(shù)按位與只有該位之前的沒有變梯捕,后面包括該位全變成0
-
http協(xié)議是建立在Tcp協(xié)議之上的?窝撵?傀顾??
- 臥槽這是真的
- http是在請求完成(或一段時(shí)間后)主動關(guān)閉了自己的Tcp連接碌奉,也就是釋放掉了所有狀態(tài)短曾,所以http是短連接,無狀態(tài)
-
鑒于大部分“程序?qū)崿F(xiàn)的動畫"都是基于時(shí)間的
- 對于一組需要有時(shí)間差的動畫(比如'一次'給一個(gè)人發(fā)幾張牌)赐劣,不需要定時(shí)器一個(gè)一個(gè)完成错英,利用循環(huán)變量改變time就可以,比如1+i*0.5隆豹,最后一個(gè)完成的最慢,而不是開始的晚
-
拼界面時(shí)沒用的UI控件怎么辦茅逮?
- 不要直接刪除璃赡!保不齊哪天又有用了!而且UI刪了東西腳本里也要刪除
- 像cocos studio這種奇葩即使可見性為false也能點(diǎn)到
直接拖到場景窗口外面去献雅,需要的時(shí)候再拖回來咯
-
尋找判斷值是否在數(shù)組中碉考,數(shù)組長度很短可以試試一條if語句下標(biāo)展開- 本身有短路規(guī)則,某一個(gè)表達(dá)式符合后面的就直接忽略了,等同一個(gè)break
- for語句每一部分都可以寫多個(gè)表達(dá)式挺身,可以同時(shí)設(shè)置兩個(gè)變量侯谁,一個(gè)用于遍歷,一個(gè)用于統(tǒng)計(jì)章钾,其實(shí)和寫在語句體里是一樣的墙贱,看起來比較簡潔而已(畢竟省了一個(gè)break)
- 一般來說偏向空間換時(shí)間的算法,輔助空間開起來不要方
-
關(guān)于居中對齊
- 尋找中點(diǎn):mid=(count/2.0f-0.5f),奇偶數(shù)通用,每一個(gè)元素的位置為下標(biāo)(i-mid)*offset
- 奇數(shù)的話mid對應(yīng)正中間元素的下標(biāo)贱傀,偶數(shù)是中間兩個(gè)元素的中間值(沒有下標(biāo))
-
循環(huán)切換按鈕
static int times=0;++times;times%=count;
-
輸出log信息封裝到一個(gè)函數(shù)里
注釋掉函數(shù)的語句體就可以屏蔽所有的log信息
還可以設(shè)定log等級來決定屏蔽哪些log
當(dāng)然惨撇,確定沒用的log最終還是要刪除的
-
關(guān)于編號
- 統(tǒng)一編號位數(shù),某些編輯器會將11排在2的前面
-
能用圖片盡量用圖片代替text
- 比如公告板/更新說明之類的一大段話府寒,用一張做好的長圖魁衙,雖然自動換行不方便
- 位圖字體這種黑科技本質(zhì)上渲染的是圖片报腔,雖然缺少很多靈活性,但是美觀高效剖淀,極適合用在計(jì)時(shí)器或是血量傷害上
- 所謂程序效率纯蛾,特別是游戲,大量的算法執(zhí)行不會有什么性能影響纵隔,但是大量的渲染有翻诉,一次性大批量渲染文字(比如排行榜之類的)很有可能會造成卡頓
-
一些看到了別方的錯誤
- LinkError在@xxx::xxx中
函數(shù)只有定義,沒有實(shí)現(xiàn),偏偏這個(gè)函數(shù)還被調(diào)用了 - 內(nèi)存0xXXXX不能訪問
對象沒有初始化或是對NULL對象進(jìn)行操作 - fatal error致命的錯誤
- 一般并沒那么致命嫉你,但確實(shí)沒有具體的error捕獲蝌以,不好定位
- 可能是數(shù)組下標(biāo)越界了,C不對下標(biāo)越界進(jìn)行檢查拄查,然后強(qiáng)制操作就炸了
- 等等!C竟然不對下標(biāo)越界進(jìn)行檢查棚蓄?堕扶??梭依?
- 也有可能是內(nèi)存泄漏稍算,new完沒有delete,特別是文件役拴、網(wǎng)絡(luò)糊探、數(shù)據(jù)庫操作之類的
- 還有可能是釋放早了
- 界面卡死
- 除了網(wǎng)絡(luò)問題,絕壁是死循環(huán)了
- 所以說網(wǎng)絡(luò)事件特別是接收不要放在主線程里
- 看看是不是把==寫成了=
- 或者是switch里忘了break了
- 或者for循環(huán)里改變了循環(huán)變量的值
- LinkError在@xxx::xxx中
-
一句話
- 一句話判斷兩個(gè)數(shù)符號是否相等:return (x^y)>>31,符號位0為正1為負(fù)河闰,與相同為1科平,不同為0,右移31位只保留最高符號位姜性,為0表示符號不等瞪慧,為1表示相等
- /n表示每隔n個(gè)數(shù),%n表示從0到n
- 盡量用乘法代替除法(*0.25 *0.75之類的)
- 乘/除2的次方可以選擇左/右移運(yùn)算符
-
關(guān)于調(diào)試
Update之類的頻繁調(diào)用的方法部念,確定問題的大概位置時(shí)應(yīng)該在if語句中下斷點(diǎn)弃酌,斷點(diǎn)比log有用的多【廢話
當(dāng)然,統(tǒng)計(jì)一個(gè)循環(huán)次數(shù)之類的還是用log
或者是神一樣的條件斷點(diǎn)
dll使用附加調(diào)試儡炼,先啟動附加到的程序妓湘,再執(zhí)行附加
RemoteDebugger可以附加到遠(yuǎn)程進(jìn)程進(jìn)行調(diào)試(VS中) -
旁油,你知道ffmpeg嗎(笑
- 還用什么格式工廠哦
- 錄屏:
ffmpeg -f gdigrab -i desktop -vcodec libx264 -pix_fmt yuv420p -r 15 out.avi
這句使用gdigrab 庫錄制全屏(desktop)乌询,之后是通用配置:h264編碼多柑,色彩空間y420p(保證畫面色彩質(zhì)量的關(guān)鍵,也就是減少花屏)楣责,-r 是幀率
-i title="窗口名"會捕獲一個(gè)窗口竣灌,窗口名是指在任務(wù)欄縮略圖看到的那個(gè)聂沙,中文應(yīng)該是有問題 - 使用dshow濾鏡錄屏和錄音
ffmpeg -f dshow -i audio="xxx" -i video=xxx {通用配置} out.avi
錄屏需要安裝一個(gè)虛擬direct device(攝像頭不需要),ffmpeg -list_devices true -f dshow -i dummy 列出所有的direct device - 同時(shí)錄屏和聲音
ffmpeg -f gdigrab -i desktop -f dshow -i audio="麥克風(fēng)陣列 (Realtek High Definition Audio)" -vcodec libx264 -pix_fmt yuv420p -r 15 outt.mp4
* 好像只能輸出為mp4格式不能是avi初嘹,或者也可能是音頻編碼問題及汉,反正mp3也不能合到avi中,而輸出MP4必須指定編碼(和pix_fmt)
* 上面那個(gè)麥克風(fēng)陣列在cmd里list_devices是亂碼屯烦,保存成UTF8就可以了,注意空格 - 音頻轉(zhuǎn)換
ffmpeg -i input.mp3 [-ab bit(比特率 32,k為單位)] [-ar rate(碼率,8000)] [-ac count(聲道數(shù)1,2)] output.{format(mp3)} //aac不支持單聲道 - 文件拼接
ffmpeg -f concat -i "file1|file2|file3" -c copy outfile
-
關(guān)于在此處打開命令行窗口
本身資源管理器shift+右鍵可以坷随,在資源管理器中alt+D可以定位到地址欄,再敲cmd(或是其他.exe)都可以在當(dāng)前目錄下運(yùn)行exe,然后寫個(gè)
vbs{CreateObject("Wscript.Shell").SendKeys"%Dcmd{ENTER}"}
模擬按鍵驻龟,把觸控板的按鈕綁定到這個(gè)vbs就可以一個(gè)鍵在資源管理器的打開位置召喚cmd了對就是因?yàn)槲覒?/del>釋放*win,Ctrl+Shift+ESC可以召喚任務(wù)管理器
插一句温眉,Ctrl+ESC等同 -
關(guān)于事件查看器
應(yīng)用程序-特定 權(quán)限設(shè)置并未向在應(yīng)用程序容器 xxxxxxxx用戶【xxxxxxx】xxxxxAPPID為【xxxxxxxxx】翁狐,這種情況注冊表里搜索class_root/appid/{APPID},編輯權(quán)限类溢,賦予上面的用戶完全修改權(quán)限(不行就改變所有者),看一下右邊的APP名稱露懒,去組件服務(wù)里找到這個(gè)app闯冷,編輯啟動和激活,以上用戶本地啟動和本地激活打勾懈词,這種問題出現(xiàn)的原因可能是以上那個(gè)用戶的信息被刪除了(注冊表清理之類的蛇耀,會在編輯權(quán)限時(shí)發(fā)現(xiàn)產(chǎn)生一個(gè)未知用戶{})
-
微信分享的坑
主要是縮略圖,微信限制了圖片大锌餐洹(尺寸和文件大小)纺涤,超過的話可能會卡死,也可能會顯示不出來抠忘,圖片寬高如果超過128會被搞成128*128的撩炊,比例會變
Android里獲取一張assets下的圖片(cocos的Resources):
InputStream is = getContext().getAssets().open(fileName);
Bitmap bmp= BitmapFactory.decodeStream(is);
is.close();
-
vmware 里的mac無法通過磁盤工具擴(kuò)容
借助終端命令
diskutil list
diskutil resizeVolume {diskID} {容量(GB)}
啊其實(shí)在磁盤工具那里選擇可用空間分區(qū)點(diǎn)下面-就行。褐桌。。
-
使用dnsmasq配置局域網(wǎng)DNS
安裝brew: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝dnsmasq: brew install dnsmasq
-
游戲中的語音聊天功能
首先是調(diào)系統(tǒng)錄音和播放器象迎,Recorder和Player,記得一定要stop()以及release(),否則會因?yàn)橄到y(tǒng)資源分配不足沒有聲音荧嵌;
最好錄制aac格式,ios好像不能直接錄mp3砾淌,又比wav清晰
錄制完成走h(yuǎn)ttp上傳至服務(wù)器
最好等到上傳回調(diào)再將客戶端的錄音按鈕再次啟用啦撮,當(dāng)然,期間要排除錄音失敗文件根本沒有上傳的情況