GVKun编程网logo

JavaScript 图形我不知道如何在这个游戏中让行变成不同颜色并在它们被击中时移除砖块

17

本文的目的是介绍JavaScript图形我不知道如何在这个游戏中让行变成不同颜色并在它们被击中时移除砖块的详细情况,我们将通过专业的研究、有关数据的分析等多种方式,同时也不会遗漏关于#RunJS#Ja

本文的目的是介绍JavaScript 图形我不知道如何在这个游戏中让行变成不同颜色并在它们被击中时移除砖块的详细情况,我们将通过专业的研究、有关数据的分析等多种方式,同时也不会遗漏关于#RunJS# JavaScript 实现的打砖块游戏、html – 如何在这个CSS javascript弹出窗口中添加滚动条?、java – 在这个游戏中使用哪个布局管理器?、javascript HTML5 canvas实现打砖块游戏的知识。

本文目录一览:

JavaScript 图形我不知道如何在这个游戏中让行变成不同颜色并在它们被击中时移除砖块

JavaScript 图形我不知道如何在这个游戏中让行变成不同颜色并在它们被击中时移除砖块

如何解决JavaScript 图形我不知道如何在这个游戏中让行变成不同颜色并在它们被击中时移除砖块?

/* Constants for bricks */
var NUM_ROWS = 8;
var BRICK_TOP_OFFSET = 10;
var BRICK_SPACING = 2;
var NUM_BRICKS_PER_ROW = 10;
var BRICK_HEIGHT = 10;
var SPACE_FOR_BRICKS = getWidth() - (NUM_BRICKS_PER_ROW + 1) * BRICK_SPACING;
var BRICK_WIDTH = SPACE_FOR_BRICKS / NUM_BRICKS_PER_ROW;
var TOTAL_BRICKS;
var CURRENT_ROW=1;
var brickX = 0 + BRICK_SPACING;
var brickY = 0 + BRICK_TOP_OFFSET;
var dx = 4;
var dy = 4;
var color1= Color.red;
var BRICK_COLOR=0;
/* Constants for ball and paddle */
var PADDLE_WIDTH = 80;
var PADDLE_HEIGHT = 15;
var PADDLE_OFFSET = 10;

var BALL_RADIUS = 15;

function start(){
    wall();
    paddle();
    ball();
    setTimer(draw,20);
    mouseMoveMethod(movePaddle);
}

function rowColor(){
    
    if(BRICK_COLOR==20){
       color1 = Color.red;
    }
    else if(BRICK_COLOR==40){
           color1= Color.orange;
    }
    else if(BRICK_COLOR==60){
            color1= Color.green;
    }
    else if(BRICK_COLOR==80){
            color1= Color.blue;
     
    }
}

function bricks(x,y,color){
    var brick = new Rectangle(BRICK_WIDTH,BRICK_HEIGHT);
    brick.setPosition(x,y);
    brick.setColor(Color);
    add(brick);
}
function rows(y,BRICK_COLOR){
    var x = BRICK_SPACING;
    for(var i = 0; i < NUM_BRICKS_PER_ROW; i++){
        
        bricks(x,color1);
        x+= BRICK_WIDTH + BRICK_SPACING;
    }
}
function wall(){
    var y = BRICK_TOP_OFFSET;
    for(var i = 0; i < NUM_ROWS; i++){
        rows(y,i);
        y += BRICK_HEIGHT + BRICK_SPACING;
    }
}
function draw(){
    bounce();
    ball.move(dx,dy);
}

function ball(){
    ball = new Circle(BALL_RADIUS);
    ball.setPosition(getWidth()/2,getHeight()/2);
    add(ball);
}
function paddle(){
    paddle = new Rectangle(PADDLE_WIDTH,PADDLE_HEIGHT);
    paddle.setPosition(getWidth()/2-30,getHeight()/2+210);
    add(paddle);
}

function movePaddle(p){
    var x = p.getX(); 
    if(x<0){
        x=0;
    }
    paddle.setPosition(x,paddle.getY());
}
function bounce(){
    // Bounce off right wall
    if(ball.getX() + ball.geTradius() > getWidth()){
        dx = -dx;
    }
    // Bounce off left wall
    if(ball.getX() - ball.geTradius() < 0){
        dx = -dx;
    }
    // Bounce off bottom wall
    if(ball.getY() + ball.geTradius() > getHeight()){
        dy = -dy;
    }
    // Bounce off top wall
    if(ball.getY() - ball.geTradius() < 0){
        dy = -dy;
    }
    //Bounce of Paddle
    var ballElem = getElementAt(ball.getX(),ball.getY() + ball.geTradius());
    if (ballElem == paddle){
        dy = -dy;
    }
    
}

行应该是这样的,一旦球击中砖块,砖块就应该被摧毁:

img

我一直在尝试许多不同的方法来使行显示不同的颜色,就像它们在屏幕截图中显示的那样,但它总是变成纯色或像现在这样的黑色。我一直无法找到颜色或如何在被击中时摧毁砖块,所以如果你们能提供帮助,我将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

#RunJS# JavaScript 实现的打砖块游戏

#RunJS# JavaScript 实现的打砖块游戏

最近在学习HTML5,做了一个打砖块游戏。。。。

html – 如何在这个CSS javascript弹出窗口中添加滚动条?

html – 如何在这个CSS javascript弹出窗口中添加滚动条?

我是 javascript和CSS的新手.有没有人知道如何在这个弹出窗口中添加滚动条???

请帮忙.

<style type="text/css">
    #PopupOverlay {
        display: none;
        position: fixed;
        left: 0px; right: 0px;
        top: 0px; bottom: 0px;
        background-color: #000000;
        opacity:.75;
    }
    #PopupWindow {
        display: none;
        position: absolute;
        width: 600px; height: 400px;
        left: 50%; top: 50%;
        margin: -155px 0 0 -300px;
        border: solid 2px #cccccc;
        background-color: #ffffff;
    }
    #PopupWindow h1 {
        display: block;
        margin: 0;
        padding: 3px 5px;
        background-color: #cccccc;
        text-align: center;
    }

这是java脚本部分……………………..

06001

解决方法

我同意Coop,如果您只想要垂直滚动条,请与以下相同.

#PopupWindow { overflow-y:scroll }

编辑:还有你在那里的那段代码,可能想要将PopupWindow的z-index设置为比PopupOverlay更大的值.

#PopupOverlay {
    display: none;
    position: fixed;
    left: 0px; right: 0px;
    top: 0px; bottom: 0px;
    background-color: #000000;
    opacity:.75;
    z-index:5;
}
#PopupWindow {
    display: none;
    position: absolute;
    width: 600px; height: 400px;
    left: 50%; top: 50%;
    margin: -155px 0 0 -300px;
    border: solid 2px #cccccc;
    background-color: #ffffff;
    overflow-y:scroll;
    z-index:10;
}

java – 在这个游戏中使用哪个布局管理器?

java – 在这个游戏中使用哪个布局管理器?

在这个游戏中使用哪个布局管理器?

解决方法

恕我直言,使用布局和组件不是一个很好的解决方案,个人而言,我倾向于自定义绘画解决方案.

从一件作品的基本概念开始,它需要知道它的位置,它的大小,它的颜色,能够自己画画并且可能是可重新定位的,类似……

public interface Piece {
    public Rectangle getBounds();
    public Color getColor();
    public void setLocation(Point point);
    public void paint(Graphics2D g2d);
}

从这里,你可以定义你需要的形状,例如……

public abstract class AbstractPiece implements Piece {

    private Rectangle bounds;
    private Color color;

    @Override
    public void setLocation(Point point) {
        bounds.setLocation(point);
    }

    @Override
    public Rectangle getBounds() {
        return bounds;
    }

    @Override
    public Color getColor() {
        return color;
    }

    public void setBounds(Rectangle bounds) {
        this.bounds = bounds;
    }

    public void setColor(Color color) {
        this.color = color;
    }

}

public class Square extends AbstractPiece {

    public Square(Point location,int size,Color color) {
        Rectangle bounds = new Rectangle();
        bounds.setLocation(location);
        bounds.setSize(size,size);
        setBounds(bounds);
        setColor(color);
    }

    @Override
    public void paint(Graphics2D g2d) {
        g2d.setColor(getColor());
        g2d.fill(getBounds());
        g2d.setColor(Color.GRAY);
        Rectangle bounds = getBounds();
        g2d.drawLine(bounds.x + (bounds.width / 2),bounds.y,bounds.x + (bounds.width / 2),bounds.y + bounds.height);
        g2d.drawLine(bounds.x,bounds.y + (bounds.height / 2),bounds.x + bounds.width,bounds.y + (bounds.height / 2));
    }

}

这只是一个基本的方块,没什么特别的,但是,它是自包含的,易于创建和管理.您可以使用这个简单的模式创建您喜欢的任何形状组合,在一天结束时,您的电路板类将无关紧要,它只需要它占据的空间以及如何绘制它,说到哪个,你需要一些管理所有这些形状的容器类型……

public class PuzzelPane extends JPanel {

    private List<Piece> pieces;

    public PuzzelPane() {
        Dimension size = getPreferredSize();
        pieces = new ArrayList<>(25);
        Point location = new Point((size.width - 50) / 2,(size.width - 50) / 2);
        pieces.add(new Square(location,50,Color.BLUE));
    }

    @Override
    public Dimension getPreferredSize() {
        return new Dimension(200,200);
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        for (Piece piece : pieces) {
            Graphics2D g2d = (Graphics2D) g.create();
            piece.paint(g2d);
            g2d.dispose();
        }
    }

}

这是一个非常简单的概念,它有一个List来维护所有可用的形状,并简单地循环它以在paintComponent方法中绘制它们

结合this example和this example的想法,您现在可以拖动形状

javascript HTML5 canvas实现打砖块游戏

javascript HTML5 canvas实现打砖块游戏

本文实例编写的一个小游戏,基于HTML5中的canvas。游戏主要是小球反弹击打小方块。在代码中主要实现了小方块的生成,键盘键事件的监听,小球的移动和碰壁之后的反弹以及怎样消除小方块等方法。代码使用到了一个js脚本库

游戏开发流程:

1、创建画布:

将画布放在div标签里面,这样可以控制画布居中的位置,再对div标签加上一些样式比如border和border-radius,这样一来使其看上去像手机,利于观看。

rush:xhtml;">

2、创建移动的小木块:

定义一个可以用于移动的小方块,该移动小方块包含如下的属性,坐标位置,小方块的长和宽和小方块每次移动的距离。

rush:js;"> var diamond = { x : 100,y : 485,width : 100,height : 15,move : 10 }

3、创建用于击打的小球:

定义一个用于移动和击打小方块的小球,该小球包含如下的属性,小球的做坐标位置,半径,在x轴和y轴的速度。其中x轴和y轴的速度是为小球计算移动的方向和移动之后的坐标值。

rush:js;"> var ball_impact = { x : 150,y : 465,r : 10,vx : 200,vy : 200 }

4、生成一系列的小方块:

生成一系列的小方块用于被小球击打,小球的生成主要是根据画布的大小和小方块的坐标与长宽以及各个小方块的x轴和y轴的间隔。

rush:js;"> var diamond_impact = [];//定义存储击打小方块的数组 diamond_impact.length = 0; var width_span = 25; // 任意两个小方块的横向间隔 var height_span = 25; //任意两个小方块的水平间隔 for(var i =1 ; i <=10 ; i++){//控制每行输出的小方块 for(var j = 1 ; j < 10 ; j++){//输出每列的小方块 只有x轴和y轴的坐标不一样而已 var diamond_impact_children = { x : width_span,y : height_span,width : 10,height : 10 }; width_span += 30; diamond_impact.push(diamond_impact_children); //将得到的小方块放在 diamond_impact 中,已被以后使用 } height_span += 25; width_span = 25; }

5、编写移动小方块的移动方法:

移动小方块的实现,首先需要监听获得键盘的事件,之后再根据获得的键盘事件来分别处理来向那个方向移动,在此处我分别定义了四个方向,目的是为了只在左右移动可能不能完全消灭小方块, 在移动的过程之中还要判断移动小方块的位置,以防止是否已经出界。在此处我分别定义了四个方法来处理各个方向的移动。

var direction = "";
document.onkeydown = function (e) {
if (e.keyCode == 37 ) direction = "left" ;
if (e.keyCode == 39 ) direction = "right";
if (e.keyCode == 38 ) direction = "up";
if (e.keyCode == 40 ) direction = "down";
}

//定义四个方法来重绘制方块的位置 分别有 左、右、上、下

function move_right_diamond(){
clear_diamond();//清除以前的方块
init_canvas_background();//再次初始化画布 下同
//重新绘制小方块的位置
if(diamond.x + diamond.width >= canvas.width){ //判断方块是否已经到达最右端
cxt.fill;
cxt.fillRect(diamond.x,diamond.y,diamond.width,diamond.height);
}else{
diamond.x += diamond.move;
cxt.fill;
cxt.fillRect(diamond.x,diamond.height);
}
}
//其余方法类似

6、编写小球移动的方法以及碰壁和接触移动小方块反弹的方法:

反弹:小方块的反弹,主要改变其x轴和y轴方向的速度,由于我们定义的是匀速运动,为此我们只需要改变其速度的方向。 移动:根据小球的速度和指定的移动大小来计算出新的小球坐标,之后再绘制新的小球。 反弹图片实例:(对于触碰墙壁反弹类似,就不多说)

小球移动的代码:

rush:js;"> cxt.arc(ball_impact.x,ball_impact.y,ball_impact.r,Math.PI * 2,true); cxt.closePath(); cxt.fill(); ball_impact.x += ball_impact.vx * cyc /1000;//改变其坐标的位置 ball_impact.y += ball_impact.vy * cyc /1000;

7、小球击打小方块,小方块消失的方法:

击打:小球击打小方框,主要判断小球和小方块的坐标位置即可。注意此处将会分别判断y轴和x轴将小球的击打的小方块限定在一个区域里面。 小时:击中当前小方块之后改变其长宽,之后重绘小方块即可,由于当前的小方块的长宽都为0,即绘制之后的小方块没有。 图解击打的坐标变化:

8、判断游失败和成功的方法:

失败:是要小球的掉到最低端即小球的Y坐标大于画布的Y坐标 就是失败; 成功:计数判断是否消灭的小方块数是否和指定的小方块数相同。

= canvas.height){ cxt.fill; cxt.font = "bold 50px 微软雅黑"; cxt.fillText("FAILURE!",30,250); diamond.move = 0;//不能移动板块 }

//判断是否与所有的小方块数相等
if(count_sum == 90){
cxt.fill;
cxt.font = "bold 50px 微软雅黑";
cxt.fillText("SUCCESS!",20,250);//在画布上书写SUCCESS
diamond.move = 0;//不能移动板块
ball_impact.vx =0;
ball_impact.vy =0;
else{
count_sum = 0;
}

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

今天关于JavaScript 图形我不知道如何在这个游戏中让行变成不同颜色并在它们被击中时移除砖块的分享就到这里,希望大家有所收获,若想了解更多关于#RunJS# JavaScript 实现的打砖块游戏、html – 如何在这个CSS javascript弹出窗口中添加滚动条?、java – 在这个游戏中使用哪个布局管理器?、javascript HTML5 canvas实现打砖块游戏等相关知识,可以在本站进行查询。

本文标签: