• canvas和JavaScript制作《飞机大战》未完待续更新中.....


    飞机大战

    1.声明初始值

                var canvas = document.getElementById("canvas");
                var ctx = canvas.getContext("2d");
                const START = 0;
                var STARTING = 1;
                var RUNNING = 2;
                var PAUSE = 3;
                var GAMEOVER = 4;                    
                var WIDTH = 480;
                var HEIGHT = 650;             //常量名全为大写
                var state = START;            //设置初始状态为START
                var score = 0;                //初始分数为0
                var life = 3;                 //设置飞机有三条生命

    2.设置动态背景

                var bg=new Image();
                bg.src="images/background.png"
                var BG={
                    480,
                    height:852,
                    imgs:bg
                }
                function Bg(config){
                    this.imgs=config.imgs;
                    this.width=config.width;
                    this.height=config.height;
                    this.x1=0;
                    this.y1=0;
                    this.x2=0;
                    this.y2=-this.height;
                    this.paint = function(){
                        ctx.drawImage(this.imgs,this.x1,this.y1);
                        ctx.drawImage(this.imgs,this.x2,this.y2);
                    }
                    this.step = function(){
                        this.y1++;
                        this.y2++;
                        if(this.y1==this.height){
                            this.y1=-this.height;
                        }
                        if(this.y2==this.height){
                            this.y2=-this.height;
                        }
                    }
                }
                var sky=new Bg(BG);
                var logo=new Image();
                logo.src="images/start.png";

    2.

    var loadings = [];
                loadings[0] = new Image();
                loadings[0].src = "images/game_loading1.png";
                loadings[1] = new Image();
                loadings[1].src = "images/game_loading2.png";
                loadings[2] = new Image();
                loadings[2].src = "images/game_loading3.png";
                loadings[3] = new Image();
                loadings[3].src = "images/game_loading4.png";
                var LOADINGS = {
                    imgs :loadings,
                    length:loadings.length,
                    186,
                    height:38
                }
                
                function Loadings(config){
                    this.imgs=config.imgs;
                    this.length = config.length;
                    this.width = config.width;
                    this.height = config.height;
                    this.startIndex = 0;
                    this.paint = function(){
                        ctx.drawImage(this.imgs[this.startIndex],0,HEIGHT-this.height)
                    }
                    this.time=0;
                    this.step = function(){
                        this.time++;
                        if(this.time%3==0){
                            this.startIndex++;
                        }
                        if(this.startIndex==this.length){
                            state=RUNNING;    
                        }    
                    }
                }
                var loading = new Loadings(LOADINGS);
                canvas.onclick = function(){
                    if(state == START){
                        state = STARTING;
                    }
                }

    4.

                var heros=[];
                heros[0]=new Image();
                heros[0].src="images/hero1.png";
                heros[1]=new Image();
                heros[1].src="images/hero2.png";
                heros[2]=new Image();
                heros[2].src="images/hero_blowup_n1.png";
                heros[3]=new Image();
                heros[3].src="images/hero_blowup_n2.png";
                heros[4]=new Image();
                heros[4].src="images/hero_blowup_n3.png";
                heros[5]=new Image();
                heros[5].src="images/hero_blowup_n4.png";
                
                var HEROS={
                    imgs:heros,
                    length:heros.length,
                    width : 99,
                    height: 124,
                    frame : 2 
                }
                
                function Heros(config){
                    this.imgs=config.imgs;
                    this.length = config.length;
                    this.width = config.width;
                    this.height = config.height;
                    this.frame = config.frame;
                    this.startIndex = 0;
                    this.x=WIDTH/2-this.width/2;
                    this.y=HEIGHT-150;
                    this.down = false;   //碰撞
                    this.candel = false; //HP是否空
                    this.bang = function(){
                        this.down = true;
                    }
                    this.paint = function(){
                        ctx.drawImage(this.imgs[this.startIndex],this.x,this.y);
                    }
                    this.step = function(){
                        if(!this.down){
                            this.startIndex++;
                            this.startIndex=this.startIndex % 2;
                        }else{
                            this.startIndex++;
                            if(this.startIndex==this.length){
                                life--;
                                if(life==0){
                                    state = GAMEOVER;
                                    this.startIndex = this.length - 1;
                                }else{
                                    hero = new Heros(HEROS);
                                }
                            }
                        }
                        
                    }
                    this.time=0;
                    this.shoot=function(){
                        this.time++;
                        if(this.time % 3 ==0){
                            bullets.push(new Bullet(BULLET));
                        }
                    }
                }
                var hero=new Heros(HEROS);
                
                canvas.onmousemove=function(event){
                    canvas.style.cursor="none";
                    var event=event||window.event;
                    if(state==RUNNING){
                        var x=event.offsetX;
                        var y=event.offsetY;
                        hero.x= x-hero.width/2;
                        hero.y= y-hero.height/2;
                    }
                }

    5.

                var bullet=new Image();
                bullet.src="images/bullet1.png";
                
                var BULLET={
                    imgs:bullet,
                    9,
                    height:21
                }
                function Bullet(config){
                    this.imgs=config.imgs;
                    this.width = config.width;
                    this.height = config.height;
                    this.x = hero.x + hero.width/2 - this.width/2;
                    this.y = hero.y - this.height - 10;
                    this.paint = function(){
                        ctx.drawImage(this.imgs,this.x,this.y);
                    }
                    this.step = function(){
                        this.y -= 10;
                    }
                    this.candel = false;
                    this.bang = function(){
                        this.candel = true;
                    }
                    
                }
                var bullets=[];
                function bulletsPaint(){
                    for(var i=0;i<bullets.length;i++){
                        bullets[i].paint();
                    }
                }
                function bulletsStep(){
                    for(var i=0;i<bullets.length;i++){
                        bullets[i].step();
                    }
                }
                function bulletsDelete(){
                    for(var i=0;i<bullets.length;i++){
                        if(bullets[i].candel||bullets[i].y<-bullets[i].height){
                            bullets.splice(i,1);
                        }
                    }
                }

    6.

                var enemy1 = [];
                enemy1[0] = new Image();
                enemy1[0].src = "images/enemy1.png";
                enemy1[1] = new Image();
                enemy1[1].src = "images/enemy1_down1.png"
                enemy1[2] = new Image();
                enemy1[2].src = "images/enemy1_down2.png"
                enemy1[3] = new Image();
                enemy1[3].src = "images/enemy1_down3.png"
                enemy1[4] = new Image();
                enemy1[4].src = "images/enemy1_down4.png"
                var enemy2 = [];
                enemy2[0] = new Image();
                enemy2[0].src = "images/enemy2.png";
                enemy2[1] = new Image();
                enemy2[1].src = "images/enemy2_down1.png"
                enemy2[2] = new Image();
                enemy2[2].src = "images/enemy2_down2.png"
                enemy2[3] = new Image();
                enemy2[3].src = "images/enemy2_down3.png"
                enemy2[4] = new Image();
                enemy2[4].src = "images/enemy2_down4.png"
                var enemy3 = [];
                enemy3[0] = new Image();
                enemy3[0].src = "images/enemy3_n1.png";
                enemy3[1] = new Image();
                enemy3[1].src = "images/enemy3_n2.png";
                enemy3[2] = new Image();
                enemy3[2].src = "images/enemy3_down1.png"
                enemy3[3] = new Image();
                enemy3[3].src = "images/enemy3_down2.png"
                enemy3[4] = new Image();
                enemy3[4].src = "images/enemy3_down3.png"
                enemy3[5] = new Image();
                enemy3[5].src = "images/enemy3_down4.png"
                enemy3[6] = new Image();
                enemy3[6].src = "images/enemy3_down5.png"
                enemy3[7] = new Image();
                enemy3[7].src = "images/enemy3_down6.png"
    
                var ENEMY1 = {
                    imgs : enemy1,
                    length : enemy1.length,
                    width : 57,
                    height : 51,
                    type : 1,     
                    frame : 1,    
                    life : 1,
                    score : 1
                }
                var ENEMY2 = {
                    imgs : enemy2,
                    length : enemy2.length,
                    width : 69,
                    height : 95,
                    type : 2,
                    frame : 1,
                    life : 3,
                    score: 3
                }
                var ENEMY3 = {
                    imgs : enemy3,
                    length : enemy3.length,
                    width : 169,
                    height : 258,
                    type : 3,
                    frame : 2,
                    life : 10,
                    score: 100
                }
                function Enemy(config){
                    this.imgs=config.imgs;
                    this.length=config.length;
                    this.width=config.width;
                    this.height=config.width;
                    this.type=config.type;
                    this.frame = config.frame;
                    this.life = config.life;
                    this.score = config.score;
                    this.x = Math.random()*(WIDTH-this.width);
                    this.y = -this.height;
                    this.startIndex = 0;
                    this.down = false;
                    this.candel = false;
                    this.paint=function(){
                        ctx.drawImage(this.imgs[this.startIndex],this.x,this.y);
                    }
                    this.step=function(){
                        if(!this.down){
                            this.startIndex++;
                            this.startIndex=this.startIndex % this.frame;
                            this.y++;
                        }else{
                            this.startIndex++;
                            if(this.startIndex == this.length){
                                this.candel = true;
                                this.startIndex=this.length-1;
                            }
                            
                            
                        }
                    }
                    this.bang = function(){
                        this.life --;
                        if(this.life == 0){
                            this.down = true;
                            score += this.score;
                        }
                    }
                    this.checkHit = function(wo){   
                        return wo.y + wo.height > this.y && wo.x + wo.width > this.x && wo.y < this.y + this.height && wo.x < this.x + this.width;
                    }
                }
                var enemies = [];
                function enterEnemies(){
                    var rand = Math.floor(Math.random()*100);
                    if(rand <= 10){
                        enemies.push(new Enemy(ENEMY1));
                    }else if(rand == 11){
                        enemies.push(new Enemy(ENEMY2));
                    }else if(rand == 70){
                        if(enemies[0].type != 3 && enemies.length > 2){
                            enemies.splice(0,0,new Enemy(ENEMY3))
                        }
                    }
                }
                function paintEnemies(){
                    for(var i = 0;i<enemies.length;i++){
                        enemies[i].paint();
                    }
                }
                function stepEnemies(){
                    for(var i = 0;i<enemies.length;i++){
                        enemies[i].step();
                    }
                }
                function delEnemies(){
                    for(var i = 0;i<enemies.length;i++){
                        if(enemies[i].candel || enemies[i].y > HEIGHT){
                            enemies.splice(i,1)
                        }
                    }
                }
                function hitEnemies(){
                    for(var i = 0;i<enemies.length;i++){
                        if(enemies[i].checkHit(hero)){
                            enemies[i].bang();
                            hero.bang();
                        }
                        for(var j = 0;j < bullets.length;j++){
                            if(enemies[i].checkHit(bullets[j])){
                                enemies[i].bang();
                                bullets[j].bang();
                            }
                        }
                    }
                }

    7.

                function paintText(){
                    ctx.font="bold 24px Arial";
                    ctx.beginPath();
                    ctx.fillStyle="black"
                    ctx.fillText("SCORE:"+score,10,30);
                    
                    ctx.closePath();
                    
                    ctx.beginPath();
                    ctx.fillStyle="red"
                    ctx.fillText("LIFE:"+life,400,30);
                    
                    ctx.closePath();
                }
                canvas.onmouseover=function(){
                    if(state==PAUSE){
                        state=RUNNING;
                    }
                }
                canvas.onmouseout=function(){
                    if(state==RUNNING){
                        state=PAUSE
                    }
                }
                var pasue = new Image();
                pasue.src = "images/game_pause_nor.png";
                
                function gameoverText(){
                    ctx.font="bold 50px Arial";
                    ctx.fillText("废        物",100,300)
                }

    8.

    setInterval(function(){
                    sky.paint();
                    sky.step();
                    if(state == START){
                        ctx.drawImage(logo,40,0)
                    }else if(state== STARTING){
                        loading.paint();
                        loading.step();
                    }else if(state== RUNNING){
                        hero.paint();
                        hero.step();
                        hero.shoot();
                        bulletsPaint();
                        bulletsStep();
                        bulletsDelete();
                        
                        enterEnemies();
                        paintEnemies();
                        stepEnemies();
                        delEnemies();
                        hitEnemies();
                        paintText()
                    }else if(state== PAUSE){
                        paintText()
                        ctx.drawImage(pasue,10,60)
                        hero.paint();
                        bulletsPaint();
                        paintEnemies();
                    }else if(state== GAMEOVER){
                        gameoverText()
                    }
                },100)

    飞机大战源代码:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>飞机大战</title>
        </head>
        <body>
            <div style="text-align: center;">
            <canvas id="canvas" width="480px" height="650px"></canvas>
            </div>
            <script type="text/javascript">
                var canvas = document.getElementById("canvas");
                var ctx = canvas.getContext("2d");
                const START = 0;
                var STARTING = 1;
                var RUNNING = 2;
                var PAUSE = 3;
                var GAMEOVER = 4;                    
                var WIDTH = 480;
                var HEIGHT = 650;
                var state = START;
                var score = 0;
                var life = 1;
                var bg=new Image();
                bg.src="images/background.png"
                var BG={
                    480,
                    height:852,
                    imgs:bg
                }
                function Bg(config){
                    this.imgs=config.imgs;
                    this.width=config.width;
                    this.height=config.height;
                    this.x1=0;
                    this.y1=0;
                    this.x2=0;
                    this.y2=-this.height;
                    this.paint = function(){
                        ctx.drawImage(this.imgs,this.x1,this.y1);
                        ctx.drawImage(this.imgs,this.x2,this.y2);
                    }
                    this.step = function(){
                        this.y1++;
                        this.y2++;
                        if(this.y1==this.height){
                            this.y1=-this.height;
                        }
                        if(this.y2==this.height){
                            this.y2=-this.height;
                        }
                    }
                }
                var sky=new Bg(BG);
                var logo=new Image();
                logo.src="images/start.png";
                
                var loadings = [];
                loadings[0] = new Image();
                loadings[0].src = "images/game_loading1.png";
                loadings[1] = new Image();
                loadings[1].src = "images/game_loading2.png";
                loadings[2] = new Image();
                loadings[2].src = "images/game_loading3.png";
                loadings[3] = new Image();
                loadings[3].src = "images/game_loading4.png";
                var LOADINGS = {
                    imgs :loadings,
                    length:loadings.length,
                    186,
                    height:38
                }
                
                function Loadings(config){
                    this.imgs=config.imgs;
                    this.length = config.length;
                    this.width = config.width;
                    this.height = config.height;
                    this.startIndex = 0;
                    this.paint = function(){
                        ctx.drawImage(this.imgs[this.startIndex],0,HEIGHT-this.height)
                    }
                    this.time=0;
                    this.step = function(){
                        this.time++;
                        if(this.time%3==0){
                            this.startIndex++;
                        }
                        if(this.startIndex==this.length){
                            state=RUNNING;    
                        }    
                    }
                }
                var loading = new Loadings(LOADINGS);
                canvas.onclick = function(){
                    if(state == START){
                        state = STARTING;
                    }
                }
                
                var heros=[];
                heros[0]=new Image();
                heros[0].src="images/hero1.png";
                heros[1]=new Image();
                heros[1].src="images/hero2.png";
                heros[2]=new Image();
                heros[2].src="images/hero_blowup_n1.png";
                heros[3]=new Image();
                heros[3].src="images/hero_blowup_n2.png";
                heros[4]=new Image();
                heros[4].src="images/hero_blowup_n3.png";
                heros[5]=new Image();
                heros[5].src="images/hero_blowup_n4.png";
                
                var HEROS={
                    imgs:heros,
                    length:heros.length,
                    width : 99,
                    height: 124,
                    frame : 2 
                }
                
                function Heros(config){
                    this.imgs=config.imgs;
                    this.length = config.length;
                    this.width = config.width;
                    this.height = config.height;
                    this.frame = config.frame;
                    this.startIndex = 0;
                    this.x=WIDTH/2-this.width/2;
                    this.y=HEIGHT-150;
                    this.down = false;   //碰撞
                    this.candel = false; //HP是否空
                    this.bang = function(){
                        this.down = true;
                    }
                    this.paint = function(){
                        ctx.drawImage(this.imgs[this.startIndex],this.x,this.y);
                    }
                    this.step = function(){
                        if(!this.down){
                            this.startIndex++;
                            this.startIndex=this.startIndex % 2;
                        }else{
                            this.startIndex++;
                            if(this.startIndex==this.length){
                                life--;
                                if(life==0){
                                    state = GAMEOVER;
                                    this.startIndex = this.length - 1;
                                }else{
                                    hero = new Heros(HEROS);
                                }
                            }
                        }
                        
                    }
                    this.time=0;
                    this.shoot=function(){
                        this.time++;
                        if(this.time % 3 ==0){
                            bullets.push(new Bullet(BULLET));
                        }
                    }
                }
                var hero=new Heros(HEROS);
                
                canvas.onmousemove=function(event){
                    canvas.style.cursor="none";
                    var event=event||window.event;
                    if(state==RUNNING){
                        var x=event.offsetX;
                        var y=event.offsetY;
                        hero.x= x-hero.width/2;
                        hero.y= y-hero.height/2;
                    }
                }
                
                
                var bullet=new Image();
                bullet.src="images/bullet1.png";
                
                var BULLET={
                    imgs:bullet,
                    9,
                    height:21
                }
                function Bullet(config){
                    this.imgs=config.imgs;
                    this.width = config.width;
                    this.height = config.height;
                    this.x = hero.x + hero.width/2 - this.width/2;
                    this.y = hero.y - this.height - 10;
                    this.paint = function(){
                        ctx.drawImage(this.imgs,this.x,this.y);
                    }
                    this.step = function(){
                        this.y -= 10;
                    }
                    this.candel = false;
                    this.bang = function(){
                        this.candel = true;
                    }
                    
                }
                var bullets=[];
                function bulletsPaint(){
                    for(var i=0;i<bullets.length;i++){
                        bullets[i].paint();
                    }
                }
                function bulletsStep(){
                    for(var i=0;i<bullets.length;i++){
                        bullets[i].step();
                    }
                }
                function bulletsDelete(){
                    for(var i=0;i<bullets.length;i++){
                        if(bullets[i].candel||bullets[i].y<-bullets[i].height){
                            bullets.splice(i,1);
                        }
                    }
                }
                var enemy1 = [];
                enemy1[0] = new Image();
                enemy1[0].src = "images/enemy1.png";
                enemy1[1] = new Image();
                enemy1[1].src = "images/enemy1_down1.png"
                enemy1[2] = new Image();
                enemy1[2].src = "images/enemy1_down2.png"
                enemy1[3] = new Image();
                enemy1[3].src = "images/enemy1_down3.png"
                enemy1[4] = new Image();
                enemy1[4].src = "images/enemy1_down4.png"
                var enemy2 = [];
                enemy2[0] = new Image();
                enemy2[0].src = "images/enemy2.png";
                enemy2[1] = new Image();
                enemy2[1].src = "images/enemy2_down1.png"
                enemy2[2] = new Image();
                enemy2[2].src = "images/enemy2_down2.png"
                enemy2[3] = new Image();
                enemy2[3].src = "images/enemy2_down3.png"
                enemy2[4] = new Image();
                enemy2[4].src = "images/enemy2_down4.png"
                var enemy3 = [];
                enemy3[0] = new Image();
                enemy3[0].src = "images/enemy3_n1.png";
                enemy3[1] = new Image();
                enemy3[1].src = "images/enemy3_n2.png";
                enemy3[2] = new Image();
                enemy3[2].src = "images/enemy3_down1.png"
                enemy3[3] = new Image();
                enemy3[3].src = "images/enemy3_down2.png"
                enemy3[4] = new Image();
                enemy3[4].src = "images/enemy3_down3.png"
                enemy3[5] = new Image();
                enemy3[5].src = "images/enemy3_down4.png"
                enemy3[6] = new Image();
                enemy3[6].src = "images/enemy3_down5.png"
                enemy3[7] = new Image();
                enemy3[7].src = "images/enemy3_down6.png"
    
                var ENEMY1 = {
                    imgs : enemy1,
                    length : enemy1.length,
                    width : 57,
                    height : 51,
                    type : 1,     
                    frame : 1,    
                    life : 1,
                    score : 1
                }
                var ENEMY2 = {
                    imgs : enemy2,
                    length : enemy2.length,
                    width : 69,
                    height : 95,
                    type : 2,
                    frame : 1,
                    life : 3,
                    score: 3
                }
                var ENEMY3 = {
                    imgs : enemy3,
                    length : enemy3.length,
                    width : 169,
                    height : 258,
                    type : 3,
                    frame : 2,
                    life : 10,
                    score: 100
                }
                function Enemy(config){
                    this.imgs=config.imgs;
                    this.length=config.length;
                    this.width=config.width;
                    this.height=config.width;
                    this.type=config.type;
                    this.frame = config.frame;
                    this.life = config.life;
                    this.score = config.score;
                    this.x = Math.random()*(WIDTH-this.width);
                    this.y = -this.height;
                    this.startIndex = 0;
                    this.down = false;
                    this.candel = false;
                    this.paint=function(){
                        ctx.drawImage(this.imgs[this.startIndex],this.x,this.y);
                    }
                    this.step=function(){
                        if(!this.down){
                            this.startIndex++;
                            this.startIndex=this.startIndex % this.frame;
                            this.y++;
                        }else{
                            this.startIndex++;
                            if(this.startIndex == this.length){
                                this.candel = true;
                                this.startIndex=this.length-1;
                            }
                            
                            
                        }
                    }
                    this.bang = function(){
                        this.life --;
                        if(this.life == 0){
                            this.down = true;
                            score += this.score;
                        }
                    }
                    this.checkHit = function(wo){   
                        return wo.y + wo.height > this.y && wo.x + wo.width > this.x && wo.y < this.y + this.height && wo.x < this.x + this.width;
                    }
                }
                var enemies = [];
                function enterEnemies(){
                    var rand = Math.floor(Math.random()*100);
                    if(rand <= 10){
                        enemies.push(new Enemy(ENEMY1));
                    }else if(rand == 11){
                        enemies.push(new Enemy(ENEMY2));
                    }else if(rand == 70){
                        if(enemies[0].type != 3 && enemies.length > 2){
                            enemies.splice(0,0,new Enemy(ENEMY3))
                        }
                    }
                }
                function paintEnemies(){
                    for(var i = 0;i<enemies.length;i++){
                        enemies[i].paint();
                    }
                }
                function stepEnemies(){
                    for(var i = 0;i<enemies.length;i++){
                        enemies[i].step();
                    }
                }
                function delEnemies(){
                    for(var i = 0;i<enemies.length;i++){
                        if(enemies[i].candel || enemies[i].y > HEIGHT){
                            enemies.splice(i,1)
                        }
                    }
                }
                function hitEnemies(){
                    for(var i = 0;i<enemies.length;i++){
                        if(enemies[i].checkHit(hero)){
                            enemies[i].bang();
                            hero.bang();
                        }
                        for(var j = 0;j < bullets.length;j++){
                            if(enemies[i].checkHit(bullets[j])){
                                enemies[i].bang();
                                bullets[j].bang();
                            }
                        }
                    }
                }
                function paintText(){
                    ctx.font="bold 24px Arial";
                    ctx.beginPath();
                    ctx.fillStyle="black"
                    ctx.fillText("SCORE:"+score,10,30);
                    
                    ctx.closePath();
                    
                    ctx.beginPath();
                    ctx.fillStyle="red"
                    ctx.fillText("LIFE:"+life,400,30);
                    
                    ctx.closePath();
                }
                canvas.onmouseover=function(){
                    if(state==PAUSE){
                        state=RUNNING;
                    }
                }
                canvas.onmouseout=function(){
                    if(state==RUNNING){
                        state=PAUSE
                    }
                }
                var pasue = new Image();
                pasue.src = "images/game_pause_nor.png";
                
                function gameoverText(){
                    ctx.font="bold 50px Arial";
                    ctx.fillText("游戏结束",100,300)
                }
                
                setInterval(function(){
                    sky.paint();
                    sky.step();
                    if(state == START){
                        ctx.drawImage(logo,40,0)
                    }else if(state== STARTING){
                        loading.paint();
                        loading.step();
                    }else if(state== RUNNING){
                        hero.paint();
                        hero.step();
                        hero.shoot();
                        bulletsPaint();
                        bulletsStep();
                        bulletsDelete();
                        
                        enterEnemies();
                        paintEnemies();
                        stepEnemies();
                        delEnemies();
                        hitEnemies();
                        paintText()
                    }else if(state== PAUSE){
                        paintText()
                        ctx.drawImage(pasue,10,60)
                        hero.paint();
                        bulletsPaint();
                        paintEnemies();
                    }else if(state== GAMEOVER){
                        gameoverText()
                    }
                },100)
            </script>
        </body>
    </html>
  • 相关阅读:
    XML解析技术:Dom4j浅析
    log4j详解
    更改IP 脚本(自动获取和手动设置多个IP),将内容拷贝到记事本另存为bat批处理文件
    MyEclipse 导出 javadoc 乱码解决
    一个好用的树dhtmlXTree
    Java语法总结 线程
    常用log4j配置
    使用 dom4j 解析 XML
    java调用webservice .
    Love Google 谷歌不能用的的解决方法
  • 原文地址:https://www.cnblogs.com/fushuxin/p/10139020.html
Copyright © 2020-2023  润新知