3366 打豆豆 瞄準線 原始碼程式

2021-06-14 01:15:32 字數 2040 閱讀 9242

本猿前段時間看見qq空間有打豆豆這款小遊戲,就玩了玩,感覺還不錯,就是總是打不准,尤其是要碰撞1次甚至2次的,於是就下定決心,自己寫個瞄準程式。

效果圖:

當由於本猿是做asp.net 的,在學校時也學過c# winform,不過都是各種資訊管理方面的,對於c# windows 程式設計,win32,這種涉及到比較底層的東西,一直未曾接觸過。這次看來要點點的來了。空閒時就在網上找資料,相關demo,最後終於大功告成。歡迎各位多提意見,比如說程式效能優化,功能優化。在這裡就不做**展示解讀了,原始碼中有較詳細的注釋。

另外:將此程式改改就可以做成開心泡泡貓的瞄準線了。泡泡貓瞄準線效果圖:

重大bug:在windows 2003,xp 下無滑鼠穿透功能,目前僅限於win7。

窗體透明滑鼠穿透功能是靠form.transparencykey屬性實現的。根據msdn上的解釋:當將color分配給transparencykey屬性時,具有相同 backcolor

的窗體區域將透明顯示。在窗體的透明區域執行的任何滑鼠操作(如滑鼠單擊)都將傳輸到該透明區域下的視窗。例如,如果使窗體的工作區透明,則在該區域上單擊滑鼠會將單擊的事件通知傳送到該區域下的任何視窗。如果分配給transparencykey屬性的顏色與窗體上的任何控制項相同,則這些控制項也將透明顯示。b

ackcolor是支援的,但是backgroundimage卻沒有說明,實踐發現,在win7下能實現,而在之前的系統中,僅有透明而無穿透。

還有另外一種途徑實現穿透,但是在透明效果上要大打折扣。採用網上常用的滑鼠穿透**,再把穿透透明度進行調整:

#region 滑鼠穿透

private const uint ws_ex_layered = 0x80000;

private const int ws_ex_transparent = 0x20;

private const int gwl_style = (-16);

private const int gwl_exstyle = (-20);

private const int lwa_alpha = 0x2;

[dllimport("user32", entrypoint = "setwindowlong")]

private static extern uint setwindowlong(

intptr hwnd,

int nindex,

uint dwnewlong

);[dllimport("user32", entrypoint = "getwindowlong")]

private static extern uint getwindowlong(

intptr hwnd,

int nindex

);[dllimport("user32", entrypoint = "setlayeredwindowattributes")]

//balpha是不透明度,取值範圍是(0,255),其中0代表全透明,255代表不透明。

private static extern int setlayeredwindowattributes(

intptr hwnd,

int crkey,

int balpha,

int dwflags

);/// /// 使視窗有滑鼠穿透功能

///

public void canpenetrate(int balpha)

#endregion

canpenetrate(50);

這樣子的話,整個窗體都被穿透了,所有按鈕,標題欄都不能操作了,而且在視覺效果上懵懵懂懂的,看起來很不爽。

原始碼中未提供泡泡貓原始碼。該篇文章,原始碼隨時更新。。。

吃飯 睡覺 打豆豆

實驗目的 體會形式上死迴圈實際上不死的技巧 實驗內容 吃飯 睡覺 打豆豆 程式頭部注釋開始 為避免提交博文中遇到的問題,將用於表明注釋的斜槓刪除了 程式的版權和版本宣告部分 檔名稱 吃飯 睡覺 打豆豆 作 者 薛廣晨 完成日期 2011 年 11 月 08 日 版本號 x1.0 對任務及求解方法的描...

專案38 2 打豆豆

任務和 設計乙個程式,能重複地在顯示下面的資訊 1.吃飯 2.睡覺 3.打豆豆 0.退出 請選擇 0 3 根據使用者輸入的選項,輸出一句提示性的話語 將來會對應實現某個功能 輸入0,則退出。檔名 main.c 完成日期 2015.10.15 問題描述 設計乙個程式,能重複地在顯示下面的資訊 1.吃飯...

吃飯睡覺打豆豆

轉 好老的乙個笑話,有個科學家到了南極,那裡有100只企鵝,冰天雪地的也就只有企鵝,於是科學問這些企鵝整天幹什麼,第一只說,吃飯睡覺打豆豆 第二隻說,吃飯睡覺打豆豆 一直問到第99只,都說吃飯睡覺打豆豆。等問到第100隻時,那企鵝說,吃飯睡覺。科學家覺得奇怪,就問,你怎麼不打豆豆,企鵝答,我就是豆豆...