① C語言滑鼠操作
我之前給別人寫過一個打地鼠的小游戲,就是用滑鼠操作的。發給你參考下。代碼很簡單。
主要函數我在下方說明了,但更多信息你必須自己網路看,一言兩語說不完。
SetConsoleCursorPosition函數可以定位游標位置,也就是文字內容顯示的起點。
ReadConsoleInput(HANDLE hConsoleInput,*INPUT_RECORD lpBuffer,DWORD nLength,
DWORD lpNumberOfEventsRead)函數可以獲取滑鼠的操作信息。
調用過上面函數後,lpBuffer由於是傳址,所以其地址里的值就包含了滑鼠信息。
lpBuffer.EventType == MOUSE_EVENT //判斷是滑鼠事件
lpBuffer.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED//判斷是滑鼠左鍵點擊
兩個判斷一起就是滑鼠左鍵點擊的判斷,其他事件參數你可以自己網上找。
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
#include<time.h>
#include<string.h>
#include<malloc.h>
#definegSizek30//區域大小寬度
#definegSizeg20//區域大小高度
#definegBegin3//活動區域起始行
intmain()
{
intt=0,s0,s1,i,j,count=0,fen=0,row=0,clo=0;
chargameA[gSizeg][gSizek+1],fSave[10]={0};
SetConsoleTitle("打地鼠");
HANDLEhInput=GetStdHandle(STD_INPUT_HANDLE);//獲取標准輸入設備句柄
INPUT_RECORDinRec;
DWORDres;
COORDp0;
p0.X=0;
p0.Y=0;
srand(time(0));
s0=time(NULL);
strcpy(gameA[0],"GAME");
strcpy(gameA[1],"未命中次數:0,計分:000000");
for(i=gBegin-1;i<gSizeg;i++)
{
for(j=0;j<gSizek+1;j++)
{
if(i>gBegin-1&&i<gSizeg-1&&j>0&&j<gSizek-1)
gameA[i][j]='';
else
gameA[i][j]=4;
if(j==gSizek)
gameA[i][j]=0;
}
}
for(i=0;i<gSizeg;i++)
printf("%s ",gameA[i]);
while(1)
{
if(t>=3)
{
if(row>0&&clo>0)
gameA[row][clo]='';
row=rand()%(gSizeg-1);
clo=rand()%(gSizek-1);
s0=time(NULL);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
if(row<3)
row=4;
if(clo<1)
clo=1;
gameA[row][clo]=2;
for(i=0;i<gSizeg;i++)
{
//gameA[i][gSizeg+1]=0;
printf("%s ",gameA[i]);
}
}
if(count==3)
{
p0.X=10;
p0.Y=8;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
printf("GAMEOVER!");
break;
}
s1=time(NULL);
t=s1-s0;
ReadConsoleInput(hInput,&inRec,1,&res);
if(inRec.EventType==MOUSE_EVENT&&inRec.Event.MouseEvent.dwButtonState==FROM_LEFT_1ST_BUTTON_PRESSED)//滑鼠左鍵
{
if(inRec.Event.MouseEvent.dwMousePosition.X==clo&&inRec.Event.MouseEvent.dwMousePosition.Y==row)
{
if(fen==0)
fen=1;
if(fen>999999)
fen=999999;
else
fen=fen*2;
sprintf(fSave,"%06d",fen);
gameA[1][18]=0;
strcat(gameA[1],fSave);
}
else
{
count++;
fen=0;
gameA[1][11]=count+'0';
}
t=4;
}
}
while(1);
return0;
}
② appinventor打地鼠怎麼弄錘子
appinventor打地鼠弄錘子的方法如下:
1、打開appinventor軟體,插入准備好的背景圖片,調整大小,使其充滿整個幻燈片。
2、繪制與田園背景圖片中地鼠洞穴同大小的橢圓。按住Ctrl拖動復制,正彎模將橢圓布滿所有洞穴。
3、插入准備好的地鼠圖片,調整大小,使發鼠適合於洞穴。
4、插入准備好的錘子圖片,調整為合適的大小。
5、選擇錘子,設置開始為上一動畫之後、持續時間為0.5秒、延遲為0秒。
6、選擇地鼠,按Shift鍵向下調整起點、終點位置,使地鼠的身體遁入洞穴。
7、同時選擇製作的地鼠鬧擾和錘子,按住Ctrl鍵舉緩拖動復制於其他洞穴。
③ 跪求Flash8.0編程高手。。急。。
裡面有詳細的註解;
var sceneWidth =550;//定義場景的寬
var sceneHeight=400;//定義場景的高
var sideDisWidth = Stage.width/2-sceneWidth/2;//定義變數,雪花的橫向位移范圍
var sideDisHeight = Stage.height/2-sceneHeight/2;//定義變數,雪花的縱向位移范圍
var snowNum = 150;//定義雪花的數量
var snowSpace:MovieClip = _root.createEmptyMovieClip("room", 1);//聲明一個空影片剪輯snowSpace.
function addMasker() {//聲明addMasker函數,執行兩項工作.1是畫外邊框,2是畫雪花景
_root.createEmptyMovieClip("masker", -2);//創建空影片剪輯masker,層深-2.任務是為舞台畫外邊框,並填充顏色
with (masker) {//設置masker的屬性。
lineStyle(1, 0xcccccc, 100);//設置線條顏色
beginFill(0x000000, 0);//繪制矩形閉合路徑,並填充灰色,透明度為0.
moveTo(sideDisWidth, sideDisHeight);//繪制起點
lineTo(sideDisWidth+sceneWidth, sideDisHeight);//繪制的右上角點的位置
lineTo(sideDisWidth+sceneWidth, sideDisHeight+sceneHeight);//繪制的右下角點的位置
lineTo(sideDisWidth, sideDisHeight+sceneHeight);//繪制的左下角點的位置
lineTo(sideDisWidth, sideDisHeight);//繪制的左上角點的位置
endFill();//結束繪制
}
createSnow();
}
function createSnow() {//定義一個匿名函數,完成聲明一個雪花MC,雪花半徑,循環畫雪花
var n = 0;//局部變數n=0
while (n<snowNum) {//在0到150數量范圍循環畫雪花
var snow:MovieClip = snowSpace.createEmptyMovieClip("s"+n, n);//聲明snowSpace剪輯由"s"+n個snow組成
var radius:Number = Math.random()*3;//定義雪花半徑大小
drawSnow(snow, radius);//把snow, radius把參數傳遞給drawSnow函數
n++;
}
}
function drawSnow(snow:MovieClip, radius:Number) {//定義一個匿名函數,畫一個雪花
var p = radius*.9;//局部變數P,用來定義雪花大小的坐標值
with (snow) {//設置snow這個對象的動作.畫雪花圓形白色填充
colors = [0xCCCCCC, 0xFFFFFF];//設置雪花的顏色
alphas = [100, 100];//設置透明度
ratios = [0, 255];//采樣處的寬度的百分比
matrix = ;//一個變形矩陣
beginGradientFill("radial", colors, alphas, ratios, matrix);// 設置填充色.
curveTo(p, -p, radius, 0);//定義點坐標,畫雪花
curveTo(p, p, 0, radius);
curveTo(-p, p, -radius, 0);
curveTo(-p, -p, 0, -radius);
endFill();//結束
}
snowProperty(snow, sceneWidth, sceneHeight);//把參數傳遞給snowProperty
}
function snowProperty(snow, w, h) {//定義一個匿名函數,一個雪花如何下降
snow._x = sideDisWidth+Math.random()*w;//根據可編輯的寬及0和1中的任意一個數乘雪花寬計算雪花的X軸起始位置
snow._y = sideDisHeight+Math.random()*h;//根據可編輯的高及0和1中的任意一個數乘雪花高計算雪花的Y軸起始位置
snow._rotation = Math.random()*120+30;//設置旋轉角度.有立體感.雪花的旋轉程度為0和1中的任意一個數乘120+30
snow.stepX = Math.cos((snow._rotation*Math.PI)/180);//雪花橫向位移.用計算餘弦(旋轉角度*常數3.14)/180)
snow.stepY = Math.random()*2+1;//雪花縱向位移.為0和1中的任意一個數*2-1
setInterval(snowFall, 30, snow); //每隔0.5秒調用一次,由snowFall完成
}
function snowFall(snow) {//定義一個匿名函數,該函數為大雪花降落位移范圍
snow._x += snow.stepX;//橫向下落位移
snow._y += snow.stepY;//縱向下落位移
if (snow._x<sideDisWidth) {//如果橫向位移不超出sideDisWidth值
snow._x = sideDisWidth+sceneWidth;//為雪花的橫坐標附值
}
if (snow._x>sideDisWidth+sceneWidth) { //如果雪花的橫向坐標大於所附的值
snow._x = sideDisWidth; //橫向位移再回到初始點
}
if (snow._y>sideDisHeight+sceneHeight) {//如果雪花的縱向坐標大於所附的值
snow._y = sideDisHeight;//縱向位移再回到初始點
}
}
addMasker();
記得加分哦
④ 在編程scratch上,兒童能編什麼有趣的游戲
大概從兩個方面考慮:
1.有一定的趣味性,對於兒童來說,喜歡是做事的源動力。
2.游戲規則相對比較簡單一些,這也決定了腳本的邏輯結構簡單一些,適合兒童這樣的低年齡段。
有趣的小游戲如:打地鼠、歡樂水族箱、龜兔賽跑之類的。
⑤ appinventor多界面關閉出錯
青少兒編程- App Inventor程序實例講解:飛蛾快跑_Thinklov的博客-CSD...
青少兒編程- App Inventor程序實例講解:飛蛾快跑 應用描述 通過傾斜設備來控制飛蛾移動; 查看屏幕上的能量指示基攜和條,能量會隨時間減少,並引起飛蛾的飢餓; 讓飛蛾追逐並吃掉小蟲來獲得能量,抵禦飢餓; 幫助飛蛾躲避青蛙,因為青蛙吃飛蛾。 設計...
繼續訪問
青少兒編程- App Inventor程序實例講解:打地鼠_Thinklov的博客
青少兒編程- App Inventor程序實例講解:打地鼠 打地鼠應用---實現以下功能: 一隻地鼠隨機出現在屏幕上,每秒鍾移動一次; 如果手指觸碰到地鼠,則讓設備震動,顯示的命中數加1,地鼠隨機移動到一個新位置; 如果手指直接觸摸到屏幕但沒點擊中...
繼續訪問
【Mit App inventor】如何實現APP內不同屏幕的跳轉
本文介紹了低代碼軟體開發平台APP Inventor的屏幕切換功能的應用
繼續訪問
使用Google App Inventor的多個屏幕
在App Inventor項目上製作多個虛擬屏幕
AppInventor專題:如何實現兩個頁面之間的跳轉
圖1-Screen1 圖2-Screen2 假期做了一個猜單詞的app,其中一個功能是在主界面上點擊「開始」必須讓程序進入到做題界面。那麼搏盯,在AppInventor中如何實現頁面的跳轉呢?如上圖所示,當用戶點擊圖1的開始按鈕,界面跳入圖2。如圖所示,你需要設計兩個屏幕,Screen1和Screen2,在Screen1中為Screen1中的「開始」按鈕進行邏輯設計,如圖所示:
繼續訪問
基於App Inventor的多功能畫板
基於App Inventor的多功能畫板,可以實現點擊屏幕產生語言,圖像提示的反饋,模擬畫畫和調色,切換不同的觸發和響應事件,實現圖片的保存,適合新手學習畫板和圖像精靈以及一些進階操作研究,包含完整的執行和工程文件,可以直接使用或修改
AppInventor簡單使用教程
Appinventer
繼續訪問
app inventor跨界面連接藍牙(二)
關於app inventor跨屏幕藍牙不能使用的解決方法 前一個博客寫的是一鍵SOS求救,但是當我們的app有多個屏幕時,藍牙是不能在其他屏幕使用的(雖然切換到其他屏幕的時候藍牙並沒有斷開)下面給出解決方法。 先給Arnio板上傳程序來測試 void setup() { // put your setup code here, to run once: Serial.begin(9...
繼續訪問
【7】APPinventor用戶界面組件用法及說明介紹(上)
今天小編為大家介紹APPinventor使用最多的一類組件「用戶界面」。用戶界麵包括最基本的按鈕,復選框等。如果您是剛剛接觸APPinventor,還不會用,請先看小編的《APPinventor簡單使用教程》。 按鈕 按鈕可以感知用戶的手指是否有觸摸。起到觸發的作用。主要通過以下模塊來感應觸發。 復選框 復選框可以起到開關作用。它與按鈕不同,開關只會在按下的一瞬間觸發,而復選框只要打勾就會觸...
繼續訪問
【6】APPinventor的界面布局使用方法
在APPinventor中,界面布局是一個對成果(最後做出來的APP)影響非常大的一個設置。如果不使用界面布局,那麼使用組件只能豎這放十分影響美觀,過長則無法看到超過屏幕的組件。 所以,今天小編就給大家介紹一下APPinventor中的界面布局的用法。 水平布局 水平布局顧名思義就是橫著的一種布局,將組件放在水平布局中便可以將本來豎著的組件全部橫著擺。組件數量沒有限制。效果圖如下。 水平滾動...
繼續訪問
App Inventor學習環境搭建(詳細)
App Inventor學習環境搭建及使用 APP INVENTOR由谷歌實驗室開發,後移交麻省隱雀理工學院,是一款可視化編程環境,採用搭積木的方式快速建立應用程序,並且可以結合AI伴侶,極其便利的在手機上進行測試和應用。 麻省理工學院的App Inventor是一個直觀、可視化的編程環境,它允許每個人——甚至是孩子——為智能手機和平板電腦構建功能齊全的應用程序。那些麻省理工學院的新應用程序...
繼續訪問
App Inventor探索3-按鈕1
按鈕的作用就是被按下,然後通過按壓狀態去執行某種操作任務,按鈕可以起到接收用戶操作指令的作用。本篇將探索按鈕的設計操作。
繼續訪問
熱門推薦 Appinventor 單片機 手機藍牙通信實現
歡迎大家訪問我的github:https://github.com/Iamttp 有問題一起討論呀! 不會java的小白,在使用的單片機的藍牙功能時難道只能上網路下載別人的藍牙app軟體嗎?幸運的是一個基於雲端開發app的網站來了。App Inventor 原是Google實驗室(Google Lab)的一個子計劃,由一群Google工程師和勇於挑戰的Google使用者共同參與設計完...
繼續訪問
APPinventor注意事項
在進行開發的時候一定要注意布局的設置,有些組件的添加可能就是因為布局不對而放置不上去,布局可以嵌套
繼續訪問
外設驅動庫開發筆記50:HP203B氣壓感測器驅動
HP203B是高解析度(0.1meter)壓力感測器,帶有I²C介面,包括一個硅壓阻壓力元件和一個高解析度24 位△∑ADC。HP203B提供高精度24位壓力和溫度數字輸出,客戶可以根據應用需要轉換速度和高度,所有內置計算採用了高速4MHz的浮點運算,計算誤差小,數據補償是內部集成,通訊連接非常簡單,高度及溫度上下限比較的可編程事件及中斷輸出控制。我們依然使用基於對象的方式來設計HP203B氣壓感測器的驅動。所以我們首先考慮HP203B氣壓感測器對象類型的定義。關於對象,我們知道器包含屬性和操作。
繼續訪問
最新發布 CAN匯流排介面晶元SIT1050Q和TJA1050有什麼關系?能相互替代嗎?
關於CAN匯流排介面晶元SIT1050Q(SIT1050QT、SIT1050QTK)知識,東沃電子就分享到這兒。 回看文章中開頭提到的問題,查看SIT1050Q和TJA1050產品手冊,仔細對比會發現,國產CAN匯流排埠晶元SIT1050Q兼容TJA1050,可完美替代,完全兼容「ISO 11898」標准。
繼續訪問
STM32配置LED模塊化
本篇文章將帶大家深入了解GPIO的配置,並帶大家實現LED模塊化編程。學會模塊化編程是走像成功的必經之路。
繼續訪問
飛騰平台(FT2000/4 D2000/8)配置GPIO引腳
飛騰平台配置CPU的引腳為GPIO工作模式的方式有永久型和暫時型: - 永久型是通過UEFI中的MmioWrite32函數來實現的,該方法可以在UEFI階段就對復用引腳的工作模式配置為GPIO,並且在進入操作系統後仍然不會發生便會; - 臨時型是通過rw工具,在系統下手動修改復用引腳的工作模式,該方法在系統重啟後會失效,所以是暫時型的。
繼續訪問
⑥ 打地鼠的代碼怎麼寫啊
com.lzw;
import java.awt.EventQueue;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Shrewmouse extends JFrame implements Runnable {
private JLabel[] mouses; //存放顯示底數的標簽數組
private ImageIcon imgMouse; //地鼠圖片對象
public static void main(String args[]){
EventQueue.invokeLater(new Runnable(){
public void run(){
try{
Shrewmouse frame=new Shrewmouse(); //創建窗體
frame.setVisible(true); //顯示窗體
new Thread(frame).start(); //啟動線程
}catch(Exception e){
e.printStackTrace();
}
}
});
}
public Shrewmouse(){
super();
this.setResizable(false); //禁止調整窗體大小
this.getContentPane().setLayout(null); //窗體不使用布局管理器
this.setTitle("簡易的打地鼠游戲"); //設置窗體標題
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImageIcon img=new ImageIcon(getClass().getResource("background.jpg"));
//初始化背景圖片
imgMouse=new ImageIcon(getClass().getResource("mouse1.jpg"));
//初始化地鼠圖片對象
mouses=new JLabel[6]; //創建顯示地鼠的標簽數組
for(int i=0;i<6;i++){ //遍歷數組
mouses[i]=new JLabel(); //初始化每一個數組元素
mouses[i].setSize(imgMouse.getIconWidth(),imgMouse.getIconHeight());
//設置標簽與地鼠圖片相同大小
mouses[i].addMouseListener(new MouseAdapter(){//為標簽添加滑鼠事件監聽適配器
/**
* 處理滑鼠單擊事件的方法
*/
@Override
public void mouseClicked(MouseEvent e){
Object source=e.getSource(); //獲取事件源,即地滑鼠簽
if(source instanceof JLabel){ //如果事件是標簽組件
JLabel mouse=(JLabel)source; //強制轉換為JLabel標簽
mouse.setIcon(null); //取消標簽圖標
}
}
});
this.getContentPane().add(mouses[i]); //添加顯示地鼠的標簽到窗體
}
mouses[0].setLocation(253, 300); //設置每個標簽的位置
mouses[1].setLocation(333, 250);
mouses[2].setLocation(388, 296);
mouses[3].setLocation(362, 364);
mouses[4].setLocation(189, 353);
mouses[5].setLocation(240, 409);
final JLabel backLabel=new JLabel(); //創建顯示背景的標簽
backLabel.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
this.setBounds(100,100,img.getIconWidth(),img.getIconHeight());
backLabel.setIcon(img); //添加背景到標簽
this.getContentPane().add(backLabel); //添加背景標簽到窗體
}
/**
* 線程的核心方法
*/
public void run(){
while(true){ //使用無限循環
try{
Thread.sleep(3000); //使線程休眠3秒
int index=(int)(Math.random()*6); //生成隨機的地鼠索引
if(mouses[index].getIcon()==null){ //如果地滑鼠簽沒有設置圖片
mouses[index].setIcon(imgMouse); //為該標簽添加地鼠圖片
}
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
⑦ matlab gui編程 打地鼠
秒殺吧打地鼠改進版(二)——增加透視效果
這個版本的地鼠已經實現了近大遠小的效果,而且保證了地鼠恰好顯示在鼠洞的上方,使其看起來好像是從鼠洞里鑽出來的一樣。當然現在的效果還盯液派稍微有一點差,這個是因為選擇鼠洞坐標時的問題。凱賀埋亮如果恰當地選擇坐標的話,可以達到接近完美的顯示效果。
⑧ 求助:VB中打地鼠點擊中了加分的代碼過程。要不你教教我怎麼做也行。不是很明白●﹏●
Private Sub Image1_Click()
n = n + 1 '分數。
Image1.Visible = False '點中歲汪辯後隱藏 防乎缺止多次點擊陵握重復計分。
End Sub
⑨ C語言編程打地鼠
剛寫好的,打地鼠小游戲。
功能:每三秒,會在游戲區域隨機位置刷出地鼠,滑鼠點擊地鼠,無論點中與否,地鼠都會立即刷新。
點中地鼠按你要求計分,點不中記錄失敗次數,3次失敗,游戲結束,顯示GAME OVER!
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
#include<time.h>
#include<string.h>
#include<malloc.h>
#definegSizek30//區域大小寬度
#definegSizeg20//區域大小高度
#definegBegin3//活動區域起始行
intmain()
{
intt=0,s0,s1,i,j,count=0,fen=0,row=0,clo=0;
chargameA[gSizeg][gSizek+1],fSave[10]={0};
SetConsoleTitle("打地鼠");
HANDLEhInput=GetStdHandle(STD_INPUT_HANDLE);//獲取標准輸入設備句柄
INPUT_RECORDinRec;
DWORDres;
COORDp0;
p0.X=0;
p0.Y=0;
srand(time(0));
s0=time(NULL);
strcpy(gameA[0],"GAME");
strcpy(gameA[1],"未命中次數:0,計分:000000");
for(i=gBegin-1;i<gSizeg;i++)
{
for(j=0;j<gSizek+1;j++)
{
if(i>gBegin-1&&i<gSizeg-1&&j>0&&j<gSizek-1)
gameA[i][j]='';
else
gameA[i][j]=4;
if(j==gSizek)
gameA[i][j]=0;
}
}
for(i=0;i<gSizeg;i++)
printf("%s
",gameA[i]);
while(1)
{
if(t>=3)
{
if(row>0&&clo>0)
gameA[row][clo]='';
row=rand()%(gSizeg-1);
clo=rand()%(gSizek-1);
s0=time(NULL);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
叢蔽if(row<3)
row=4;
if(clo<1)
clo=1;
gameA[row][clo]=2;
for(i=0;i<gSizeg;i++)
{
//gameA[i][gSizeg+1]=0;
printf("%s
",gameA[i]);
}
}
if(count==3)
{
p0.X=10;
p0.Y=8;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
printf("GAMEOVER!");
break;
}
s1=time(NULL);
t=s1-s0;
滲凳州ReadConsoleInput(hInput,&inRec,1,&res);
if(inRec.EventType==MOUSE_EVENT&&inRec.Event.MouseEvent.dwButtonState==FROM_LEFT_1ST_BUTTON_PRESSED)//滑鼠左鍵
{
if(inRec.Event.MouseEvent.dwMousePosition.X==clo&&inRec.Event.MouseEvent.dwMousePosition.Y==row)
{
if(fen==0)
fen=1;
if(fen>999999)
fen=999999;
else
fen=fen*2;
粗碧sprintf(fSave,"%06d",fen);
gameA[1][18]=0;
strcat(gameA[1],fSave);
}
else
{
count++;
fen=0;
gameA[1][11]=count+'0';
}
t=4;
}
}
while(1);
return0;
}
⑩ 怎麼打地鼠
到活動的時間,點開活動界面。然後點打地鼠活動,然後就進去了,進去之後茄滑是一個正方形的地圖,不可移動,如果你是第一個顫檔臘進去的蠢仔腳下踩的就是白色的就打白色的地鼠,總之你腳下踩的是什麼顏色的就打什麼顏色的地鼠,打錯了減分。到時間了,會給你一定的金錢和經驗,地上還有很多的石塊,也打打完之後有時給你錢有時給你銀簽子,20個換一個金簽子。謝謝採納。請點上精華知識謝謝。