标题: [某D的KRKR笔记本]丢那么几个可能有用的小函数
全局变量D
亲友
Rank: 2



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2007-3-4 14:36  资料  短消息  加为好友 
[某D的KRKR笔记本]丢那么几个可能有用的小函数

没什么大不了的小东西...

二楼:按钮选项
三楼:图片悬停效果
四楼:游戏档案是否存在的判断
六楼:按钮选项·改
十三楼:游戏日期系统
十六楼:游戏中截图
十八楼:变量和字典相关
十九楼:按钮选项自动对齐
二十楼:图片使用另外一张图片的遮罩(发展可做探照灯等效果)

[ 本帖最后由 全局变量D 于 2012-5-11 20:13 编辑 ]





顶部
全局变量D
亲友
Rank: 2



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2007-3-4 14:46  资料  短消息  加为好友 
按钮式选项·改
加了阴影,调了字体,顺便一说无聊的可以继续发扬光大改出可以换颜色的……

原版来自:http://homepage1.nifty.com/gutchie/kirikiri_kag2/faq.html

@iscript
//
// 机能概要:
//   在按钮中央描绘文字
//
// 参数:
//   button  …按钮名(LinkButtonLayerまたはサブクラスのオブジェクト)
//   caption … 描绘的文字
//   size    …   文字的大小
//
// 返回值:
//   无
//
// 備考:
//   ‐エラーチェックは行っていない
//
function drawButtonCaption(button, caption, size)
{

button.font.face = "楷体_GB2312"; //改字体的地方...
button.font.height = size;     //文字大小设定
var w = button.font.getTextWidth(caption); // 取得要描绘文字的宽度
var x = (button.width - w) \ 2;    // 在按钮中央显示文字
var y = (button.height - size) \ 2;   //   文字在按钮上的y位置(左上角起算)

// 按钮「通常状态(normal)」部分文字显示
button.drawText(x+1,                           y+1, caption, 0x000000); //这里我加了阴影
button.drawText(x,                           y, caption, 0xFFFFFF);


// 按钮「按下状态(on)」部分文字显示
button.drawText(x+button.width+1,      y+1, caption, 0x000000);//还是阴影
button.drawText(x+button.width,              y, caption, 0xC8C8C8);

// 按钮「选中状态(over)」部分文字显示
button.drawText(x+button.width+button.width+1, y+1, caption, 0x000000);//继续阴影
button.drawText(x+button.width+button.width, y, caption, 0xC8C8C8);

}
@endscript

;用法:

[button normal=选择框图片 target=*标签]
[eval exp="drawButtonCaption(kag.current.links[kag.current.links.count-1].object, '选项文字', 24)"]

[ 本帖最后由 全局变量D 于 2011-10-29 17:15 编辑 ]





顶部
全局变量D
亲友
Rank: 2



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2007-3-4 14:50  资料  短消息  加为好友 
============================================
图片悬停效果(可用、但推荐使用加强版)
============================================
移动到按钮上在某个位置显示另外一张图片……
话说这有个问题就是记得退出这个界面的时候判断一下,如果这图片层存在就把它清了。(防止有人在按钮上按右键……)

[iscript]

function iconShow(pic)
{
tf.newLayer=new Layer(kag, kag.fore.base);
tf.newLayer.visible=true;
tf.newLayer.loadImages(pic);
tf.newLayer.setSizeToImageSize();
tf.newLayer.setPos(86,173);
}
function iconHide()
{
tf.newLayer.visible=false;
invalidate tf.newLayer;
}

[endscript]

;用法
[button normal="按钮图片" onenter="iconShow(悬停图片名)" onleave=iconHide()]

============================================
图片悬停效果制作加强版
============================================

[iscript]
//-----------------------------------------------
//存档截图悬停效果
//-----------------------------------------------
function showsnap(num)
{
//显示截图,支持属性同image TAG,可以继续以相同格式添加属性(如可以设定透明度等……)
kag.fore.layers[1].loadImages(%['storage'=>kag.getBookMarkFileNameAtNum(num),'visible'=>true,'left'=>34,'top'=>192]);
}

function hidesnap()
{
//隐藏截图
kag.fore.layers[1].visible=false;
}
[endscript]

使用例:
;用法:档案编号处填写该按钮所对应的存档编号数
[button normal="按钮图片" onenter="showsnap(档案编号)" onleave=hidesnap()]

以下连接的10楼则是不用自写函数的做法(直接复制可用):
http://kcddp.keyfc.net/bbs/viewthread.php?tid=62

[ 本帖最后由 全局变量D 于 2008-7-22 22:24 编辑 ]





顶部
全局变量D
亲友
Rank: 2



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2007-3-4 14:52  资料  短消息  加为好友 
;----------------------------------------------------------------------------------------
;档案/截图存在确认+显示
;----------------------------------------------------------------------------------------
;pimage命令不适用,理由不明……

[iscript]
function storagedata(num)
{
var sd=kag.saveDataLocation+'/data'+num+'.bmp';
return sd;
}
function checkdata(num)
{
var cd=Storages.isExistentStorage(kag.saveDataLocation+'/data'+num+'.bmp');
return cd;
}
[endscript]

;用法
[image layer=9 storage="&storagedata(0)" cond="checkdata(0)==true"]





顶部
希德船长
幕后黑手
Rank: 4


UID 11
精华 1
积分 273
帖子 214
阅读权限 255
注册 2006-12-8
 
发表于 2007-3-5 11:33  资料  短消息  加为好友  添加 希德船长 为MSN好友 通过MSN和 希德船长 交谈 QQ
关于那个时间槽,我建议测试一下下面的操作:
先timebar,然后endtimebar,然后再次timebar。

如果出现异常,可以考虑把两个“invalidate timer;”去掉

顶部
希德船长
幕后黑手
Rank: 4


UID 11
精华 1
积分 273
帖子 214
阅读权限 255
注册 2006-12-8
 
发表于 2007-3-5 11:57  资料  短消息  加为好友  添加 希德船长 为MSN好友 通过MSN和 希德船长 交谈 QQ
按钮式选项-Mk3

添加了指定各种状态的文字和阴影颜色的功能。

好吧,我承认我无聊。。。。。。。

@iscript
//
// 機能概要:
//   在按钮中央描绘文字
//
// 引数:
//   button  … ボタンレイヤ(LinkButtonLayerまたはサブクラスのオブジェクト)
//   caption … 描画する文字列
//   size    … フォントの文字高さ(ピクセル)
//
// 戻り値:
//   なし
//
// 備考:
//   ‐エラーチェックは行っていない
//
function drawButtonCaption(button, caption, size, normalcolor, normalshadowcolor, oncolor, onshadowcolor, selectedcolor, selectedshadowcolor)
{
      button.font.face = "楷体_GB2312"; //改字体的地方...
button.font.height = size;     //文字大小设定
var w = button.font.getTextWidth(caption); // 取得要描绘文字的宽度
var x = (button.width - w) \ 2;    // 在按钮中央显示文字
var y = (button.height - size) \ 2;   //   文字在按钮上的y位置(左上角起算)

// 按钮「通常状態」部分文字显示
button.drawText(x+1,                           y+1, caption, normalshadowcolor); //这里我加了阴影
button.drawText(x,                           y, caption, normalcolor);


// 按钮「按下状態」部分文字显示
button.drawText(x+button.width+1,      y+1, caption, onshadowcolor);//还是阴影
button.drawText(x+button.width,              y, caption, oncolor);

// 按钮「选中状態」部分文字显示
button.drawText(x+button.width+button.width+1, y+1, caption, selectedshadowcolor);//继续阴影
button.drawText(x+button.width+button.width, y, caption, selectedcolor);

}
@endscript


顶部
全局变量D
亲友
Rank: 2



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2007-3-5 16:50  资料  短消息  加为好友 


QUOTE:
原帖由 希德船长 于 2007-3-5 11:33 发表
关于那个时间槽,我建议测试一下下面的操作:
先timebar,然后endtimebar,然后再次timebar。

如果出现异常,可以考虑把两个“invalidate timer;”去掉

...MS去掉的话timer会照常运作,改成找不到layer...
=v=也就是说如果不再次新建一个timer的话就不行吧...?
难怪说...封装成CLASS比较好...可惜我不会...OTL

[ 本帖最后由 全局变量D 于 2007-3-5 16:54 编辑 ]





顶部
希德船长
幕后黑手
Rank: 4


UID 11
精华 1
积分 273
帖子 214
阅读权限 255
注册 2006-12-8
 
发表于 2007-3-5 17:05  资料  短消息  加为好友  添加 希德船长 为MSN好友 通过MSN和 希德船长 交谈 QQ
这不应该啊。。。。。那layer是重新创建的啊?。。。

顶部
全局变量D
亲友
Rank: 2



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2007-3-5 17:23  资料  短消息  加为好友 
但是function onTimer()的时候...是要判断那个layer的图片clip的...
如果在endtimebar的时候让层无效化,onTimer依然会继续运行...但是找不到那个要判断的layer了
那就不是说end一次以后再使用timebar会出毛病...而是end之后的下一个timer周期就要出错了...





顶部
Miliardo
幕后黑手
Rank: 4


UID 1
精华 0
积分 379
帖子 339
阅读权限 255
注册 2006-12-3
 
发表于 2007-3-5 19:19  资料  短消息  加为好友 
按钮选项……KAGEX不是有一组功能了么?

顶部
 



清除 Cookies - 联系我们 - [Key Fans Club] the Council of Doujin-game Development and Promotion - Archiver - WAP
Powered by Discuz! 5.5.0 © 2001-2006 Comsenz Inc.
Processed in 1.018000 second(s), 7 queries , Gzip enabled
粤ICP备05060595号
[ 当前模板 - 天高云淡 v 设计制作 - 七星论坛 v 请使用1024*768或以上分辨率浏览本模板 ]
请勿删除或修改此处版权图示