快速业务通道

一个撞砖块的小游戏及源码

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-11
cball, pole) {
if (mcball._x>pole._x-pole._width/2-7 && mcball._xpole._y-pole._height/2-mcball.r-1 && mcball._yif (mcball._xreturn 1;
} else if (mcball._xreturn 2;
} else {
return 3;
}
} else if (mcball._y>pole._y-pole._height/2-mcball.r+2.9) {
return 0;
}
}3自动给方块填色和程序:
先用一个数组,存放一些比较自己觉得比较好看的颜色值:
_global.a = new Array();
a[0] = 0xFF0000;
a[1] = 0x00FF00;
a[2] = 0x0000FF;
a[3] = 0x6699FF;
a[4] = 0xFF99FF;
a[5] = 0xCCCCFF;
a[6] = 0xFF3333;
a[7] = 0x996600;
a[8] = 0x669900;
a[9] = 0x663399;
a[10] = 0x00FFFF;
再做一个填色函数就行了:
function DrawColor() {
for (var i = 0; i<3; i++) {
for (var j = 0; j<6; j++) {
eval("brack"+i+"_"+j).rectangle.setRGB(a[random(10)]);
}
}
}4做一个游戏,稍微复杂点的时候,要想好整个游戏的流程,开始,成功及失败时调用哪几个函数,、,还要加上相关的全局变量来控整个游戏,如我这里的Playing,Starts和Failure等.
还有,程序应该是在纸上先写好的,至少是伪代码吧。
对一些比较重要的函数,要进行单个的调试,却保这些小的模块无误后,才开始写主程序。
最后经历的是调试---改进---调试的反复改进的过程。
下面是源码:
_root.onLoad = function() {
_global.a = new Array();
a[0] = 0xFF0000;
a[1] = 0x00FF00;
a[2] = 0x0000FF;
a[3] = 0x6699FF;
a[4] = 0xFF99FF;
a[5] = 0xCCCCFF;
a[6] = 0xFF3333;
a[7] = 0x996600;
a[8] = 0x669900;
a[9] = 0x663399;
a[10] = 0x00FFFF;
brack._visible = false;
Again._visible = false;
Scence_Border_right=222;
Scence_Border_height=299;
Initialize1();
};
function Initialize1() {//初始化场景中的函数
Start_Ball(ball);
Start_Bracks();
//Global Variable
Number_Brack = 18;
Starts = false;
Playing = false;
Failure = false;
ball.vx(0);
ball.vy(0);
ball.r(4);
speed = 6;
b._x=Scence_Border_right/2;
Starting._x=115;
Starting._y=115;
Again._x=115;
Again._y=150;
}
function Start_Ball(mc) {//初始化小球的速度及位置
mc._x = 50+random(100);
mc._y = 120+random(30);
mc.vx = ramdom(3)+5;
mc.vy = ramdom(3)+5;
}
function Copy() {//复制砖块的函数
var n = 0;
for (var i = 0; i<3; i++) {
for (var j = 0; j<6; j++) {
brack.duplicateMovieClip("brack"+i+"_"+j, n+50);
n++;
}
}
}
function DrawColor() {//着色函数,后来我否决了这个函数,原因是可以写在代码里
for (var i = 0; i<3; i++) {
for (var j = 0; j<6; j++) {
eval("brack"+i+"_"+j).rectangle.setRGB(a[random(10)]);
}
}
}
function Start_Bracks() {//初始化砖块的位置及颜色。
Copy();
for (var i = 0; i<3; i++) {
var h = brack._height-2;
//Wether this effect to be done will be considered.为了视觉的需要,微调是必要的。
for (var j = 0; j<6; j++) {
eval("brack"+i+"_"+j)._x = brack._width*j+brack._width/2;
eval("brack"+i+"_"+j)._y = h*i+h/2;
eval("brack"+i+"_"+j).rectangle.setRGB(a[random(10)]);
//trace(barck._height*i+brack._height/2);BUG
}
}
// DrawColor();
}
function BorderCollisionDetect(mc) {//小球的碰边检测
if (mc.getBounds(_root).xMin<1) {
// 特别关注这个误差的调整及返回的值,对应的MC._X倒底是多少...
mc._x = 1+mc._width/2;
mc.vx *= -1;
}
if (mc.getBounds(_root).xMax>Scence_Border_right) {//Scence_Border_right注意这种常量的写法是很有益的,在别的场景中,用同样的一个函数,只要改一个变量值就行了。
mc._x =Scence_Border_right-mc._width/2;
mc.vx *= -1;
}
if (mc.getBounds(_root).yMin<1) {
mc._y = 1+mc._height/2;
mc.vy *= -1;
}
if (mc.getBounds(_root).yMax>Scence_Border_height) {
mc._y =Scence_Border_

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号