基于Java语言的打地鼠的小游戏源代码是什么?

基于Java语言的打地鼠的小游戏源代码是什么?,第1张

 public void mouseClicked(MouseEvent e){\x0d\x0aObject source=e.getSource() //获取事件源,即地鼠标签\x0d\x0aif(source instanceof JLabel){ //如果事件是标签组件\x0d\x0aJLabel mouse=(JLabel)source //强制转换为JLabel标签\x0d\x0amouse.setIcon(null) //取消标签图标\x0d\x0a}\x0d\x0a}\x0d\x0a})\x0d\x0athis.getContentPane().add(mouses[i]) //添加显示地鼠的标签到窗体\x0d\x0a}\x0d\x0a\x0d\x0amouses[0].setLocation(253, 300) //设置每个标签的位置\x0d\x0amouses[1].setLocation(333, 250)\x0d\x0amouses[2].setLocation(388, 296)\x0d\x0amouses[3].setLocation(362, 364)\x0d\x0amouses[4].setLocation(189, 353)\x0d\x0amouses[5].setLocation(240, 409)\x0d\x0a\x0d\x0afinal JLabel backLabel=new JLabel() //创建显示背景的标签\x0d\x0abackLabel.setBounds(0, 0, img.getIconWidth(), img.getIconHeight())\x0d\x0athis.setBounds(100,100,img.getIconWidth(),img.getIconHeight())\x0d\x0abackLabel.setIcon(img)//添加背景到标签\x0d\x0athis.getContentPane().add(backLabel) //添加背景标签到窗体\x0d\x0a}\x0d\x0a/**\x0d\x0a* 线程的核心方法\x0d\x0a*/\x0d\x0a\x0d\x0apublic void run(){\x0d\x0awhile(true){//使用无限循环\x0d\x0atry{\x0d\x0aThread.sleep(3000)//使线程休眠3秒\x0d\x0aint index=(int)(Math.random()*6) //生成随机的地鼠索引\x0d\x0aif(mouses[index].getIcon()==null){ //如果地鼠标签没有设置图片\x0d\x0amouses[index].setIcon(imgMouse) //为该标签添加地鼠图片\x0d\x0a}\x0d\x0a}catch(InterruptedException e){\x0d\x0ae.printStackTrace()\x0d\x0a}\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0a}

1.

准备美术素材,

鼠洞,鼠进洞动画,出洞动画,

打鼠的锤子

2.

把 鼠洞,鼠进洞动画,出洞动画

,这些组合到一个MovieClip,然后复制几个(假如是10个)放到舞台上,取好名mc0~mc9

3.

写程序,

(1)用打鼠的锤子

代替鼠标

(2)

控制地vnu

: 设个定时器,一定时间内用随机数取,取0-9的中任意数,播放出洞动画,

出洞的mc侦听鼠标点击,被点后计分,

没被点,定时播放进洞动画,收进洞里,不能点击.

4.

这是最简单的,要其它规则自己加,比如,设定有不同的地鼠,打到多少后游戏结束,或者定时结束,统计打了多少个

刚写好的,打地鼠小游戏。

功能:每三秒,会在游戏区域随机位置刷出地鼠,鼠标点击地鼠,无论点中与否,地鼠都会立即刷新。

点中地鼠按你要求计分,点不中记录失败次数,3次失败,游戏结束,显示GAME OVER!

#include <stdio.h>

#include <stdlib.h>

#include <windows.h>

#include <conio.h>

#include <time.h>

#include <string.h>

#include <malloc.h>

#define gSizek 30//区域大小宽度

#define gSizeg 20//区域大小高度

#define gBegin 3//活动区域起始行

int main()

{

    int t=0,s0,s1,i,j,count=0,fen=0,row=0,clo=0

    char gameA[gSizeg][gSizek+1],fSave[10]={0}

    SetConsoleTitle("打地鼠")

    HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE) // 获取标准输入设备句柄

    INPUT_RECORD inRec

    DWORD res

    COORD p0

    p0.X=0

    p0.Y=0

    srand(time(0))

    s0= time(NULL)

    strcpy(gameA[0],"            GAME")

    strcpy(gameA[1],"未命中次数:0,计分:000000")

    for(i=gBegin-1i<gSizegi++)

    {

        for(j=0j<gSizek+1j++)

        {

            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=0i<gSizegi++)

        printf("%s\n",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=0i<gSizegi++)

            {

                //gameA[i][gSizeg+1]=0

                printf("%s\n",gameA[i])

            }

        }

        if(count==3)

        {

            p0.X=10

            p0.Y=8

            SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0)

            printf("GAME OVER!")

            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)

    return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6210679.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存