置顶

黑客idmosquito的简单介绍

作者:hacker | 分类:脱壳 | 浏览:108 | 日期:2022年10月17日

目录:

flash5中的mosquito killer怎么做?

文件名:Mosquito Killer.fla

通过这个flash游戏范例应该掌握:动作脚本的面对对象编程思想,怎样自定义函数,电影剪辑对象和声音对象的属性和 *** 。

从这个游戏中可以看到,一些蚊子在游戏界面上随机飞舞,玩家拖动着一个拍子拍打着飞舞的蚊子,直到拍中蚊子,同时配有蚊子飞舞时的叫声和拍中时发出的声音,非常形象。这个游戏和很多流行的flash开发的射击游戏的原理相似,只要把握了这个游戏,做一些射击相关的游戏就很容易了。

动作脚本函数:function , attachMovie, attachSound, random, setPan, startDrag, hitTest , onClipEvent , gotoAndPlay, stop等等。

1. 2技术准备

1.2.1面对对象的编程概念

面对对象(Object Orientation )编程是程序语言的一个革命性的思想,早期的程序语言,比如Basic,Fortran,是一种过程语言(Procedural Languages),过程语言是按程序语句的先后次序一步步运行的,过程语言一步步运行的特性必然要求编程人员对程序的每一行的作用熟悉,这对于大型的程序,对于编程人员来说是一个很大的考验,同时过程语言函数的运用和数据结构(data structures)是没有联系的。

为了解决这些问题,出现了面对对象编程的概念。现在很多的程序语言都引用了面对对象编程的思想,比如经典的C++,跨平台的Java,客户端执行的脚本语言JavaScript,还有我们熟悉的flash的ActionScript(动作脚本)。

在面对对象编程语言中所谓面对对象就是把具有共同属性的物体的信息组合起来,放在一个被称之为类(Class)的 *** 里,

组合的信息被称为属性(Properties)和 *** (Method),可以给类创建一个实体(instance),这个创建的实体也就是这个类的对象(Object),

这样实体(对象)就拥有了这个类的所有的属性(Properties)和 *** (Method)。

关于面对对象的概念,可以用一个例子来说明,我们说“人”是一个抽象的概念,这个概念可是说是一个类别,是每个具体人的 *** ,人有身高,体重 ,肤色,性别等等属性,以及吃饭,睡觉,说话,运动等等 *** ,那么对于“人”这个类的实体——具体的每一个人都有这些属性和 *** ,每得到一个新“人”的过程,也是给“人”这个类创建实体的过程。

在flash中我们可以找到很多具有共同属性的 *** 体,比如电影剪辑(Moive Clip),声音,时间等等。Flash5的ActionScript也创造性的引用了面对对象编程的概念,把电影剪辑元件(Symbol),声音,时间等等各自归为一个类。也给这些类的实体(对象)定义了相关的属性和 *** ,比如电影剪辑的_x,_y,_alpha,_width等等属性和attachMovie, duplicateMovieClip, unloadMovie等等 *** ,声音(sound)对象的_soundbuftime等等属性和attachSound,setPan等等 *** 。

1.2.2自定义函数

函数简单来说就是一段代码块,这段代码可以看作被封装起来执行某一特定的功能,把这段代码封装起来并命名,然后在程序的其他地方可以调用这个函数,函数可以重复的调用,这样就可以大大减少代码量,提高工作效率。函数很象一个“黑箱”,我们根据这个“黑箱”要实现的功能把“黑箱”做好(相似于定义函数的过程),然后利用“黑箱”去实现一定的功能,“黑箱”一旦做好后,没有再必要关心“黑箱”内部的结构,只要拿过来用就可以了。

Flash的函数有预定义函数和自定义函数两种,flash5内置了25种预定义函数,这些函数都已经定义好,只要通过参数传递就可以调用。

但是只有这些预定义函数还不能满足我们的要求,还需要使用自定义函数。自定义函数定义完成后就可以调用,记住一定是先定义自定义函数,再调用函数。比如这个拍杀飞舞蚊子游戏中的ActionScript在影桢的之一桢定义“生成”蚊子的函数createMosquitos,把鼠标光标替换成拍子的函数changeCursor,控制蚊子随机飞舞的函数changeCursor,处理声音的函数playSound,然后在第三桢和电影剪辑mosquito的动作脚本中调用上面这些自定义函数。

可以通过这样的 *** 定义自定义函数。定义函数时要用到function关键字来申明一个函数,具体过程是:

function 函数名(参数1,参数2…….)

比如游戏中的自定义函数过程:

在主场景的之一桢定义函数createMosquitos:

function createMosquitos (count) {

// create mosquitos

var i;

for (i=1; i=count; i++) {

_root.attachMovie("mosquito", "mosquito"+i, i);

}

}

在主场景的第三桢调用函数:

createMosquitos(level);

从上面的代码中可以看到,level变量(这个变量在已经赋了一个值)把赋予的数值通过参数count传递给自定义函数createMosquitos

自定义函数再通过“黑箱”操作把得到的结果传递出来,那么代码createMosquitos(level)就实现了“生成”蚊子过程。

调用自定义函数也可以返回一个数值,可以通过一个return语句来实现,flash中的预定义函数,比如sin,abs都是调用后返回一个数

值的,自定义函数也可以实现,比如:

function()sqr(x){

return x*x

}

调用函数t=sqr(5)返回的值t等于25。

1.2.3 电影剪辑对象

电影剪辑(MoiveClip)可以说是flas *** 的角色灵魂,在flash4中电影剪辑仅仅是作为一个小电影来处理的,这个小电影有不依赖于主场景时间轴而播放的时间轴,只要播放磁头停在电影剪辑所在的影桢上,这个电影剪辑就循环播放,当播放磁头离开时,电影奸计就停止播放或消失。而flash5以上的电影剪辑不仅仅只有这样的特点,macmeida公司自从从flash5开始在动作脚本中引用了面对对象编程的思想,就创造性而又巧妙的把电影剪辑当作众多对象中的唯一一个图形化的对象,同时规定了电影剪辑对象的一些属性和 *** 。现在电影剪辑不仅仅是作为一个小动画,更重要的是作为一个动作脚本中的对象,在这个对象上可以捆绑动作脚本,可以实现程序的模块化设计思想,实现电影剪辑对象的嵌套。

电影剪辑(MoiveClip作为一个对象,就有一些属性(Properties)和 *** (Method)下面我们分别来介绍电影剪辑的属性和 *** 。

1.2.3.1 电影剪辑的属性

一般来说电影剪辑的属性分为外部属性和内部属性。电影剪辑有大小,透明度,宽,高,颜色等等属性,这些是电影剪辑的外部的整体的属性,称为外部属性。而象电影剪辑内部的当前桢属性(_currentframe)声音预缓冲时间(_soundbuftime;)等等属性称为内部属性。

可以通过下面两种方式设置电影剪辑的属性:

setProperty ( target, property, value )

target ———电影剪辑实体的目标路径

property——电影剪辑的属性

value——电影剪辑属性值

或者程序语言标准的点语法(dot syntax)方式:

target.property =expression

target ———电影剪辑实体的目标路径

property——电影剪辑的属性

比如游戏动作脚本代码中下面一段的代码:

_parent.x = _root.calculateRandom(-1500, -50);

_parent._y = _root.calculateRandom(80, 200);

scale = 10;

_parent._xscale = scale;

_parent._yscale = scale;

上面的代码是给捆绑这段代码的电影剪辑的上一级的电影剪辑(父电影剪辑)的x,y坐标赋一个坐标值,和给_xscale(电影剪辑x方向大小)

_yscale(电影剪辑y方向大小)赋值。

如表1.2.1是电影剪辑的一些整体属性:

属性类别 说明

_alpha 电影剪辑实体的透明度,设置范围0—100,为0时全部透明,为100时不透明

_highquality 电影剪辑实体显示图象品质,三个具体值,2:更佳品质,1:高品质,0:低品质

_height 电影剪辑实体的高度,以实际像素值表示

_name 电影剪辑实体名

_rotation 电影剪辑旋转角度值

_target 电影剪辑实体目标路径

_visible 电影剪辑实体可视度,两个具体值,0:不可见,1:可见

_width 电影剪辑实体的宽度值,以实际像素值表示

_x 电影剪辑实体在坐标系的x坐标值,以实际像素值表示

_xscale 电影剪辑实体x方向大小与原电影剪辑的宽度的百分比值

_y 电影剪辑实体在坐标系的x坐标值,以实际像素值表示

_yscale; 电影剪辑实体y方向大小与原电影剪辑的高度的百分比值

如表1.2.2是电影剪辑的一些内部属性:

属性类别 说明

_currentframe 电影剪辑实体内部当前影桢值

_droptarget 可拖曳电影剪辑实体拖曳到某一位置所得到的绝对路径

_focusrect 电影剪辑实体可选择区显示布尔值

_framesloaded 电影剪辑实体载入影桢值

_soundbuftime 电影剪辑中声音缓冲时间值

_target 电影剪辑实体目标路径

_totalframes 电影剪辑实体的总影桢数

_url 电影剪辑实体存放的url值

1.2.3.2 电影剪辑的事件

对象都有自己的属性,事件和 *** ,下面是游戏动作脚本中的一段代码:

onClipEvent (mouseDown) {

// check if the mosquito is hit

if (this.hitTest(_root.customCursor.hitarea)) {

soundobject.stop();

_root.playSound(640, _parent._x, "splatter");

_root.score++;

_parent.gotoAndPlay("hit");

}

}

onClipEvent (load) {

// constructor

_parent._x = _root.calculateRandom(-1500, -50);

_parent._y = _root.calculateRandom(80, 200);

scale = 10;

_parent._xscale = scale;

_parent._yscale = scale;

xStep = 12;

yStep = 8;

// start buzz sound

soundobject = new Sound(this);

soundobject.attachSound("buzz");

soundobject.setPan(-100);

soundobject.start(0, 999);

}

这段代码捆绑在电影剪辑对象mosquito side的实体mosquito上,代码分为两大块,每一块代码都封装在电影剪辑事件onClipEvent (mouseEvent)中,其语法规则是:

onClipEvent (mouseEvent){

statement

}

l mouseEvent——电影剪辑实体事件触发的类别

l statement——事件触发执行的程序语句块

电影剪辑实体事件触发的类别如表1.3.4

电影剪辑事件类别 说明

onClipEvent (load) 电影剪辑实体加载入场景时,触发事件,一般用于初始化变量

onClipEvent(enterFrame) 电影剪辑加载后,只要电影播放就就触发事件,这个事件不需要鼠标或键盘执行某一动作也可以触发,只要播放磁头在电影剪辑实体所在的影桢上

onClipEvent(mouseDown) 鼠标左键按下时,触发事件

onClipEvent (mouseUp) 鼠标左键释放时,触发事件

onClipEvent (mouseMove) 鼠标移动时,触发事件

onClipEvent (keyDown) 键盘按下时,触发事件

onClipEvent (keyUp) 键盘按下后释放时,触发事件

onClipEvent (unload) 电影剪辑实体卸载时,触发事件

onClipEvent (data) 感应到loadVarible或loadMoive指令传送完变量和电影剪辑时,触发事件

注意电影剪辑事件只能捆绑在电影剪辑上.在按纽上和影桢上是不能捆绑电影剪辑事件的,通过下面的 *** 在电影剪辑实体上捆绑电影剪辑事件:

选中要捆绑动作脚本的电影剪辑实体,调出动作脚本面板,然后从面板左侧的函数区中选中onClipEvent语句,双击,右侧程序编辑区便添加了对应的语句。

在面板下侧的参数选择区勾选一种电影剪辑事件onClipEvent的类别。

1.2.3.2 电影剪辑的 ***

电影剪辑常用的 *** 列举如下:

电影剪辑 *** 类别 说明

attachMovie 从库中绑定一的电影剪辑

duplicateMovieClip 复制指定的电影剪辑

getBounds 返回在指盯坐标系中电影剪辑的更大和最小x和y坐标值

getBytesLoaded 返回指定电影剪辑载入的字节数

getBytesTotal 返回电影剪辑总字节数

getURL 下载指定的URL文件到指定的窗口,获得一个变量

globalToLocal 将指定对象的全局坐标系转化为电影剪辑的局部坐标系

gotoAndPlay 播放磁头跳到指定的影桢,并从这个影桢开始播放

gotoAndStop 播放磁头跳到指定的影桢,并停止播放

.hitTest 检测指定电影剪辑的边界与目标对象是否“膨胀”

.loadMovie 载入指定的电影剪辑实体

.loadVariables 载入变量

.localToGlobal 将指定对象的局部坐标系转化为舞台的全局坐标系

.nextFrame 播放磁头跳到下一影桢,并停止

.play 播放电影剪辑实体

.prevFrame 播放磁头跳到前一影桢,并停止

.removeMovieClip 删除复制的或从库中绑定的电影剪辑实体

.startDrag 开始拖动指定的电影剪辑实体

.stop 停止播放电影剪辑实体

.stopDrag 停止拖动电影剪辑实体

.swapDepths 交换电影剪辑尸体深度级

.unloadMovie 卸载已经载入的电影剪辑

其中attachMovie,duplicateMovieClip ,hitTest,.removeMovieClip,startDrag, stopDrag是一些常用的电影剪辑 *** 。

下面逐个具体说明:

attachMovie

表达式:

anyMoive.attachMovie( idName, newName, depth )

参数:

l anyMoive :捆绑这个动作脚本的电影剪辑实体名

l idName: 在库中要绑定的电影剪辑的标识名

l newName:从库中绑定后得到的电影剪辑实体名

l depth:绑定后得到的电影剪辑实体所在的深度级

具体操作如下:

1.从中选定要捆绑的电影剪辑,右键单击,弹出如图面板,并点击Linkage(关联)项

2. 弹出如图Symbol Linkage Properties(元件关联属性)对话框,然后从Linkage(关联)选项中选择Export this symbol 单选项最后在entifier(标识名)中输入一个标识名,如“mosquito”

3.点击OK按纽确认

在本实例中是在主场景中从库中绑定电影剪辑mosquito

在主场景中的影桢上有下面一端代码:

for (i=1; i=count; i++) {

_root.attachMovie("mosquito", "mosquito"+i, i);

}

这段代码用于绑定库中的电影剪辑"mosquito”,在主场景中创建一个新的电影剪辑实体"mosquito1(当循环到i=1),并设置该电影剪辑实体的深度级。

上面是在场景中捆绑电影剪辑,创建电影剪辑实体,在电影剪辑上也可以捆绑另一个电影剪辑,创建新的电影剪辑实体,那么该电影剪辑实体就位于原电影剪辑实体的内部。比如在一个电影剪辑实体 mymc捆绑下面的动作脚本:

mymc.attachMovie("mosquito", "mosquito1", 1);

电影剪辑mosquito捆绑在电影剪辑实体mymc上,创建为一个新的电影剪辑实体mosquito1

duplicateMovieClip

表达式:

anyMoive .duplicateMovie(newName, depth)

参数:

newName:复制后所得到的电影剪辑实体名

depth:复制所得到的电影剪辑尸体的深度级

在电影剪辑播放期间,创建这个电影剪辑的一个实体,复制的电影剪辑实体总是从影桢的之一桢开始。在双亲电影剪辑中的变量会拷贝到复制出来的电影剪辑实体中,如果双亲电影剪辑被删除,那么复制出的电影剪辑实体也被删除。可以使用removeMoivClip *** 来删除复制出的电影剪辑实体。

hitTest

表达式:

anyMoive .hitTest(x,y,shapeFlag)

anyMoive .hitTest(target)

参数:

l X:场景中的x坐标,一全局坐标系定义

l y:场景中的y坐标,一全局坐标系定义

l shapeFlag:一个布尔值,为ture或false,为ture时是对指定的电影剪辑实体的完整外形求值,为false时是对指定的电影剪辑实体的边框求值

l target:目标电影剪辑实体的路径

这个 *** 执行后返回一个布尔值,用于检测像游戏中一类射击,殴打,拍打等动作是否击中目标,即是所谓的检测“碰撞” “碰撞”过程是相互的,甲乙两个物体“碰撞”过程,可以是说“碰撞”乙,也可以说是乙“碰撞”甲,所以在flash中可以在“碰撞”对象的双方捆绑hitTest的函数,比如在本实例中,用拍子拍打蚊子,就在蚊子上(电影剪辑实体mosquito)上捆绑下面的动作脚本。这个检测“碰撞”的过程是在拍子拍下后进行的,由于拍子替代了鼠标光标,拍子拍下的过程也是鼠标按下的过程,所以这段检测“碰撞”的代码封装的电影剪辑事件onClipEvent(mouseDown)中:

onClipEvent (mouseDown) {

// check if the mosquito is hit

if (this.hitTest(_root.customCursor.hitarea)) {

soundobject.stop();

_root.playSound(640, _parent._x, "splatter");

_root.score++;

_parent.gotoAndPlay("hit");

}

}

hitTest *** 的表达式采用了anyMoive .hitTest(target)的形式,其中_root.customCursor.hitarea是电影剪辑实体customCursor(拍子)的子电影剪辑实体hitarea(拍子上“碰撞”的热区)的路径。如果“碰撞”了,返回布尔值ture ,程序就执行条件语句中的代码。

饥荒物品代码大全

饥荒物品代码如下:

材料:

cutgrass(草)、 twigs(树枝)、log(木头)\charcoal(木炭)、ash(灰)、cutreeds(采下的芦苇)、lightbulb(荧光果)、petals(花瓣)、petals_evil(噩梦花瓣)、pinecone(松果) 、foliage(叶子)、cutlichen(摘下的苔藓)、wormlight(虫子果)、lureplantbulb(食人花种子flint(燧石)、nitre(硝石)、redgem(红宝石)、bluegem(蓝宝石)、purplegem(紫宝石)、greengem(绿宝石)、orangegem(橙宝石)、yellowgem(黄宝石)、rocks(岩石)、goldnugget(黄金)、thulecite(铥矿石)、thulecite_pieces(铥矿碎片)、 rope(绳子) boards(木板) 、cutstone(石砖)、 papyrus(纸)、 houndstooth(犬牙)、 pigskin(猪皮)

、manrabbit_tail(兔人尾巴) 、silk(蜘蛛丝)、spidergland(蜘蛛腺体)、 spidereggsack(蜘蛛卵)、 beardhair(胡子)、 beefalowool(牛毛)、 honeycomb(蜂巢) 、stinger(蜂刺) walrus_tusk(海象牙)、 feather_crow(乌鸦羽毛)、 feather_robin(红雀羽毛)、feather_robin_winter(雪雀羽毛)、horn(牛角)、tentaclespots(触手皮) 、trunk_summer(夏象鼻)、 trunk_winter(冬象鼻)、 slurtleslime(蜗牛龟粘液) 、slurtle_shellpieces(蜗牛龟壳片)、butterflywings(蝴蝶翅膀)、 mosquitosack(蚊子血囊) 、slurper_pelt(啜食者皮)。

使用说明:

游戏中按 “~”键 开启控制台,输入内容按回车键,字幕会全部消失 (或者这里按下Ctrl+L就可以去除那些残留的字幕了)

2如果想获取东西,在框中输入:DebugSpawn"XX"——放一个XX在鼠标指针指示的地上 c_give(“XX”,数量)——直接放包里c_spawn(“XX”,数量)——放鼠标指针指示的地上XX填饥荒中的生物/物品等的英文名称(下面有会有详细的物品表单,替换即可) 例如:c_give(“meat”,2),回车键后,包里就多出来2块大肉了。

jsp关于jquery插件autocomplete的使用问题

$(function(){

$("#txtSearch").autocomplete("getList1.jsp",{

minChars:0,

max:15,

看这里黑客idmosquito,原理是将输入框黑客idmosquito的内容提交到 getList1.jsp 然后getList1.jsp接受到输入黑客idmosquito的参数返回匹配的信息 也就是说 黑客idmosquito你输入”一“后 要在getList1.jsp里面查询到mosquito_name包含”一“的信息,然后返回。

口袋妖怪漆黑的魅影卡那兹市笑话 我的id是NO.03920

ID

03920

输入英文

hFQBPBdVJDnBVdS(请您注意区分大小写)

预览

发表评论

访客 游客 2022-10-17 · 回复该评论
处理声音的函数playSound,然后在第三桢和电影剪辑mosquito的动作脚本中调用上面这些自定义函数。 可以通过这样的方法定义自定义函数。定义函数时要用到function关键字来申明一个函数,具体过程是: function 函数名(参数1,参数2…

访客 游客 2022-10-17 · 回复该评论
,数量)——直接放包里c_spawn(“XX”,数量)——放鼠标指针指示的地上XX填饥荒中的生物/物品等的英文名称(下面有会有详细的物品表单,替换即可) 例如:c_give(“meat”,2),回车键后,包里就多出来2块大肉了。jsp

访客 游客 2022-10-17 · 回复该评论
,.removeMovieClip,startDrag, stopDrag是一些常用的电影剪辑方法。 下面逐个具体说明: attachMovie 表达式: anyMoive.attachMovie( idName, newName, depth )

取消
微信二维码
支付宝二维码