俄罗斯方块java源代码提供

俄罗斯方块——java源代码提供

 

import java.awt.*;

import java.awt.event.*;

//俄罗斯方块类

public class ERS_Block extends Frame{

public static boolean isPlay=false;

public static int level=1,score=0;

public static TextField scoreField,levelField;

 

public static MyTimer timer;

GameCanvas gameScr;

 

public static void main(String[] argus){

ERS_Block ers = new ERS_Block("俄罗斯方块游戏V1.0 Author:Vincent");

WindowListener win_listener = new WinListener();

ers.addWindowListener(win_listener);

}

 

//俄罗斯方块类的构造方法

ERS_Block(String title){

super(title);

 

setSize(600,480);

setLayout(new GridLayout(1,2));

 

gameScr = new GameCanvas();

gameScr.addKeyListener(gameScr);

 

timer = new MyTimer(gameScr);

timer.setDaemon(true);

timer.start();

timer.suspend();

 

add(gameScr);

 

Panel rightScr = new Panel();

rightScr.setLayout(new GridLayout(2,1,0,30));

rightScr.setSize(120,500);

add(rightScr);

 

//右边信息窗体的布局

MyPanel infoScr = new MyPanel();

infoScr.setLayout(new GridLayout(4,1,0,5));

infoScr.setSize(120,300);

rightScr.add(infoScr);

 

//定义标签和初始值

Label scorep = new Label("分数:",Label.LEFT);

Label levelp = new Label("级数:",Label.LEFT);

scoreField = new TextField(8);

levelField = new TextField(8);

scoreField.setEditable(false);

levelField.setEditable(false);

infoScr.add(scorep);

infoScr.add(scoreField);

infoScr.add(levelp);

infoScr.add(levelField);

scorep.setSize(new Dimension(20,60));

scoreField.setSize(new Dimension(20,60));

levelp.setSize(new Dimension(20,60));

levelField.setSize(new Dimension(20,60));

scoreField.setText("0");

levelField.setText("1");

 

//右边控制按钮窗体的布局

MyPanel controlScr = new MyPanel();

controlScr.setLayout(new GridLayout(5,1,0,5));

rightScr.add(controlScr);

 

//定义按钮play

Button play_b = new Button("开始游戏");

play_b.setSize(new Dimension(50,200));

play_b.addActionListener(new Command(Command.button_play,gameScr));

 

//定义按钮Level UP

Button level_up_b = new Button("提高级数");

level_up_b.setSize(new Dimension(50,200));

level_up_b.addActionListener(newCommand(Command.button_levelup,gameScr));

 

//定义按钮Level Down

Button level_down_b =new Button("降低级数");

level_down_b.setSize(new Dimension(50,200));

level_down_b.addActionListener(newCommand(Command.button_leveldown,gameScr));

 

//定义按钮Level Pause

Button pause_b =new Button("游戏暂停");

pause_b.setSize(new Dimension(50,200));

pause_b.addActionListener(newCommand(Command.button_pause,gameScr));

 

//定义按钮Quit

Button quit_b = new Button("退出游戏");

quit_b.setSize(new Dimension(50,200));

quit_b.addActionListener(newCommand(Command.button_quit,gameScr));

 

controlScr.add(play_b);

controlScr.add(level_up_b);

controlScr.add(level_down_b);

controlScr.add(pause_b);

controlScr.add(quit_b);

setVisible(true);

gameScr.requestFocus();

}

}

 

//重写MyPanel类,使Panel的四周留空间

class MyPanel extends Panel{

public Insets getInsets(){

return new Insets(30,50,30,50);

}

}

 

//游戏画布类

class GameCanvas extends Canvas implements KeyListener{

final int unitSize = 30; //小方块边长

int rowNum; //正方格的行数

int columnNum; //正方格的列数

int maxAllowRowNum; //允许有多少行未削

int blockInitRow; //新出现块的起始行坐标

int blockInitCol; //新出现块的起始列坐标

int [][] scrArr; //屏幕数组

Block b; //对方快的引用

 

//画布类的构造方法

GameCanvas(){

rowNum = 15;

columnNum = 10;

maxAllowRowNum = rowNum - 2;

b = new Block(this);

blockInitRow = rowNum - 1;

blockInitCol = columnNum/2 - 2;

scrArr = new int [32][32];

}

 

//初始化屏幕,并将屏幕数组清零的方法

void initScr(){

for(int i=0;i<rowNum;i++)

for (int j=0; j<columnNum;j++)

scrArr[j]=0;

b.reset();

repaint();

}

 

//重新刷新画布方法

public void paint(Graphics g){

for(int i = 0; i < rowNum; i++)

for(int j = 0; j < columnNum; j++)

drawUnit(i,j,scrArr[j]);

}

 

//画方块的方法

public void drawUnit(int row,int col,int type){

scrArr[row][col] = type;

Graphics g = getGraphics();

tch(type){ //表示画方快的方法

case 0: g.setColor(Color.black);break; //以背景为颜色画

case 1: g.setColor(Color.blue);break; //画正在下落的方块

case 2: g.setColor(Color.magenta);break; //画已经落下的方法

}

g.fill3DRect(col*unitSize,getSize().height-(row+1)*unitSize,unitSize,unitSize,true);

g.dispose();

}

 

public Block getBlock(){

return b; //返回block实例的引用

}

 

//返回屏幕数组中(row,col)位置的属性值

public int getScrArrXY(int row,int col){

if (row < 0 || row >= rowNum || col < 0 || col >=columnNum)

return(-1);

else

return(scrArr[row][col]);

}

 

//返回新块的初始行坐标方法

public int getInitRow(){

return(blockInitRow); //返回新块的初始行坐标

}

 

//返回新块的初始列坐标方法

public int getInitCol(){

return(blockInitCol); //返回新块的初始列坐标

}

 

//满行删除方法

void deleteFullLine(){

int full_line_num = 0;

int k = 0;

for (int i=0;i<rowNum;i++){

boolean isfull = true;

 

L1:for(int j=0;j<columnNum;j++)

if(scrArr[j] == 0){

k++;

isfull = false;

break L1;

}

if(isfull) full_line_num++;

if(k!=0 && k-1!=i && !isfull)

for(int j = 0; j < columnNum; j++){

if (scrArr[j] == 0)

drawUnit(k-1,j,0);

else

drawUnit(k-1,j,2);

scrArr[k-1][j] = scrArr[j];

}

}

for(int i = k-1 ;i < rowNum; i++){

for(int j = 0; j < columnNum; j++){

drawUnit(i,j,0);

scrArr[j]=0;

}

}

ERS_Block.score += full_line_num;

ERS_Block.scoreField.setText(""+ERS_Block.score);

}

 

//判断游戏是否结束方法

boolean isGameEnd(){

for (int col = 0 ; col <columnNum; col ++){

if(scrArr[maxAllowRowNum][col] !=0)

return true;

}

return false;

}

 

public void keyTyped(KeyEvent e){

}

 

public void keyReleased(KeyEvent e){

}

 

//处理键盘输入的方法

public void keyPressed(KeyEvent e){

if(!ERS_Block.isPlay)

return;

tch(e.getKeyCode()){

case KeyEvent.VK_DOWN:b.fallDown();break;

case KeyEvent.VK_LEFT:b.leftMove();break;

case KeyEvent.VK_RIGHT:b.rightMove();break;

case KeyEvent.VK_SPACE:b.leftTurn();break;

}

}

}

 

//处理控制类

class Command implements ActionListener{

static final int button_play = 1; //给按钮分配编号

static final int button_levelup = 2;

static final int button_leveldown = 3;

static final int button_quit = 4;

static final int button_pause = 5;

static boolean pause_resume = true;

 

int curButton; //当前按钮

GameCanvas scr;

 

//控制按钮类的构造方法

Command(int button,GameCanvas scr){

curButton = button;

this.scr=scr;

}

 

//按钮执行方法

public void actionPerformed (ActionEvent e){

tch(curButton){

case button_play:if(!ERS_Block.isPlay){

scr.initScr();

ERS_Block.isPlay = true;

ERS_Block.score = 0;

ERS_Block.scoreField.setText("0");

ERS_Block.timer.resume();

}

scr.requestFocus();

break;

case button_levelup:if(ERS_Block.level < 10){

ERS_Block.level++;

ERS_Block.levelField.setText(""+ERS_Block.level);

ERS_Block.score = 0;

ERS_Block.scoreField.setText(""+ERS_Block.score);

}

scr.requestFocus();

break;

case button_leveldown:if(ERS_Block.level > 1){

ERS_Block.level--;

ERS_Block.levelField.setText(""+ERS_Block.level);

ERS_Block.score = 0;

ERS_Block.scoreField.setText(""+ERS_Block.score);

}

scr.requestFocus();

break;

case button_pause:if(pause_resume){

ERS_Block.timer.suspend();

pause_resume = false;

}else{

ERS_Block.timer.resume();

pause_resume = true;

}

scr.requestFocus();

break;

case button_quit:System.exit(0);

}

}

}

 

//方块类

class Block {

static int[][] pattern = {

{0x0f00,0x4444,0x0f00,0x4444},//用十六进至表示,本行表示长条四种状态

{0x04e0,0x0464,0x00e4,0x04c4},

{0x4620,0x6c00,0x4620,0x6c00},

{0x2640,0xc600,0x2640,0xc600},

{0x6220,0x1700,0x2230,0x0740},

{0x6440,0x0e20,0x44c0,0x8e00},

{0x0660,0x0660,0x0660,0x0660}

};

int blockType; //块的模式号(0-6)

int turnState; //块的翻转状态(0-3)

int blockState; //快的下落状态

int row,col; //块在画布上的坐标

GameCanvas scr;

 

//块类的构造方法

Block(GameCanvas scr){

this.scr = scr;

blockType = (int)(Math.random() * 1000)%7;

turnState = (int)(Math.random() * 1000)%4;

blockState = 1;

row = scr.getInitRow();

col = scr.getInitCol();

}

 

//重新初始化块,并显示新块

public void reset(){

blockType = (int)(Math.random() * 1000)%7;

turnState = (int)(Math.random() * 1000)%4;

blockState = 1;

row = scr.getInitRow();

col = scr.getInitCol();

dispBlock(1);

}

 

//实现“块”翻转的方法

public void leftTurn(){

if(assertValid(blockType,(turnState + 1)%4,row,col)){

dispBlock(0);

turnState = (turnState + 1)%4;

dispBlock(1);

}

}

 

//实现“块”的左移的方法

public void leftMove(){

if(assertValid(blockType,turnState,row,col-1)){

dispBlock(0);

col--;

dispBlock(1);

}

}

 

//实现块的右移

public void rightMove(){

if(assertValid(blockType,turnState,row,col+1)){

dispBlock(0);

col++;

dispBlock(1);

}

}

 

//实现块落下的操作的方法

public boolean fallDown(){

if(blockState == 2)

return(false);

if(assertValid(blockType,turnState,row-1,col)){

dispBlock(0);

row--;

dispBlock(1);

return(true);

}else{

blockState = 2;

dispBlock(2);

return(false);

}

}

 

//判断是否正确的方法

boolean assertValid(int t,int s,int row,int col){

int k = 0x8000;

for(int i = 0; i < 4; i++){

for(int j = 0; j < 4; j++){

if((int)(pattern[t][s]&k) != 0){

int temp = scr.getScrArrXY(row-i,col+j);

if (temp<0||temp==2)

return false;

}

k = k >> 1;

}

}

return true;

}

 

//同步显示的方法

public synchronized void dispBlock(int s){

int k = 0x8000;

for (int i = 0; i < 4; i++){

for(int j = 0; j < 4; j++){

if(((int)pattern[blockType][turnState]&k) != 0){

scr.drawUnit(row-i,col+j,s);

}

k=k>>1;

}

}

}

}

 

//定时线程

class MyTimer extends Thread{

GameCanvas scr;

 

public MyTimer(GameCanvas scr){

this.scr = scr;

}

 

public void run(){

while(true){

try{

sleep((10-ERS_Block.level + 1)*100);

}

catch(InterruptedException e){}

if(!scr.getBlock().fallDown()){

scr.deleteFullLine();

if(scr.isGameEnd()){

ERS_Block.isPlay = false;

suspend();

}else

scr.getBlock().reset();

}

}

}

 

class WinListener extends WindowAdapter{

public void windowClosing (WindowEvent l){

System.exit(0);

}

}

 

 

 

 

                                射击游戏代码

效果

 

第一步:把如下代码加入<body>区域中

 <SCRIPTLANGUAGE="JavaScript">

 

 

 // ---- Make array

 function MakeArray(n){

     this.length = n;

     for (var i = 1; i<= n; i++) {

         this[i] = 0

     }

     return this

 }

 

 // ----- poor man'srandom number

 var d0 = new Date();

 var r0 =d0.getSeconds();

 function poor_rand(){

     d1 = new Date();

     r0 = (r0 * r0 + r0+ d1.getSeconds()) % 3721 ;

     return r0 %width_n;

 }

 

 // ---- Parameters ofgame

 var height_n = 8;

 var width_n =5;

 

 // ---- state of game

 var enemy = newMakeArray( width_n); // enemy positions

 var wtime; // waittime

 var score; // points

 var gameover; // incase of gameover set to true

 

 // ----- Make thebattlefield.

 document.write("<FORM NAME='fm1'>");

 document.write("<INPUT TYPE='text' NAME='message' SIZE=20>");

 document.write("</FORM>");

 document.write("<FORM NAME='fm2'><TABLE>");

 for( var i=0;i<height_n; i++){

     document.write("<TR>");

     for( varj=0;j<width_n; j++){

        document.write( "<TD><CENTER><INPUTTYPE='radio'></CENTER></TD>");

     }

     document.write("</TR>");

 }

 document.write("<TR>");

 for( varj=0;j<width_n; j++){

     document.write("<TD><INPUT TYPE='button' VALUE='A' onClick='fire("

         + j +")'></TD>");

 }

 document.write("</TR>");

 document.write("</TABLE>");

 document.write("<INPUT TYPE='button' VALUE='START' onClick='game_start()'>");

 document.write("</FORM>");

 

 // ----- game maintimer event

 // -----     enemy come one step

 function come(){

     var n =poor_rand();

    document.fm2.elements[ width_n * enemy[n+1] + n].checked = true;

     enemy[n+1]++;

     if( enemy[n+1]< height_n){

        setTimeout("come()", wtime);

     }else{

       gameover = true;

       document.fm1.message.value=  "GAME OVER:" + score ;

     }

 }

 

 // ----- Fire the n thbeam

 function fire( n){

     if( gameover )return;

     for( var i=0;i<enemy[n+1]; i++){ // clear enemy

        document.fm2.elements[ width_n * i + n].checked = false;

     }

     score += enemy[n+1];

    document.fm1.message.value = "Points:" + score;

     enemy[ n+1] = 0;

     if( wtime >50){ wtime -= 10};

 }

 

 // ---- initialize& start game

 function game_start(){

    for( var n=0;n<width_n; n++){

         for( var i=0;i<enemy[n+1]; i++){

            document.fm2.elements[ width_n * i + n].checked = false;

         }

         enemy[n+1] =0;

     }

     wtime = 150;

     score = 0;

     gameover = false;

    document.fm1.message.value = "Points:" + score;

    setTimeout("come()", wtime);

 }

 

 // -->

 

 </SCRIPT>

 

 

 

第二步:把<body>区域中的内容改为:

<BODY bgcolor="#fef4d9"onLoad="document.forms[0].guess.focus();document.forms[0].guess.select()">

 

 

 

 

劲舞团游戏代码

游戏效果:

第一步:把如下代码加入<body>区域中

<SCRIPTLANGUAGE="JavaScript">

<!--Begin

varagt=navigator.userAgent.toLowerCase();

if(agt.indexOf("mac") != -1)

vara="\r";

else

vara="\n";

varmax=0;

functiontlist() {

max=tlist.arguments.length;

for(i=0; i<max; i++)

this[i]=tlist.arguments[i];

}

tl =new tlist(

"   o"+a+

"  /|\\"+a+

"*/ \\*        跳舞"+a,

 

"   o_"+a+

"  \<| *"+a+

"  *\>\\         跳舞"+a,

 

"  _o/*"+a+

"* |"+a+

"  / \\        跳舞"+a,

 

"*\o_"+a+

"  / *"+a+

"\<\\           跳舞"+a,

 

"  _o/*"+a+

"* |"+a+

"  / \\        跳舞"+a,

 

"*\\c/*"+a+

"   )"+a+

"  / \>         跳舞"+a,

 

"     *"+a+

"  \\__/c"+a+

"   \> \\*       跳舞"+a,

 

"   __/"+a+

"    (o_*"+a+

"     \\*      跳舞"+a,

 

"      \\ /"+a+

"       |"+a+

"     */o\\*   跳舞"+a,

 

"       \\_"+a+

"       ("+a+

"     */o\\*   跳舞"+a,

 

"        \<_"+a+

"      __("+a+

"     * o|*   跳舞"+a,

 

"         /_"+a+

"      __("+a+

"     * o|*  跳舞"+a,

 

"         ___"+a+

"      *\/ \>"+a+

"       o|*   跳舞"+a,

 

"        *"+a+

"       o|_/"+a+

"      */ \\   跳舞"+a,

 

"        *"+a+

"      _o|_"+a+

"     *  \>\\   跳舞"+a,

 

"       _o/*"+a+

"      * |"+a+

"       / \\   跳舞"+a,

 

"      *\\o/*"+a+

"        |"+a+

"       / \\   跳舞"+a,

 

"      c/*"+a+

"      \<\\"+a+

"      */\\    跳舞"+a,

 

"      c__"+a+

"      \<\ *"+a+

"      */\\    跳舞"+a,

 

"      c__"+a+

"      /\ *"+a+

"     * /\>     跳舞"+a,

 

"      c/*"+a+

"     /(__"+a+

"    * /      跳舞"+a,

 

"    __o/*"+a+

"    * (__"+a+

"      \<       跳舞"+a,

 

"      __o_"+a+

"     * / *"+a+

"     \<\\      跳舞"+a,

 

"     *_o_"+a+

"       | *"+a+

"      \< \\     跳舞"+a,

 

"     *_c_*"+a+

"       |"+a+

"       \>\\     跳舞"+a,

 

"     *_c_*"+a+

"       |__"+a+

"       \>      跳舞"+a,

 

"     *_c_*"+a+

"     __|__"+a+

"              跳舞"+a,

 

""+a+

"     *_c_*"+a+

"     __)__   跳舞"+a,

 

""+a+

"     *\\c/*"+a+

"     __)__   跳舞"+a

 

);

varx=0;

functiontick() {

document.animation.cheerleader.value= " " + a +

tl[x];

x++;

if (x!= max)

setTimeout("tick()",200);

else

x =0;

}

//  End -->

</script>

<formname=animation>

<textareaname=cheerleader rows=5 cols=20&rt;</textarea&rt;

<br>

<inputtype=button value="Start Again" onClick ="javascript:tick()">

</form>

 

 

 

第二步:把<body>区域中的内容改为:

<BODYbgcolor="#fef4d9" OnLoad="tick()">

 

 

 

 

鼠标移动代码

<!--将以下代码加入HTML的<Body></Body>之间-->

 

<DIV id=dot0

style="HEIGHT: 11px; POSITION: absolute; VISIBILITY:hidden; WIDTH: 11px"><IMG

height=11 src="image/bullet2.gif" width=11></DIV>

<DIV id=dot1 style="HEIGHT: 11px; POSITION: absolute;WIDTH: 11px"><IMG

height=11 src="image/bullet2.gif" width=11></DIV>

<DIV id=dot2 style="HEIGHT: 11px; POSITION: absolute;WIDTH: 11px"><IMG

height=11 src="image/bullet2.gif" width=11></DIV>

<DIV id=dot3 style="HEIGHT: 11px; POSITION: absolute;WIDTH: 11px"><IMG

height=11 src="image/bullet2.gif" width=11></DIV>

<DIV id=dot4 style="HEIGHT: 11px; POSITION: absolute;WIDTH: 11px"><IMG

height=11 src="image/bullet2.gif" width=11></DIV>

<DIV id=dot5 style="HEIGHT: 11px; POSITION: absolute;WIDTH: 11px"><IMG

height=11 src="image/bullet2.gif" width=11></DIV>

<DIV id=dot6 style="HEIGHT: 11px; POSITION: absolute;WIDTH: 11px"><IMG

height=11 src="image/bullet2.gif" width=11></DIV>

<SCRIPT language=JavaScript>

var nDots = 7;

var Xpos = 0;

var Ypos = 0;

var DELTAT = .01;

var SEGLEN = 10;

var SPRINGK = 10;

var MASS = 1;

var XGRAVITY = 0;

var YGRAVITY = 50;

var RESISTANCE = 10;

var STOPVEL = 0.1;

var STOPACC = 0.1;

var DOTSIZE = 11;

var BOUNCE = 0.75;

var isNetscape = navigator.appName=="Netscape";

var followmouse = true;

var dots = new Array();

init();

function init()

{

    var i = 0;

    for (i = 0; i <nDots; i++) {

        dots[i] = newdot(i);

    }

 

    if (!isNetscape) {

    }

    for (i = 0; i <nDots; i++) {

       dots[i].obj.left = dots[i].X;

        dots[i].obj.top= dots[i].Y;

    }

    if (isNetscape) {

        startanimate();

    } else {

       setTimeout("startanimate()", 1000);

    }

}

function dot(i)

{

    this.X = Xpos;

    this.Y = Ypos;

    this.dx = 0;

    this.dy = 0;

    if (isNetscape) {

        this.obj =eval("document.dot" + i);

    } else {

        this.obj =eval("dot" + i + ".style");

    }

}

function startanimate() {

   setInterval("animate()", 20);

}

function setInitPositions(dots)

{

    var startloc =document.all.tags("LI");

    var i = 0;

    for (i = 0; i <startloc.length && i < (nDots - 1); i++) {

        dots[i+1].X =startloc[i].offsetLeft

           startloc[i].offsetParent.offsetLeft - DOTSIZE;

        dots[i+1].Y =startloc[i].offsetTop +

           startloc[i].offsetParent.offsetTop + 2*DOTSIZE;

    }

    dots[0].X =dots[1].X;

    dots[0].Y =dots[1].Y - SEGLEN;

}

function MoveHandler(e)

{

    Xpos = e.pageX;

    Ypos = e.pageY;

    return true;

}

function MoveHandlerIE() {

    Xpos =window.event.x + document.body.scrollLeft;

    Ypos =window.event.y + document.body.scrollTop;

}

 

if (isNetscape) {

   document.captureEvents(Event.MOUSEMOVE);

   document.onMouseMove = MoveHandler;

} else {

   document.onmousemove = MoveHandlerIE;

}

 

 

function vec(X, Y)

{

    this.X = X;

    this.Y = Y;

}

function springForce(i, j, spring)

{

    var dx = (dots[i].X- dots[j].X);

    var dy = (dots[i].Y- dots[j].Y);

    var len =Math.sqrt(dx*dx + dy*dy);

    if (len >SEGLEN) {

        var springF =SPRINGK * (len - SEGLEN);

        spring.X += (dx/ len) * springF;

        spring.Y += (dy/ len) * springF;

    }

}

function animate() {

    var start = 0;

    if (followmouse) {

        dots[0].X =Xpos;

        dots[0].Y =Ypos;

        start = 1;

    }

    for (i = start ; i< nDots; i++ ) {

 

        var spring =new vec(0, 0);

        if (i > 0) {

           springForce(i-1, i, spring);

        }

        if (i <(nDots - 1)) {

           springForce(i+1, i, spring);

        }

        var resist =new vec(-dots[i].dx * RESISTANCE,

            -dots[i].dy* RESISTANCE);

        var accel = new vec((spring.X +resist.X)/MASS + XGRAVITY,

            (spring.Y +resist.Y)/ MASS + YGRAVITY);

        dots[i].dx +=(DELTAT * accel.X);

        dots[i].dy +=(DELTAT * accel.Y);

        if(Math.abs(dots[i].dx) < STOPVEL &&

            Math.abs(dots[i].dy) < STOPVEL &&

           Math.abs(accel.X) < STOPACC &&

           Math.abs(accel.Y) < STOPACC) {

            dots[i].dx= 0;

            dots[i].dy= 0;

        }

        dots[i].X +=dots[i].dx;

        dots[i].Y +=dots[i].dy;

        var height, width;

        if (isNetscape){

            height =window.innerHeight + window.pageYOffset;

            width =window.innerWidth + window.pageXOffset;

        } else {

            height =document.body.clientHeight + document.body.scrollTop;

            width =document.body.clientWidth + document.body.scrollLeft;

        }

        if (dots[i].Y>=  height - DOTSIZE - 1) {

            if(dots[i].dy > 0) {

               dots[i].dy = BOUNCE * -dots[i].dy;

            }

            dots[i].Y =height - DOTSIZE - 1;

        }

        if (dots[i].X>= width - DOTSIZE) {

            if(dots[i].dx > 0) {

               dots[i].dx = BOUNCE * -dots[i].dx;

            }

            dots[i].X =width - DOTSIZE - 1;

        }

        if (dots[i].X< 0) {

            if(dots[i].dx < 0) {

               dots[i].dx = BOUNCE * -dots[i].dx;

            }

            dots[i].X =0;

        }

       dots[i].obj.left = dots[i].X;

        dots[i].obj.top=  dots[i].Y;

    }

}

</SCRIPT>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值