WEB泡泡堂2.0(图形界面+电脑对玩)(javascript)

Hxyman Popo Ver 1.0

"+str+"");
}

this.InitBulb = function(n){
for (var i=0; i●");
}
}

this.ReDrawBox = function(x, y, str){
document.getElementById("box"+x+"_"+y).innerHTML = str;
}

this.InitMap = function(){
for (var i=0; i■");
break;
case " ":
this.DrawBox(i, j, "box"+i+"_"+j, " ");
break;
case "k":
this.DrawBox(i, j, "box"+i+"_"+j, "■");
break;
case "0":
this.DrawBox(i, j, "box"+i+"_"+j, " ");
this.DrawBox(i, j, "player0", "♀");
this.Player[this.Player.length] = new Player(i, j);
break;
case "1":
this.DrawBox(i, j, "box"+i+"_"+j, " ");
this.DrawBox(i, j, "player1", "♂");
this.Player[this.Player.length] = new Player(i, j);
break;
}
}
}
}

this.Campaign = function(self, other){
if (self == other) return 0;
if (this.Player[other].state == 2)
{
this.Player[other].state = 0;
document.getElementById("player"+other).style.display = 'none';
this.End();
alert("Player"+self+" Win!");
}
}

//移动选手
this.Move = function(addx, addy, who){
if (this.Player[who].state != 1) return 0;
var old = this.Map[this.Player[who].x][this.Player[who].y];
this.Player[who].x = addx+this.Player[who].x;
this.Player[who].y = addy+this.Player[who].y;
var str = " 01np";
if (str.indexOf(this.Map[this.Player[who].x][this.Player[who].y]) != -1)
{
document.getElementById("player"+who).style.left = this.Player[who].x*this.BoxWidth;
document.getElementById("player"+who).style.top = this.Player[who].y*this.BoxHeight;
this.Map[this.Player[who].x-addx][this.Player[who].y-addy] = old;
switch(this.Map[this.Player[who].x][this.Player[who].y])
{
case "n":
this.Map[this.Player[who].x][this.Player[who].y] = " ";
this.ReDrawBox(this.Player[who].x, this.Player[who].y, " ");
this.Player[who].popo++;
this.Player[who].remain++;
break;
case "p":
this.Map[this.Player[who].x][this.Player[who].y] = " ";
this.ReDrawBox(this.Player[who].x, this.Player[who].y, " ");
this.Player[who].power++;
break;
}
for (var i=0; i 0 && str.indexOf(this.Map[x][y]) != -1)
{
for (var i=0; i◎"
break;
case "p":
this.Map[x][y] = "p";
GetEquip = "☆"
break;
default:
this.Map[x][y] = " ";
}
break;
case "#":
this.stop[dir] = 1;
return 0;
break;
default:
this.Map[x][y] = " ";
}
this.ReDrawBox(x, y, "¤");
for (var i=0; i 0)
{
this.DoBurst(x, y, 2); this.OtherBurst(x, y, i);
}
x += i;
//down
y -= i;
if (!this.stop[3] && y > 0)
{
this.DoBurst(x, y, 3); this.OtherBurst(x, y, i);
}
y += i;
}
document.getElementById("bulb"+n).style.display = 'none';
this.Bulb[n].display = 0;
}

//不断更新炸弹状态
this.ShowBulb = function(){
for (var i=0; i 0)
{
obj.style.left = this.Bulb[i].x*this.BoxWidth;
obj.style.top = this.Bulb[i].y*this.BoxHeight;
obj.style.display = "";
if (obj.tendency > 0)
{
this.Bulb[i].size++;
if (this.Bulb[i].size > this.Bulb[i].size_max)
{
obj.tendency = 0;
}
}
else
{
this.Bulb[i].size--;
if (this.Bulb[i].size 0)
{
this.Burst(i);
}
}
}

this.Control = function(){
switch(event.keyCode){
//player 1
case 37: //left
this.Move(-1, 0, 0);
break;
case 38: //up
this.Move(0, -1, 0);
break;
case 39: //right
this.Move(1, 0, 0);
break;
case 40: //down
this.Move(0, 1, 0);
break;
case 13: //enter
this.Fix(0);
break;
//player 2
case 65: //left
this.Move(-1, 0, 1);
break;
case 87: //up
this.Move(0, -1, 1);
break;
case 68: //right
this.Move(1, 0, 1);
break;
case 83: //down
this.Move(0, 1, 1);
break;
case 32: //space
this.Fix(1);
break;
}
event.returnValue = false;
}

this.Begin = function(){
this.Itv = window.setInterval(""+this.ClassName+".ShowBulb()", 100); //主进程
}

this.End = function(){
window.clearInterval(this.Itv);
}
}

var game = new Popo("game");
game.InitMap();
game.InitBulb(game.BulbMax);
game.Begin();

function document.onkeydown(){game.Control()}
//-->

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

谢谢大家支持,玩法如Rimifon版主所说:
玩家1的方向键:asdw,炸弹为空格
玩家2的方向键位键盘方向键,炸弹为回车
可以炸出绿色泡泡和红色加威力的五角星。

图形都是字符,所以不太好看。

[2006-9-10]
这两天我把它改成图形界面了。呵呵,差不多可以乱真了。不过加了声音后好慢。我的声音是用几个bgsound来处理,当几个一起播放时会卡。不知道怎么才能处理好声音。暂时发个截图。等问题都解决了再整个发上来:)

(0)

相关推荐

  • java图形界面编程之模拟血压计

    复制代码 代码如下: package GraphicsCanvas; import java.awt.BorderLayout;import java.awt.Canvas;import java.awt.Color;import java.awt.Graphics;import java.awt.Image;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JBut

  • java图形界面之布局设计

    在界面设计中,一个容器要放置许多组件,为了美观,为组件安排在容器中的位置,这就是布局设计.java.awt中定义了多种布局类,每种布局类对应一种布局的策略.常用的有以下布局类: •FlowLayout,依次放置组件. •BoarderLayout,将组件放置在边界上. •CardLayout,将组件像扑克牌一样叠放,而每次只能显示其中一个组件. •GridLayout,将显示区域按行.列划分成一个个相等的格子,组件依次放入这些格子中. •GridBagLayout,将显示区域划分成许多矩形小单元

  • WEB泡泡堂2.0(图形界面+电脑对玩)(javascript)

    Hxyman Popo Ver 1.0 "+str+""); } this.InitBulb = function(n){ for (var i=0; i●"); } } this.ReDrawBox = function(x, y, str){ document.getElementById("box"+x+"_"+y).innerHTML = str; } this.InitMap = function(){ for (v

  • Java实现泡泡堂对战版游戏的示例代码

    目录 前言 主要设计 功能截图 代码实现 游戏启动类 核心监听类 核心线程类 总结 前言 <泡泡堂II>是一个基于java的自制游戏,使用了MVC模式,分离了模型.视图和控制器,使得项目结构清晰易于扩展,使用配置文件来设置游戏基本配置,扩展地图人物道具等.同时,该程序编写期间用了单例模式.工厂模式.模板模式等设计模式.为了游戏的可玩性,特意设计了平滑碰撞以及机器人. 主要设计 设计游戏界面,用swing实现 绘制游戏启动界面.结束界面.地图.主角.道具 实现泡泡爆炸 为了尽量复原泡泡堂游戏,初

  • 利用aardio给python编写图形界面

    前阵子在用python写一些小程序,写完后就开始思考怎么给python程序配一个图形界面,毕竟控制台实在太丑陋了. 于是百度了下python的图形界面库,眼花缭乱的一整页,拣了几件有"特色"有"噱头"的下载下来做了个demo,仍旧不是很满意,不是下载安装繁琐,就是界面丑陋或者难写难用,文档不齐全. 后来那天,整理电脑文件发现了6年前下载的aatuo(现已更名aardio),顿时一阵惊喜. 先说说aardio,2011年7月的时候,它还叫aauto,那时的自己还醉心于

  • 利用vnc远程图形界面控制Linux

    Windows下面的远程图形界面的控制大家都已经驾轻就熟了. Linux下面利用vnc来图形界面的控制也是非常简单的.VNC是由两部分组成:一部分是客户端的应用程序(vncviewer):另外一部分是服务器端的应用程序(vncserver). 以redhat linux 8.0下面的安装和使用为例 一 .安装vnc的rpm包 1 安装linux 1.1 图形界面下的安装要是在KDE或者GNOME下,直接点击rpm包,系统会自动开始安装.中间还会提示你设置密码,端口等. 1.2 命令行下的安装.

  • python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例

    在默认情况下,我们使用PyQt5创建出来的窗口和部件都是默认的样式,虽然谈不上很丑,但是也毫无美感可言.其实,在PyQt5中,我们可以有较高的自由度来自定义窗口和各种小部件的样式,通过自定义这些样式,以达到美化图形界面的目的. 本篇文章中,我们就通过一个实际的例子,使用QSS和PyQt5的配置属性,实现图形用户界面的美化工作. 首先上效果图: 一.对界面进行布局和组件的布置 在图像界面编程中,一个好的布局有助于全局把控界面的形态,而在PyQt5中,有多种布局的方式供我们选择,比较常用的布局有以下

  • JAVA实现的CrazyArcade泡泡堂游戏

    项目地址 https://github.com/SCNU-A225/CrazyArcade 示例图片 项目结构 frame:包含如开始.游戏中.结束的JFrame main:包含程序入口和其它游戏控制 model: model.loader:包含资源加载器用于读取配置文件等信息,使用了单例设计模式 model.manager:包含元素管理器.工厂等,用于控制游戏各元素 model.vo:各种实体类,包括玩家.NPC.炸弹.方块等等 pro:配置文件目录,包含人物.道具.地图.方块.游戏设置等配置

  • Java实现经典游戏泡泡堂的示例代码

    目录 前言 主要设计 功能截图 代码实现 游戏启动类 核心监听类 核心线程类 总结 前言 <泡泡堂I>是一个基于java的自制游戏,游戏设计为双人pk积分赛模式,在这个模式里面,玩家只要率先达到一定分数既可以赢得比赛.玩家可以通过炸箱子可以得到少量的分数,也可以通过炸掉对手然后戳破包围对手的水泡得到大量分数.而玩家如果被泡泡爆炸击中,会被泡泡包裹一段时间,在这段时间内不可以移动和放泡泡,需要等时间过去或者被对手戳破水泡才能获得自由.但如果玩家被自己放的泡泡炸中,会扣一定的分数. 主要设计 设计

  • Python四款GUI图形界面库介绍

    目录 一.Python官方标准库:Tkinter (必须了解) 用法: 二.三方库:PyQt5(推荐,但是还是累) 1.安装: 2.QtDesigner 3.配置PyCharm 4.使用PyQt 三.三方库:wxPython 四.三方库:PyGTK 一.Python官方标准库:Tkinter (必须了解) Python内置图形界面库——Tkinter. Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平

  • 第一次编写Java流布局图形界面

    本文实例为大家分享了Java流布局图形界面编写代码,供大家参考,具体内容如下 package jisuanqi; import java.awt.*; public class MyFrame extends Frame{ //继承Frame类 public MyFrame() { super("第一个图形界面"); //设置框架窗口标题 this.setSize(200, 130); //设置组件尺寸(宽,高) this.setLocation(300, 240); //设置组件的显

  • C++实现图形界面时钟表盘代码

    本文实例讲述了C++实现图形界面时钟表盘代码,分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: //POINT的数组可以这么用      POINT pt[]={          0, 450,          225,390,          390,225,          450,0,          390,-225,          225,-390,          0,-450,          -225,-390,          -390,-2

随机推荐