python打地鼠游戏代码100行_JavaScript实现打地鼠小游戏

在写这个打地鼠的游戏开始首先要清楚每一步该做什么

然后再一步一步搭好框架再完善功能。

1.创建table三行三列,用来存放坑(图片)

2.获得所有的图片标签

3.老鼠的动作有①.冒出来

4.②. 老鼠跑了

5.③.老鼠被打死了

6.完善功能

一、首先实现第一步,用table创建一个三行三列的坑

打地鼠

接下来就是写js函数。

二、首先获得所有的坑的集合

var image = document.getElementsByTagName(‘img');

三、老鼠的动作有:①.冒出来

老鼠冒出来的坑得获得一个随机的坑,然后将坑的图片替换成地鼠的图片

再将每个老鼠绑定click事件。然后要么打死触发die()函数。要么隔一段时间触发paole()函数

function chulai(){

ranK = Math.floor(Math.random() * 9);

image[ranK].src = "./images/dishu.gif";

image[ranK].style.marginTop = "0px";

image[ranK].setAttribute("onclick","die()");

setTimeout("paole()", Math.random()*400+800);

}

四、老鼠的动作: ②.老鼠很幸运的跑了

如果执行老鼠跑了的这个函数,那么得做一些改变。首先图片得换成默认的坑的图片。然后移除掉绑定到它身上的click事件。最后再继续调用老鼠出来的函数,chulai();

function paole(){

image[ranK].src = "./images/keng.gif";

image[ranK].style.marginTop = "31px";

image[ranK].removeAttribute("onclick");

setTimeout("chulai()", Math.random()*400+800);

}

五、老鼠的动作: ③.老鼠很不幸的被我们打死了

老鼠执行该事件得进行以下改变,同样也得移除它身上的click事件,将它的图片换成受伤的图片。

function die(){

image[ranK].src = "./images/shang.gif";

image[ranK].removeAttribute("onclick");

image[ranK].style.marginTop = "3px";

}

在写完了上面这些代码后,貌似有了完整的功能,实际上却不能执行。因为少了一个入口的函数,即老鼠出来的函数应该被调用,当然,这个函数也应该在Math.random()的随机时间中被调用,即整合后的代码如下。

//1 先获取到所有的坑(图片)

var image = document.getElementsByTagName('img');

var ranK;

//随机时间调用入口函数

setTimeout("chulai()",Math.random()*400+800);

//让老鼠随机出现在一个坑里

function chulai(){

ranK = Math.floor(Math.random() * 9);

image[ranK].src = "./images/dishu.gif";

image[ranK].style.marginTop = "0px";

image[ranK].setAttribute("onclick","die()");

setTimeout("paole()", Math.random()*400+800);

}

//2 老鼠回去了

function paole(){

image[ranK].src = "./images/keng.gif";

image[ranK].style.marginTop = "31px";

image[ranK].removeAttribute("onclick");

setTimeout("chulai()", Math.random()*400+800);

}

//3 老鼠被打死了

function die(){

image[ranK].src = "./images/shang.gif";

image[ranK].removeAttribute("onclick");

image[ranK].style.marginTop = "3px";

}

在通过设置css样式后,就可以完美的执行了。效果图如下。

上面的主体代码已经完成了。接下来就添加功能。

添加功能一、记录当前打死的老鼠数

如果想要添加计数功能,那么在body中定义一个div块,用来显示当前打死多少只老鼠的字符串。在这里我们设置为id为score。再定义一个变量count,记录当前打死的老鼠数。在die()函数中进行count++。

部分代码如下:

function die(){

image[ranK].src = "./images/shang.gif";

image[ranK].removeAttribute("onclick");

image[ranK].style.marginTop = "3px";

count++;

score.innerHTML =count;

}

效果图如下:

添加功能二、保存历史最佳纪录

要实现保存历史最佳纪录那么要使用本地存储localStorage对象。在这儿我们主要使用该对象的

localStorage.setItem(“键名”,”值”),将值以键值对的形式存储到本地。localStorage.getItem(“键名”);通过键名获得值。

在这里我们只需将利用var preScore = localStorage.getItem(“键名”)获得历史的最佳记录,然后与当前的count进行对比,如果preScore大于当前的count,则不更新历史最佳记录。如果preScore小于了当前的count,那么使preScore=count;再本轮游戏结束后进行存储。

添加功能三、设置倒计时器,控制游戏结束

那么本轮游戏什么时候可以结束,那么就要设置一个计时器。在这里我写了一个一分钟的倒计时器。当sencond等于0,时游戏结束,然后再对

localStorage.setItem(“bestScore”,preScore),进行更新。

添加功能二和三的代码如下:

function die(){

try{

image[ranK].src = "./images/shang.gif";

image[ranK].removeAttribute("onclick");

image[ranK].style.marginTop = "3px";

count++;

score.innerHTML =count;

if( count > preScore)

{

score1.innerHTML = count;

preScore = count;

}

localStorage.setItem("bestScore",preScore);

}catch(ex){

}

}

//设置一个定时器

var seconds = 59;

var speed = 1000;

function countDown(seconds,speed){

var txt = "剩余时间:" + ((seconds < 10) ? "0" + seconds : seconds) +"秒";

div.innerHTML = txt;

var timeId = setTimeout("countDown(seconds--,speed)",speed);

//如果时间到了

if(seconds == 0){

//对最佳记录进行存储,不管当前有没有打破记录

localStorage.setItem("bestScore",preScore);

clearTimeout(timeId);

if(cover.style.display == "none"){

cover.style.display = "block";

//当没有打到一只老鼠的话显示该信息

if(count === undefined)

text.innerHTML = "当前成绩为:"+0+"分"+"
"+"游戏结束!";

//超越了历史记录,此时localStorage.getItem("bestScore")保存的值时当前的count值。显示该信息

else if(count == localStorage.getItem("bestScore"))

{

text.innerHTML = "当前成绩为:"+count+"分"+"
"+"恭喜您打破纪录"+"
"+"游戏结束!";

}

else

text.innerHTML = "当前成绩为:"+count+"分"+"
"+"游戏结束!";

}

}

}

countDown(seconds,speed);

效果图如下:

最后附上完整的源代码

打地鼠

*{

margin: 0px;

padding: 0px;

}

#background{

background: url(./images/beijing.jpg);

}

h2{

font-family: "微软雅黑";

font-size: 30px;

padding-left: 100px;

}

table td{

width: 100px;

height: 100px;

}

img{

margin-top: 31px;

}

#content{

z-index: 1;

margin-left: 40%;

}

#count{

width: 320px;

height: 40px;

background-color:#E8E8E8;

padding-left: 0px;

text-align: center;

color: red;

font-size: 18px;

line-height: 30px;

font-family: "微软雅黑";

}

#count .score{

text-align: center;

color: lightgreen;

font-size: 20px;

line-height: 30px;

font-family: "微软雅黑";

}

#history #id{

text-align: center;

color: lightgreen;

font-size: 20px;

line-height: 30px;

font-family: "微软雅黑";

}

#history{

position: absolute;

top:60px;

right:240px;

width: 180px;

height: 90px;

background-color: #E8E8E8;

color: lightblue;

font-size:20px;

line-height: 80px;

text-align: center;

}

.clock{

position: absolute;

top:0px;

right:240px;

width: 180px;

height: 60px;

background-color: lightblue;

color: red;

font-size: 20px;

text-align: center;

line-height: 60px;

}

#cover{

margin-top: 0px;

position: absolute;

z-index: 2;

width: 800px;

height: 600px;

top: 0px;

left: 0px;

right: 0px;

bottom: 0px;

margin: auto;

background :rgba(128,128,128,0.5);

color: red;

font-size: 30px;

text-align: center;

vertical-align: middle;

}

打地鼠

当前得分 : 0
最佳记录: 0

//1 先获取到所有的坑(图片)

var content = document.getElementById('content');

var cover = document.getElementById('cover');

var image = document.getElementsByTagName('img');

var countMouse = document.getElementById('count');

var score = countMouse.querySelector(".score");

var history = document.getElementById("history");

var score1 = document.getElementById("score1");

var div = document.querySelector(".clock");

var text = document.getElementById("text");

var preScore = 0;

var ranK;

var count = 0;

// localStorage.removeItem("bestScore");

// localStorage.removeItem("scoreshow");

preScore = localStorage.getItem("bestScore");

console.log(preScore);

score1.innerHTML = preScore;

//让老鼠随机出现在一个坑里

setTimeout("chulai()",Math.random()*400+800);

function chulai(){

try{

ranK = Math.floor(Math.random() * 9);

image[ranK].src = "./images/dishu.gif";

image[ranK].style.marginTop = "0px";

image[ranK].setAttribute("onclick","die()");

setTimeout("paole()", Math.random()*400+800);

}catch(ex){}

}

//2 老鼠回去了

function paole(){

try{

image[ranK].src = "./images/keng.gif";

image[ranK].style.marginTop = "31px";

image[ranK].removeAttribute("onclick");

setTimeout("chulai()", Math.random()*400+800);

}catch(ex){}

}

//3 老鼠被打死了

function die(){

try{

image[ranK].src = "./images/shang.gif";

image[ranK].removeAttribute("onclick");

image[ranK].style.marginTop = "3px";

count++;

score.innerHTML =count;

if( count > preScore)

{

score1.innerHTML = count;

preScore = count;

}

localStorage.setItem("bestScore",preScore);

}catch(ex){

}

}

//设置一个定时器

var seconds = 59;

var speed = 1000;

function countDown(seconds,speed){

var txt = "剩余时间:" + ((seconds < 10) ? "0" + seconds : seconds) +"秒";

div.innerHTML = txt;

var timeId = setTimeout("countDown(seconds--,speed)",speed);

if(seconds == 0){

//localStorage.setItem("scoreshow",count);

localStorage.setItem("bestScore",preScore);

clearTimeout(timeId);

if(cover.style.display == "none"){

cover.style.display = "block";

if(count === undefined)

text.innerHTML = "当前成绩为:"+0+"分"+"
"+"游戏结束!";

else if(count == localStorage.getItem("bestScore")){

text.innerHTML = "当前成绩为:"+count+"分"+"
"+"恭喜您打破纪录"+"
"+"游戏结束!";

}

else

text.innerHTML = "当前成绩为:"+count+"分"+"
"+"游戏结束!";

}

}

}

countDown(seconds,speed);

更多有趣的经典小游戏实现专题,分享给大家:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
100Python地鼠小游戏是一款使用Python编写的简单游戏,玩家需要在规定时间内点击出现的地鼠,以获得分数。游戏的难度会随着时间逐渐增加,地鼠出现的速度会越来越快。以下是实现这个游戏的基本步骤: 1. 导入所需的库:首先需要导入pygame库,用于实现游戏的图形界面和交互功能。 2. 初始化游戏:设置游戏的窗口大小、背景颜色等基本参数,并初始化分数、时间等变量。 3. 绘制游戏界面:根据游戏的状态(如地鼠是否出现、是否被击中等),绘制相应的游戏画面。 4. 检测事件:检测玩家的操作(如点击鼠标),并根据操作更新游戏状态。 5. 更新游戏状态:根据当前时间和分数,更新地鼠的出现速度和位置,以及游戏的难度。 6. 更新画面:根据最新的游戏状态,重新绘制游戏界面。 7. 循环执:将上述步骤放在一个循环中,不断更新游戏状态和画面,直到游戏结束。 8. 显示游戏结果:在游戏结束后,显示玩家的得分和排名等信息。 以下是一个简单的实现代码: ```python import pygame import random # 初始化pygame pygame.init() # 设置窗口大小和标题 screen = pygame.display.set_mode((800, 600)) pygame.display.set_caption("打地鼠") # 加载图片资源 bg = pygame.image.load("background.jpg") mouse = pygame.image.load("mouse.png") # 初始化分数和时间 score = 0 start_time = pygame.time.get_ticks() # 游戏主循环 running = True while running: # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.MOUSEBUTTONDOWN: x, y = pygame.mouse.get_pos() if mouse_rect.collidepoint(x, y): score += 1 mouse_rect.x = random.randint(0, 700) mouse_rect.y = random.randint(0, 500) # 更新游戏状态 elapsed_time = (pygame.time.get_ticks() - start_time) / 1000 if elapsed_time > 10: running = False # 更新画面 screen.blit(bg, (0, 0)) screen.blit(mouse, mouse_rect) pygame.display.flip() # 显示游戏结果 print("游戏结束,得分:", score) pygame.quit() ``` 注意:这个代码仅供参考,实际运时需要根据具体情况进调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值