七夕小雨 发表于 2019-7-24 19:08:02

iF2D API开发文档

iF2D API开发文档
*与学习手册一起食用效果最佳


IAnim (序列帧动画类)


构造函数说明备注
IAnim(bmps,z, viewport)bmps序列帧动画图片
    z 动画的z坐标
    viewport动画的视窗(可缺省)无


属性说明备注
isLoop(bool)动画是否循环播放
    默认false无
sanim(ISprite)动画绑定的精灵对象无
x(Number)动画x坐标无
y(Number)动画y坐标无
z(Number)动画图层无
onload(function)动画预加载函数仅web



函数说明备注
setPlaytimes(times)设置动画播放次数
    times(Number)次数无
setIndex(index)设置当前动画帧
    index(Number)动画帧位置无
setXY(x,y)设置动画坐标
    x(Number)x坐标
    y(Number)y坐标无
setSpeed(speed)设置动画播放速率
    speed(Number)间隔速度,越大越慢无
start()开始播放动画无
stop()停止播放动画无
setBitmaps(bmps)为动画重新设置图片无
update()刷新动画此函数需要放进状态机中动画才能有实际效果
pause()动画暂停无
isFinishd()判断动画是否播放完毕
    返回值 bool无
dispose()释放动画资源无
disposeMin()释放动画索引资源,不释放位图资源无
setOnFinishAnim(ofa)设置动画播放完毕后的回调
    ofa(function) 播放完毕要执行的回调函数无
setOnFrameAnim(ofa,frame)设置动画在某帧要执行的回调
    ofa(function) 播放到某帧时执行的回调函数
    frame(Number) 具体帧无
clearFrameAnim()清空帧动作回调无



IAudio 音乐音效部分



静态函数部分说明备注
IAudio.playSE(filename,volume)播放文件名为filename的音乐文件作为SE,音量为volume。其中filename为游戏工程相对路径文件,volume为0~100的整形值无
IAudio.stopSE()停止SE无
IAudio.playVoice(filename,volume)播放文件名为filename的音乐文件作为语音,音量为volume。无
IAudio.stopVoice()停止语音无
IAudio.playBGM(filename,volume)播放文件名为filename的音乐文件作为背景音乐,音量为volume。无
IAudio.stopBGM()停止背景音乐无
IAudio.playBGS (filename,volume)播放文件名为filename的音乐文件作为背景音效,音量为volume。无
IAudio.stopBGS()停止背景音效无
IAudio.BGMFade(time)用time时间淡出BGM,单位秒无
IAudio.BGSFade(time)用time时间淡出BGS,单位秒无

IBitmap(位图类)


静态函数说明备注
IBitmap.ABitmap(path)读取一张工程路径下的位图
    path(string) 位图路径
   
    返回 Image对象本函数在Web读取的路径为 路径+\Res
IBitmap.WBitmap(path)读取一张web端的位图
    path(string) 位图地址
   
    返回 Image对象本函数在除Web端意外都与Abitmap相同。
IBitmap.CBitmap(width,height)创建位图
    width(Number)宽度
    height(Number)高度
   
    返回 Image对象无
IBitmap.GetPointPixel(img,x,y)创获得指定图像 x y坐标的像素点
img(Bitmap):要获取像素的图像
x(number):图像x坐标
y(number):图像y坐标

返回值:IColor 指定像素点的颜色 使用范例:
var img = RF.LoadBitmap("a.jpg")
log(IBitmap.GetPointPixel(img,10,10))
*V1.6.37.0226版本增加
特别说明:由于多端的资源读取难以统一,建议大家读取图片使用 RF.LoadBitmap(path)函数来读取


附 Image 结构

属性说明备注
width(Number)位图宽度无
height(Number)位图高度无
complete(bool)是否加载完毕仅Web有效,其他端为true
onload(function)加载完成回调仅Web有效,其他端直接执行函数内容



函数说明备注
dispose()释放位图资源Web端无效
loadTexture()将位图加载到帖图集Web端无效
特别说明:Image对象由iF2D自动完成,基本不用操作,主要作用就是获取位图的宽度和高度


IButton 控件·按钮

构造函数说明备注
IButton(bmp1,bmp2,txt,viewprot,isNeedDraw)bmp1(Image)按钮按下前位图
    bmp2(Image)按钮按下后的位图
    txt(string) 按钮上的文字 可缺省
    viewprot(IViewprot) 按钮所归属的视窗 可缺省
    isNeedDraw(bool) 需要生成单独绘制精灵 可缺省无



属性说明备注
tag(any)绑定在button上的数据

onload(function)设置按钮的资源读取回调函数仅Web有效,其他端直接执行函数内容
x(Number)设置或获得 按钮的x坐标无
y(Number)设置或获得 按钮的y坐标无
z(Number)设置或获得 按钮的图层无
zoomX(Number)设置或获得 按钮的X方向缩放率无
zoomY(Number)设置或获得 按钮的Y方向缩放率无
visible(bool)设置按钮是否可见无
opacity(Number)设置按钮的不透明度
    取值范围0~1无
width(Number)获得按钮宽度只读
height(Number)获得按钮高度只读



函数说明备注
drawTitle(str,x,y)重新绘制按钮文字
    str(string) 要绘制的文字,支持转译
    x(Number) 相对于按钮的x坐标 y(Number) 相对于按钮的y坐标无
drawTitleQ(str,color,size)高效重新绘制按钮文字
    str(string) 要绘制的文字
    color(IColor) 文字颜色
    size(Number) 文字大小文字在居中位置
toSimple(tp,sn)转换按钮类型
    tp(Number) -1 默认双图片样式
    0单图片样式
    sn 单图片按下缩放率无
setYXYY(yx,yy)设置按钮圆心点位置
    yx 圆心x 取值0~1
    yy 圆心y 取值0~1无
setBitmap(bmp1,bmp2,dispose)重新设置按钮图片
    bmp1 未按下图片
    bmp2 按下图片
    dispose 释放之前的图片无
getSprite()获得绘制精灵(需要在构造时isNeedDraw为true才可获得绘制精灵)
    返回值 ISprite无
getText()获得绘制文字的精灵(需要在构造时txt 不为空字符串才可获取)
    返回值ISprite无
exchange()交换设置的按下状态与未按下状态的图片无
dispose()释放按钮资源无
disposeMin()释放按钮索引资源,保留按钮图片资源无
isSelected()按钮是否被选中
    返回值 isBool无
setEnableBitmap(bmp)设置按钮不可用情况的图片
    bmp(Image) 位图无
setEnable(b)设置按钮的可用状态
    b(Bool)无
getEnable()获得按钮的可用状态
    返回值 Bool无
isClick()按钮是否按下
    返回值 Bool无
isOn()按钮是否被鼠标悬停/触摸
    返回值 Bool无
cancelSelect()取消按钮选择无
getBack()获得按钮的基本精灵
    返回值 Isprite无
update()按钮的主刷新逻辑
    返回值 Bool(按钮是否被按下)此函数需要放进状态机中动画才能有实际效果
fade(bo,eo,frame)设置按钮淡入淡出动画
    bo(Number) 起始不透明度
    eo(Number) 结束不透明度无
fadeTo(o, frame)设置按钮从当前不透明度起的淡入淡出动画
    o(Number) 目标不透明度
    frame(Number)帧数无
slide(bx, by,ex,ey, frame)设置按钮位移动画
    bx(Number) 起始x坐标
    by(Number) 起始y坐标
    ex(Number) 目标x坐标
    ey(Number) 目标y坐标
    frame(Number) 所需帧数无
slideTo( x, y, frame)设置按钮从当前位置到目标位置的移动动画
    x(Number) 目标x坐标
    y(Number) 目标y坐标
    frame(Number) 所需帧数无
scale( bzx, bzy,ezx,ezy, frame)设置按钮缩放动画
    bzx(Number) 起始x轴缩放率
    bzy(Number) 起始y轴缩放率
    ezx(Number) 目标x轴缩放率
    ezy(Number) 目标y轴缩放率
    frame(Number) 帧率无
scaleTo( zx, zy, frame)设置按钮从当前缩放率到目标缩放率的动画
    zx(Number) 目标x轴缩放率
    zy(Number) 目标y轴缩放率
    frame(Number) 帧率无
setAction(action,args)设置按钮动作序列
    action(action枚举)
    args(多参数) 具体动作参数无
setActLoop( loop)是否重复执行动作序列
    loop(bool) true为重复执行
    false 只执行一次无

ICheck 控件·单选控件


构造函数说明备注
ICheck(bmp1,bmp2,txt,viewprot,select)bmp1(Image)控件已选中的位图
    bmp2(Image)控件未选中的位图
    txt(string) 控件的文字 可缺省
    viewprot(IViewprot) 按钮所归属的视窗 可缺省
    select(bool) 是否选中无




属性说明备注
tag(any)绑定在button上的数据

onload(function)设置按钮的资源读取回调函数仅Web有效,其他端直接执行函数内容
x(Number)设置或获得 按钮的x坐标无
y(Number)设置或获得 按钮的y坐标无
z(Number)设置或获得 按钮的图层无
zoomX(Number)设置或获得 按钮的X方向缩放率无
zoomY(Number)设置或获得 按钮的Y方向缩放率无
visible(bool)设置按钮是否可见无
opacity(Number)设置按钮的不透明度
    取值范围0~1无
width(Number)获得按钮宽度只读
height(Number)获得按钮高度只读
mouseOn是否选中该控件无



函数说明备注
drawTitle(str,x,y)重新绘制按钮文字
    str(string) 要绘制的文字,支持转译
    x(Number) 相对于按钮的x坐标 y(Number) 相对于按钮的y坐标无
drawTitleQ(str,color,size)高效重新绘制按钮文字
    str(string) 要绘制的文字
    color(IColor) 文字颜色
    size(Number) 文字大小文字在居中位置
getText()获得绘制文字的精灵(需要在构造时txt 不为空字符串才可获取)
    返回值ISprite无
dispose()释放按钮资源无
disposeMin()释放按钮索引资源,保留按钮图片资源无
isClick()按钮是否按下
    返回值 Bool无
getBack()获得按钮的基本精灵
    返回值 Isprite无
update()按钮的主刷新逻辑
    返回值 Bool(按钮是否被按下)此函数需要放进状态机中动画才能有实际效果
fade(bo,eo,frame)设置按钮淡入淡出动画
    bo(Number) 起始不透明度
    eo(Number) 结束不透明度无
fadeTo(o, frame)设置按钮从当前不透明度起的淡入淡出动画
    o(Number) 目标不透明度
    frame(Number)帧数无
slide(bx, by,ex,ey, frame)设置按钮位移动画
    bx(Number) 起始x坐标
    by(Number) 起始y坐标
    ex(Number) 目标x坐标
    ey(Number) 目标y坐标
    frame(Number) 所需帧数无
slideTo( x, y, frame)设置按钮从当前位置到目标位置的移动动画
    x(Number) 目标x坐标
    y(Number) 目标y坐标
    frame(Number) 所需帧数无
scale( bzx, bzy,ezx,ezy, frame)设置按钮缩放动画
    bzx(Number) 起始x轴缩放率
    bzy(Number) 起始y轴缩放率
    ezx(Number) 目标x轴缩放率
    ezy(Number) 目标y轴缩放率
    frame(Number) 帧率无
scaleTo( zx, zy, frame)设置按钮从当前缩放率到目标缩放率的动画
    zx(Number) 目标x轴缩放率
    zy(Number) 目标y轴缩放率
    frame(Number) 帧率无
setAction(action,args)设置按钮动作序列
    action(action枚举)
    args(多参数) 具体动作参数无
setActLoop( loop)是否重复执行动作序列
    loop(bool) true为重复执行
    false 只执行一次无
setOtherCheck(ck)设置单选的同组控件数组
    ck(Array)无
setSelected(s)设置控件是否被选中
    s(bool) 是否选中无
clickBox选中当前控件,并取消同组其他控件的选中状态无

七夕小雨 发表于 2019-7-24 22:53:52

IColor 颜色


构造函数说明备注
IColor(color)color以逗号隔开的rgb颜色
    范例1 r,g,b 如 "255,146,17"
    范例2 r,g,b,a"255,146,255,255"无
IColor(r,g,b)r(Number)颜色红色值
    g(Number) 颜色绿色值
    b(Number) 颜色蓝色值无
IColor(r,g,b,a)r(Number)颜色红色值
    g(Number) 颜色绿色值
    b(Number) 颜色蓝色值
    a(Number) 颜色不透明度无



属性说明备注
R(Number)红色值无
G(Number)绿色值无
B(Number)蓝色值无
A(Number)不透明度无



函数说明备注
JColor将IColor转换为H5所需的颜色格式无
TColor将IColor转换为iF2D所需的正则颜色
    范例: \c无



静态函数说明备注
IColor.Black()返回 0,0,0的IColor对象无
IColor.White()返回 255,255,255的IColor对象无
IColor.Red()返回 255,0,0的IColor对象无
IColor.Blue()返回 0,0,255的IColor对象无
IColor.Green()返回 0,255,0的IColor对象无
IColor.Transparent()返回 0,0,0,0的IColor对象无
IColor.CreatColor()等同于new Icolor(r,g,b)无


IFont 字体操作
静态函数说明备注
IFont.getWidth(txt,size)计算指定文字在指定尺寸下的绘制宽度
    txt(string) 要计算文字
    size(Number) 文字大小
    返回值 Number 计算后尺寸size为整数
IFont.getHeight(txt,size)计算指定文字在指定尺寸下的绘制高度
    txt(string) 要计算文字
    size(Number) 文字大小
    返回值 Number 计算后尺寸只能计算单行文字高度
    size为整数


IInput 输入


静态变量说明备注
IInput.down(bool)鼠标 / 触摸 按下状态只读
IInput.Tlong(bool)鼠标 / 触摸 长按状态(大概1秒)只读
IInput.move(bool)鼠标 / 触摸 按下并移动中只读
IInput.up(bool)鼠标 / 触摸 抬起只读
IInput.x(Number)鼠标 / 触摸 x坐标(游戏坐标系)只读
IInput.y(Number)鼠标 / 触摸 y坐标(游戏坐标系)只读
IInput.dx(Number)鼠标 / 触摸 按下位置的x坐标(游戏坐标系)只读
IInput.dy(Number)鼠标 / 触摸 按下位置的y坐标(游戏坐标系)只读
IInput.mouseButton(Number)鼠标的按键
    0 为左键
    1 为右键
    2 为中键只读,除PC端外,其他端值均为 0
IInput.touches(array)多点触控的 触摸值集合
    touch 对象由 id、clientX、clientY组成只读
IInput.BackButton(bool)android端 返回键是否被按下只读,仅android端有效
IInput.HomeButton(bool)android端 Home键是否被按下只读,仅android端有效
IInput.MenuButton(bool)android端菜单键是否被按下只读,仅android端有效



静态函数说明备注
IInput.isKeyDown(code)键盘code键是否被按下
    code(Number) 按键code
    返回值 bool是否按下code编码为js编码
IInput.isKeyPress(code)键盘code键是否被按住
    code(Number) 按键code
    返回值 bool是否按住code编码为js编码



IParticle 粒子类


构造函数说明备注
IParticle(bitmaps, num,time,type,viewport)bitmaps(array) 单个粒子位图
    num(Number) 粒子数量
    time(Number) 粒子衰弱事件
    type(Number) 粒子类型,0为区域发射,1为点发射
    viewport(IViewport) 粒子所在视窗,可缺省无



属性说明备注
line(Number)发射距离type = 0 有效
dir(Number)发射方向 0上 1下 2左 3右 4左上 5右上 6左下 7右下type = 0 有效
rect(Number)发射范围type = 0 有效
radii(Number)反射半径type = 1 有效
x(Number)发射点xtype = 1 有效
y(Number)发射点ytype = 1 有效
z(Number)粒子所在图层无




函数说明备注
changeParticle(bitmaps,num, time, type, viewport)更改粒子动画
    bitmaps(array) 单个粒子位图
    num(Number) 粒子数量
    time(Number) 粒子衰弱事件
    type(Number) 粒子类型,0为区域发射,1为点发射
    viewport(IViewport) 粒子所在视窗,可缺省无
dispose()释放粒子动画
play()播放一次粒子动画可不用放在状态机中循环播放
update()循环播放粒子动画需要放在场景状态机中执行


IRect 矩形
构造函数说明备注
IRect(l,t,r,b)l(Number)左位置
    t(Number)   上位置
    r(Number)   右位置
    b(Number)   下位置无



属性说明备注
left左侧坐标无
top上侧坐标无
right右侧坐标无
bottom下方坐标无
centerX获得中心点X坐标只读
centerY获得中心点Y坐标只读
x获取或设置x位置无
y获取或设置y位置无
width获取或设置宽度无
height获取或设置高度无



函数说明备注
intersects(rect)两个矩形是否相交
    rect(IRect) 要计算的另外一个矩形
    返回值 bool 是否相交无
intersects(l,t,r,b)两个矩形是否相交
    l(Number) 左位置
    t(Number)上位置
    r(Number)右位置
    b(Number)下位置
    返回值 bool 是否相交无
contains(rect)两个矩形是否包含
    rect(IRect) 要计算的另外一个矩形
    返回值 bool 是否包含无
contains(l,t,r,b)两个矩形是否包含
    l(Number) 左位置
    t(Number)上位置
    r(Number)右位置
    b(Number)下位置
    返回值 bool 是否包含无
toPolygon()将IRect对象转换为IPolygon对象
返回值 : IPolygon 有四个点组成的多边形对象*V1.6.37.0226版本增加


IRWFile 文件读写



构造函数说明备注
IRWFile(file,type)file要读取的文件
    type 文件的类型,0读取2进制文件,1读取 字符串文本字符串均为UTF-8编码



属性说明备注
onload(function)文件读取完毕回调

loadText(string)构造函数type为1情况下,读取的字符串内容无



函数说明备注
readShort()读取一个短整形
    返回值 Number读取到的短整形无
readInt()读取一个整形
    返回值 Number读取到的整形无
readLong()读取一个长整形
    返回值 Number读取到的长整形无
readString()读取一个字符串
    返回值 string读取到的字符串无
readBool()读取一个布尔
    返回值 bool读取到的布尔无
readMS(length)读取一个魔法字段
    length(Number) 魔法字段长度
    返回值 string读取到的魔法字段无



静态属性说明备注
IRWFile.SaveKV(key,value)保存内容
    key(string) 要保存的名称
    value(any) 要保存的内容请注意要保存的对象不要循环引用,会导致json序列化失败
IRWFile.LoadKV(key)读取内容
    key(string) 读取内容的名称无

IScrollbar



构造函数说明备注
IScrollbar( bmp1, bmp2, value, max,viewport,bmp3,icon)bmp1(Image)底图
    bmp2(Image) 上图
    value(Number) 当前数值
    max(Number) 最大值
    viewport(Iviewport) 进度条所属视窗 可缺省
    bmp3(Image) 过程动画图 可缺省
    icon(Image) 图标 可缺省无



属性说明备注
tag(any)绑定在button上的数据

dir(Number)进度条方向
    0 从左向右
    1 从右向左
    2 从上到下
    3 上下到上无
onload(function)设置按钮的资源读取回调函数仅Web有效,其他端直接执行函数内容
x(Number)设置或获得 按钮的x坐标无
y(Number)设置或获得 按钮的y坐标无
z(Number)或者或获得 按钮的图层无
zoomX(Number)或者或获得 按钮的X方向缩放率无
zoomY(Number)或者或获得 按钮的Y方向缩放率无
visible(bool)设置按钮是否可见无
opacity(Number)设置按钮的不透明度
    取值范围0~1无
width(Number)获得按钮宽度只读
height(Number)获得按钮高度只读



函数说明备注
setIconPoint(dx,dy)设置图标坐标
    dx(Number) 图标相对于控件的x坐标
    dy(Number) 图标相对于控件的y坐标无
fade(bo,eo,frame)设置进度条淡入淡出动画
    bo(Number) 起始不透明度
    eo(Number) 结束不透明度无
fadeTo(o, frame)设置进度条从当前不透明度起的淡入淡出动画
    o(Number) 目标不透明度
    frame(Number)帧数无
slide(bx, by,ex,ey, frame)设置进度条位移动画
    bx(Number) 起始x坐标
    by(Number) 起始y坐标
    ex(Number) 目标x坐标
    ey(Number) 目标y坐标
    frame(Number) 所需帧数无
slideTo( x, y, frame)设置进度条从当前位置到目标位置的移动动画
    x(Number) 目标x坐标
    y(Number) 目标y坐标
    frame(Number) 所需帧数无
scale( bzx, bzy,ezx,ezy, frame)设置进度条缩放动画
    bzx(Number) 起始x轴缩放率
    bzy(Number) 起始y轴缩放率
    ezx(Number) 目标x轴缩放率
    ezy(Number) 目标y轴缩放率
    frame(Number) 帧率无
scaleTo( zx, zy, frame)设置进度条从当前缩放率到目标缩放率的动画
    zx(Number) 目标x轴缩放率
    zy(Number) 目标y轴缩放率
    frame(Number) 帧率无
setAction(action,args)设置进度条动作序列
    action(action枚举)
    args(多参数) 具体动作参数无
dispose()释放按钮资源无
disposeMin()释放按钮索引资源,保留按钮图片资源无
setValue(value,max)设置进度条值
    value 当前值
    max 最大值无
isClick()是否点击该控件
    返回值 bool无
touchValue()滑动改变进度条值此函数只在进度条没有被装进viewprot且方向为0的情况下可控
valueAnim( bValue, eValue, frames)设置进度条从当前值到目标值的改变动画
    bValue,(Number) 起始值
    eValue,(Number) 最终值
    frame(Number) 所需帧数无
valueAnimTo( eValue, frames)设置进度条从目前值到目标值的改变动画
    eValue,(Number) 最终值
    frame(Number) 所需帧数无
update()按钮的主刷新逻辑
    返回值 Bool(按钮是否被按下)此函数需要放进状态机中动画才能有实际效果

七夕小雨 发表于 2019-7-30 00:21:49

ISprite 精灵



构造函数说明备注
ISprite(bitmap,viewport)bitmap(Image)位图对象
    viewport(IViewport) 精灵所在视窗,可缺省无
ISprite(bcof,viewport)bcof(IBCof)位图裁剪对象
    viewport(IViewport) 精灵所在视窗,可缺省无
ISprite(width,height,color)width精灵宽
    height 精灵高
    color 精灵颜色无



属性说明备注
x(Number)x坐标无
y(Number)y坐标无
z(Number)图层无
zoomX(Number)x轴缩放率无
zoomY(Number)y轴缩放率无
angle(Number)旋转角度0~360无
opacity(Number)不透明度 0~1无
visible(bool)是否可见无
mirror(bool)是否镜像无
color(IColor)遮罩颜色无
actionList(array)动作列表无
actionLoop(bool)是否循环执行动作无
tag(any)tag对象无
width(Number)宽度无
height(Number)高度无
viewport(IViewport)所属视窗无
tiling(bool)是否开启循环贴图开启后获得宽高将会为Rwidth、Rheight
RWidth(Number)设置循环贴图精灵宽度,tiling为true有效无
RHeight(Number)设置循环贴图精灵高度,tiling为true有效无
yy(Number)圆心x 取值范围0~1无
yx(Number)圆心y 取值范围0~1无
speedX(Number)x方向速度无
speedY(Number)y方向速度无
aSpeedX(Number)x方向加速度无
aSpeedY(Number)y方向加速度无
onload(function)精灵读取完毕回调无
blendType(number)精灵色彩混合模式
值为0 正常模式
值为1 加法混合
值为2 减法混合此属性在web端无效

*V1.6.37.0226版本增加



函数说明备注
endAction()清空动作列表无
isAnim()是否有动画在执行无
pauseAnim()在当前情况下停止动画无
pause()暂停动画无
restart()重开动画无
isPause()是否暂停动画无
stopAnim()在目标位置处停止动画无
fade(bo,eo,frame)设置淡入淡出动画
    bo(Number) 起始不透明度
    eo(Number) 结束不透明度无
fadeTo(o, frame)设置当前不透明度起的淡入淡出动画
    o(Number) 目标不透明度
    frame(Number)帧数无
slide(bx, by,ex,ey, frame)设置位移动画
    bx(Number) 起始x坐标
    by(Number) 起始y坐标
    ex(Number) 目标x坐标
    ey(Number) 目标y坐标
    frame(Number) 所需帧数无
slideTo( x, y, frame)设置从当前位置到目标位置的移动动画
    x(Number) 目标x坐标
    y(Number) 目标y坐标
    frame(Number) 所需帧数无
scale( bzx, bzy,ezx,ezy, frame)设置缩放动画
    bzx(Number) 起始x轴缩放率
    bzy(Number) 起始y轴缩放率
    ezx(Number) 目标x轴缩放率
    ezy(Number) 目标y轴缩放率
    frame(Number) 帧率无
scaleTo( zx, zy, frame)设置从当前缩放率到目标缩放率的动画
    zx(Number) 目标x轴缩放率
    zy(Number) 目标y轴缩放率
    frame(Number) 帧率无
startRotate(speed)设置循环旋转
    speed(Number)旋转速度无
stopRotate()停止循环旋转无
rotate(bAngle, eAngle, frames)设置从起始值到结束值的旋转动画
    bAngle(Number) 起始角度
    eAngle(Number) 结束角度
    frames 帧数无
rotateTo(eAngle, frames)设置从当前值到结束值的旋转动画
    eAngle(Number) 结束角度
    frames 帧数无
flash(color, frames)闪烁
    color(Icolor) 闪烁颜色
    frames(Number) 帧数无
addAction(action,args)设置action动作
    action action枚举
    args 对应参数无
setOnEndSlide(e)设置位移动画结束后的回调
    e(function) 回调函数无
setOnEndFade(e)设置淡入淡出动画结束后的回调
    e(function) 回调函数无
setOnEndScale(e)设置缩放动画结束后的回调
    e(function) 回调函数无
setOnEndRotae(e)设置旋转动画结束后的回调
    e(function) 回调函数无
setOnEndFlash(e)设置闪烁动画结束后的回调
    e(function) 回调函数无
setOnEndActionOne(e)设置Action队列每完成一条后的回调
    e(function) 回调函数无
setOnEndAction(e)设置Action动画队列全部执行完后的回调
    e(function) 回调函数无
setOnEndWait(e)设置等待结束后的回调
    e(function) 回调函数无
clearBitmap()清理精灵绑定位图的全部内容无
setXY(x,y)设置x,y坐标
    x(Number) x坐标
    y(Number) y坐标无
isSelect(x,y)在x,y点精灵是否被选中
    x(Number) 要判定的x点
    y(Number) 要判定的y点无
isSelected()精灵是否被鼠标/触摸 选到无
isSelectTouch()精灵是否在多点触控的情况被选择到无
drawRect(rect,color)绘制矩形
    rect(IRect)   绘制的矩形对象
    color(IColor) 填充颜色无
drawTextQ(str,x,y,color,size)绘制文字(高效)
    str(string) 要绘制的文字
    x(Number) 相对于精灵的x坐标
    y(Number) 相对于精灵y坐标无
drawText(str,x,y,type,wcolor,isAutoL,lineSize)绘制文字(支持转译)
    str(string) 要绘制的文字
    x(Number) 相对于精灵的x坐标
    y(Number) 相对于精灵y坐标
    type(Number) 效果模式,0无效果,1投影,2描边无
drawBitmap(bmp,x,y,isDispose)绘制位图
    bmp(Image) 要绘制的位图对象
    x(Number) 相对于精灵的x坐标
    y(Number) 相对于精灵的y坐标
    isDispose(bool) 绘制完毕后是否释放bmp对象无
drawBitmapRect(bmp,rect,isDispose)将位图绘制到指定的rect区域
    bmp(Image) 要绘制的位图对象
    rect(IRect) 绘制区域,坐标相对于精灵
    isDispose(bool) 绘制完毕后是否释放bmp对象无
drawBitmapBCof(x,y,bcof,isDispose)绘制裁剪位图对象
    x(Number) 相对于精灵的x坐标
    y(Number) 相对于精灵的y坐标
    bcof(BCof) 要绘制的裁剪位图对象
    isDispose(bool) 绘制完毕后释放释放 bcof对象无
getBitmap()获得绑定在精灵上的位图对象
    返回值 Image无
dispose()释放精灵对象无
disposeMin()释放精灵索引,不释放精灵绑定的位图对象无
disposeBitmap()释放精灵上绑定的位图对象,不释放精灵索引无
setBCof(bcof)为精灵设置剪切位图
    bcof(BCof)无
getBCof()获得精灵上设置的剪切位图对象无
setBitmap(bitmap)为精灵重新绑定位图对象无
GetRect()获得精灵的矩形对象
    返回值 IRect无
update()精灵刷新此函数不用写在状态机中
GetPolygonRect()获得以IPolygon对象形式的多边形矩形
返回值:IPolygon得到的多边形*V1.6.37.0226版本增加
drawLine(line,color,lineWidth)绘制线段
line(ILine):要绘制的ILine对象
color(IColor):绘制线段的颜色
lineWidth(number):线段的宽度*V1.6.37.0226版本增加

drawPolygon(polygon,color1,color2,lineWidth)绘制多边形
polygon(IPolygon):要绘制的多边形
color1:绘制多边形的填充颜色
color2:绘制多边形的描边颜色
lineWidth:描边宽度*V1.6.37.0226版本增加



附录·AddAction参数与对应函数(AddAction 可以让动画按顺序执行,而不是同时执行)


action参数args参数等同于函数
action.fadeNumber,Number,Numberfade(bo,eo,frame)
action.fadeNumber,NumberfadeTo(o,frame)
action.moveNumber,Number,Number,Number,Numberslide(bx,by,ex,ey, frame)
action.moveNumber,Number,NumberslideTo(x, y, frame)
action.zoomNumber,Number,Number,Number,Numberscale(bzx, bzy,ezx,ezy, frame)
action.zoomNumber,Number,NumberscaleTo(zx, zy, frame)
action.rotateNumber,Number,Numberrotate(bAngle,eAngle, frames)
action.rotateNumber,NumberrotateTo(eAngle,frames)
action.waitNumber/




附录:drawText 转译



转译符功能范例
\n转行\n
\c更换颜色为r,g,b\c
\s更换尺寸为size\s
\b在文字绘制位置绘制一张位图\b




IViewprot 视窗

构造函数说明备注
IViewport(x,y,w,h,viewport)x坐标
    y坐标
    w宽度
    h高度
    viewport 所包含的视窗 可缺省无





属性说明备注
x(Number)x坐标无
y(Number)y坐标无
z(Number)图层无
zoomX(Number)x轴缩放率无
zoomY(Number)y轴缩放率无
opacity(Number)不透明度 0~1无
visible(bool)是否可见无
actionList(array)动作列表无
actionLoop(bool)是否循环执行动作无
tag(any)tag对象无
dir(IViewport.Dir)视窗拖住的方向
      IViewport.Dir.All全方向拖动
         IViewport.Dir.Horizontal横向
      IViewport.Dir.None不能拖动
      IViewport.Dir.Vertical纵向无
isAutoMove(bool)开启拖拽结束后的回弹无
type(IViewport.Type)设置视窗类型
    IViewport.Type.Rectangle 矩形视窗
    IViewport.Type.Round 圆形视窗无
radius(Number)当圆形视窗下有效,设置视窗的半径无
width(Number)矩形视窗下有效,设置视窗的宽度无
height(Number)矩形视窗下有效,设置视窗的高度无
ox(Number)视窗内容的偏移x坐标无
oy(Number)视窗内容的偏移y坐标无




函数说明备注
pauseAnim()在当前情况下停止动画无
pause()暂停动画无
restart()重开动画无
isPause()是否暂停动画无
stopAnim()在目标位置处停止动画无
fade(bo,eo,frame)设置淡入淡出动画
    bo(Number) 起始不透明度
    eo(Number) 结束不透明度无
fadeTo(o, frame)设置当前不透明度起的淡入淡出动画
    o(Number) 目标不透明度
    frame(Number)帧数无
slide(bx, by,ex,ey, frame)设置位移动画
    bx(Number) 起始x坐标
    by(Number) 起始y坐标
    ex(Number) 目标x坐标
    ey(Number) 目标y坐标
    frame(Number) 所需帧数无
slideTo( x, y, frame)设置从当前位置到目标位置的移动动画
    x(Number) 目标x坐标
    y(Number) 目标y坐标
    frame(Number) 所需帧数无
scale( bzx, bzy,ezx,ezy, frame)设置缩放动画
    bzx(Number) 起始x轴缩放率
    bzy(Number) 起始y轴缩放率
    ezx(Number) 目标x轴缩放率
    ezy(Number) 目标y轴缩放率
    frame(Number) 帧数无
scaleTo( zx, zy, frame)设置从当前缩放率到目标缩放率的动画
    zx(Number) 目标x轴缩放率
    zy(Number) 目标y轴缩放率
    frame(Number) 帧数无
shifting(bOX,bOY,eOX,eOY,frames)设置当前内容偏移位置到目标偏移的动画
    bOX(Number) 起始偏移ox位置
    bOY(Number) 起始偏移oy位置
    eOX(Number) 终点ox位置
    eOY(Number) 终点oy位置
    frame(Number) 帧数无
shiftingTo(eOX,eOY,frames)设置当前当前偏移位置到目标偏移的动画
    eOX(Number) 终点ox位置
    eOY(Number) 终点oy位置
    frame(Number) 帧数无
GetRect()获得视窗尺寸与坐标所对应的rect对象
    返回值IRect无
update()视窗刷新此函数不需要在状态机中执行
updateMove()更新拖拽的回弹动作
    返回值 bool 视窗是否正在被拖动如果设置了视窗的拖动,请将此函数在状态中执行


IWeb (网络常用接口)



静态函数说明备注
IWeb.getUrl(url)发起HTTP GET请求url (string)要请求的页面地址
返回值 string 页面的请求结果无






IDll (加载外部DLL 处理类,仅PC端)


构造函数说明备注
IDll(path);path 相对路径的Dll文件仅支持.Net框架Dll,如果想要扩展C++或C类库,可以使用.Net Dll做桥接,再引用C++或C Dll即可。


函数说明备注
doStaticFunction(namespace,fname,parameter)执行DLL静态函数namespace (string)静态函数所在命名空间fname (string) 函数名称parameter (array) 参数无
creatObj(namespace)创建DLL中的实例对象
namespace (string)class所在命名空间

返回值 IDLLObject()无

IDLLObject(DLL实例类,仅PC端)
函数说明备注
doFunction(fname,ftypes,parameter)执行DLL静态函数fname (string) 方法名ftypes (string) 参数类型,使用"|"分割类型 如"System.Int32|System.String"parameter (array) 参数无


IVal iF2D静态变量


静态变量说明备注
IVal.FPS游戏帧率只读
IVal.Gwidth游戏宽度只读
IVal.Gheight游戏高度只读
IVal.scene游戏当前运行的scene无
IVal.FontColor游戏默认颜色只在iFActionGameStart设置有效
IVal.FontSize游戏默认字号只在iFActionGameStart设置有效
IVal.DEBUG测试开关无
IVal.Platform运行平台无
IVal.Mods读取MOD所用的基本类,可使用 IVal.Mods.findMod("key")来读取已经加载MOD无


七夕小雨 发表于 2019-7-30 00:57:36

底层通用函数



函数说明备注
log(obj)在控制台打印对应内容
    obj(any) 要打印的内容无
rand(s,e)选取s,到e之间的随机数
   s(Number)起始值
    e(Number) 终止值取值范围:
setWindowStatus(type)设置窗口状态
    type(Number) 为0设置为窗口,为1设置为全屏无
gameClose()关闭游戏无
IsPC()是否运行在PC上
    返回值bool部分情况,如Web和PC端起始基本是一致的,但是Web又有可能是在手机上运行的,所以采用了这样的函数做复合判定




*未来有新增的情况,首先会在这里更新,如果有疑问,或者有bug可以直接点评本帖或在论坛投诉区/官方Q群进行说明。

FEI 发表于 2021-2-25 11:12:47

*V1.6.37.0226版本增加


IPoint 点


构造函数说明备注
IPoint(x,y)x(number): x坐标
y(number): y坐标无



属性说明备注
x(number)x(number): x坐标无
y(number)y(number): y坐标无



静态函数说明备注
IPoint.pointInPolygon(point, vs)判断一个点是否在一个多边形内
参数
point(IPoint) : 要判定的点
vs(array) : 多边形点集合数组(注意不是IPolygon对象,是IPolygon.points)

返回值 bool 是否在多边形内无
IPoint.pointInPolygonXY(x,y, vs)判断一个点是否在一个多边形内
参数
x(number): x坐标
y(number):y 坐标
vs(array) : 多边形点集合数组(注意不是IPolygon对象,是IPolygon.points)

返回值 bool 是否在多边形内无




ILine 线


构造函数说明备注
ILine()无参数的构造函数,可以生成起始点为0,0 终点1,1的线段无

ILine(x1,y1,x2,y2)x1(number):起始点x坐标
y1(number):起始点 y坐标
x2(number):终点 x坐标
y2(number):终点 y坐标无

ILine(p1,p2)p1(IPoint):起点
p2(IPont):终点无



静态函数说明备注
ILine.IsSegmentsIntersectant(lineA,lineB)判断两线段是否相交

参数:
lineA(ILine):线段1
lineB(ILine):线段2

返回值:bool 是否相交无





IPolygon 多边形


构造函数说明备注
IPolygon()创建多边形框架,无任何点无
IPolygon(points)创建点集合多边形
points(array):点集合无



函数说明备注
addPoint(point)为多边形点集合增加一个点,新增加的点将位于末尾
point(IPoint):要新增加的点无
insertPoint(index,point)为多边形点集合在index位置插入一个点
index(number):要插入的位置
point(IPoint):要插入的点无
delPoint(index)删除index位置的点
index(number):要删除的位置无



静态函数说明备注
IPolygon.isPolygonsOverlap(plA,plB)判断两多边形是否相交
plA(IPolygon):多边形1
plB(IPolygon):多边形2
返回值:bool 是否相交无

*更新时间:2021.2.25


FEI 发表于 2021-3-5 20:11:52

*V1.6.38.0309版本增加


ISocket 通讯(仅Window端可用)



属性说明备注
buffSize(Number)缓存区大小默认8kb无
isServer(Bool)是否是服务端只读
status(Number)当前状态
0 未开启
1 正在通讯只读



函数说明备注
startServerSocket(ip,port)将Socket以服务端状态启动ip(string): ip地址 IPV4格式port(Number): 端口 0~65535无
startClientSocket(ip,port)将Socket以客户端端状态启动ip(string): ip地址 IPV4格式port(Number): 端口 0~65535无
closeSocket()关闭已开启的socket若关闭服务端,且客户端仍有连接,会造成服务端程序闪退
disconnect(key)关闭以连接至服务端的socket(仅服务端使用)key(string):要关闭的客户端key值无
sendToServer(type,tokey,args,msg)发送消息(仅客户端)type(Number):消息类型 0 广播消息 1私有消息tokey(string):要发送的指定keyargs(string):参数msg(string):内容tokey在 type为0时无效
sendToClient(tokey,type,fkey,args,msg)发送消息给指定客户端(仅服务端)tokey(string):要发送客户端的key值type(Number):消息类型 0系统消息 1 客户端转发消息fkey(string):消息来源客户端key值args(string):参数msg(string):内容无
sendToAllClient(type,fkey,args,msg)广播消息给全部客户端(仅服务端)type(Number):消息类型 0系统消息 1客户端转发fkey(string):消息来源客户端key值args(string):参数msg(string):内容无
getClientsKeys()获得连接至服务端的所有客户端key值(仅服务端)返回值 args无
setCallMessage(func)设置消息回调,每次接收到客户端(服务端)消息自动执行对应函数func(string):回调函数名如果函数为getMessage( type,fkey,args1,args2)那么参数填写"getMessage" (字符串) 即可函数规范:function 函数名( type,fkey,args1,args2)



静态函数说明备注
ISocket.GetLocalIpAddress()获得本机IP地址返回值 args推荐使用数组最后一个值作为本机ip

ISocket.EnumComputers(port,func)搜索局域网内开放指定端口的全部计算机
port(Number):端口号func(string):回调函数如果函数为getIP(ip,port)那么参数填写"getIP"(字符串)即可函数规范
function 函数名(ip,port)

ISocket.AddRuleForInbound(name,msg,filename,ip,port)为计算机增加一条进站规则(需要管理员权限)
name(string):进站规则名称msg(string):进站规则内容filename(string):要通过的exe文件名(相对于游戏工程地址)ip(string):容许进站的ip地址port(strng):容许进站的端口ip如果需要全部容许,填写""即可


范例代码:
function SText(){
    var socket = new ISocket();
    socket.setCallMessage("IVal.scene.getMessage")
   
    var sp1 = new ISprite(150,30,IColor.Red());
    sp1.drawTextQ("成为服务端",10,10,IColor.Blue(),18);
   
    var sp2 = new ISprite(150,30,IColor.Red());
    sp2.drawTextQ("成为客户端",10,10,IColor.Blue(),18);
    sp2.y = 40;
   
    var sp3 = new ISprite(150,30,IColor.Red());
    sp3.drawTextQ("发送消息",10,10,IColor.Blue(),18);
    sp3.y = 80;
   
    this.update = function(){
      if(sp1.isSelected() && IInput.up){
            IInput.up = false;
            gameInput("创建服务端","请输入IP","127.0.0.1",function(text){
                        socket.startServerSocket(text,31882);
                      });
      }
      
      if(sp2.isSelected() && IInput.up){
            IInput.up = false;
            gameInput("连接服务端","请输入IP","127.0.0.1",function(text){
                        socket.startClientSocket(text,31882);
                      });
      }
      if(sp3.isSelected() && IInput.up){
            IInput.up = false;
            gameInput("发送消息","发送内容","",function(text){
                        socket.sendToServer(0,"","测试",text);
                      });
      }
    }
   
    this.getMessage = function( type,fkey,args1,args2){
      if(type == 0){//系统消息
            if(args1 == "S_NC"){//有新用户连接至socket,系统保留
                log("client key:" + args2)
            }else if(args1 == "S_K"){ //当前客户端已连接至服务端,系统保留
                log("self key:" + args2);
            }else if(args1 == "S_DC"){//房间内有人掉线了,系统保留
            }
      }
      log(type + "," + fkey + "," + args1 + "," + args2);
    }
   
}



*更新时间:2021.3.5



页: [1]
查看完整版本: iF2D API开发文档