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



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2007-3-5 19:59  资料  短消息  加为好友 
8知道...没看到KAGEX有这介绍...





顶部
Miliardo
幕后黑手
Rank: 4


UID 1
精华 0
积分 379
帖子 339
阅读权限 255
注册 2006-12-3
 
发表于 2007-3-5 21:51  资料  短消息  加为好友 
似乎是selopt/seladd/select……
这三个Tag……

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



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2007-3-19 13:07  资料  短消息  加为好友 
不带闰年判断的普通时间系统.

记得给这些时间变量赋个初始值:
f.年
f.月
f.日
f.周(星期几)

调用方法...
以下做成一个ks文件然后在first.ks里用类似

[call storage=time.ks]

的方法调用

[时间前进]

则对应的游戏内时间前进一天.

;-------------------------------------------------
;简单的时间系统 by D
;-------------------------------------------------
*start
;-------------------------------------------------
[macro name=跨月]
[eval exp="f.月++"]
[eval exp="f.日=1"]
[eval exp="tf.已经前进=true"]
[endmacro]

[macro name=跨年]
[eval exp="f.年++"]
[eval exp="f.月=1"]
[eval exp="f.日=1"]
[eval exp="tf.已经前进=true"]
[endmacro]

[macro name=时间前进]

[eval exp="tf.周前进=false"]
[eval exp="tf.已经前进=false"]

[if exp="f.周==7"]
[eval exp="f.周=1"]
[eval exp="tf.周前进=true"]
[endif]

[ignore exp="tf.周前进==true"]
[eval exp="f.周+=1"]
[endignore]

;-------------------------------------
[if exp="f.月==1 && f.日==31"]
[跨月]
[endif]
[if exp="f.月==2 && f.日==28"]
[跨月]
[endif]
[if exp="f.月==3 && f.日==31"]
[跨月]
[endif]
[if exp="f.月==4 && f.日==30"]
[跨月]
[endif]
[if exp="f.月==5 && f.日==31"]
[跨月]
[endif]
[if exp="f.月==6 && f.日==30"]
[跨月]
[endif]
[if exp="f.月==7 && f.日==31"]
[跨月]
[endif]
[if exp="f.月==8 && f.日==31"]
[跨月]
[endif]
[if exp="f.月==9 && f.日==30"]
[跨月]
[endif]
[if exp="f.月==10 && f.日==31"]
[跨月]
[endif]
[if exp="f.月==11 && f.日==30"]
[跨月]
[endif]
[if exp="f.月==12 && f.日==31"]
[跨年]
[endif]

[ignore exp="tf.已经前进==true"]
[eval exp="f.日++"]
[endignore]

[eval exp="f.当前时间=f.年+' 年 '+&f.月+' 月 '+&f.日+' 日'"]

;确认时间有没正常前进,可以在控制台查看到这几个数值的变化
[trace exp="f.年"]
[trace exp="f.月"]
[trace exp="f.日"]
[trace exp="f.周"]
[endmacro]

[return]






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


UID 11
精华 1
积分 273
帖子 214
阅读权限 255
注册 2006-12-8
 
发表于 2007-3-19 13:41  资料  短消息  加为好友  添加 希德船长 为MSN好友 通过MSN和 希德船长 交谈 QQ
说道时间控制,写个插件来用可能会比较好,我去试试。。。

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



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2007-3-19 17:50  资料  短消息  加为好友 
是啊其实应该用switch case的...
但是反正还不熟就先拿KAG写了...XD





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



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2008-3-11 18:21  资料  短消息  加为好友 
屏幕截图并保存BMP到程序EXE目录的picture文件夹
这里用的是640X480的设计,800X600的,直接改两处数据就OK
如果想要保存画面上的部分,那就调整层大小和取得画面的大小即可.

[iscript]
//---------------------------------------
//保存图片
//---------------------------------------
function savenote(name)
{
//设定保存路径
var fn = System.exePath + "/picture/" + name +".bmp";
//新建一层
var tmp = new Layer(kag, kag.fore.base);
tmp.setImageSize(640, 480);
//用新建层取得当前画面
tmp.piledCopy(0, 0, kag.fore.base, 0, 0, 640, 480);
//将当前画面保存为BMP
tmp.saveLayerImage(fn, "bmp");
}
[endscript]

调用例:
[link exp="savenote(abc)"]保存图象[endlink]
将保存成abc.bmp的图片一张





顶部
kider
会员
Rank: 1



UID 461
精华 0
积分 65
帖子 29
阅读权限 5
注册 2007-10-1
 
发表于 2008-3-12 21:19  资料  短消息  加为好友 


QUOTE:
原帖由 Miliardo 于 2007-3-5 21:51 发表
似乎是selopt/seladd/select……
这三个Tag……

看出来了,但我自己没有试出来,用了之后没有任何反应……
谁能写个详细点的说明呢?……

[ 本帖最后由 kider 于 2008-3-12 21:34 编辑 ]

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



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2008-11-20 11:14  资料  短消息  加为好友 
变数和字典相关的一些东西

;用test的内容作为变数名,并且取得这个变数里的某值
[iscript]
var 变量名=["A","B"];
var test="变量名";
[endscript]
[emb exp="test![0]"]
;----------------------------------------------------------
;把字典test的内容存到文本文件里
[iscript]
var test=%[
layer : 0,
storage : "",
];
(Dictionary.saveStruct incontextof test)("E://实验用工程/out.ks");
[endscript]
;----------------------------------------------------------
;读取文本文件(会按行存成数组)
[iscript]
var abc=[];
abc.load("E://实验用工程/out.ks");
[endscript]
;----------------------------------------------------------
;读取文本文件(读取为字典)
[iscript]
var dic = new Dictionary();
dic=Scripts.evalStorage("dic.txt");
[endscript]

[ 本帖最后由 全局变量D 于 2008-12-4 13:23 编辑 ]





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



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2011-10-29 17:00  资料  短消息  加为好友 
使用按钮制作选择项时,自动对齐的效果:

function Arrange_SelButton(num)
{
//按钮显示区域       
        var x=0;
        var y=0;
        var width=800;
        var height=400;
       
        var per_height=400/(num+1);

        for (var i=0;i<num;i++)
        {
                kag.current.links[i].object.left=x+(width-kag.current.links[i].object.width)/2;
                kag.current.links[i].object.top=(int)y+(int)per_height*(i+1);
               
                dm("选项按钮"+(i+1));
                dm("x="+kag.current.links[i].object.left);
                dm("y="+kag.current.links[i].object.top);
        }

}

在显示完全部选项以后使用:
[eval exp="Arrange_SelButton(kag.current.links.count)"]
就可以重新排列按钮位置。





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



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2012-5-11 20:13  资料  短消息  加为好友 
图片使用另外一张图片的遮罩(alphachannel)的办法。

[iscript]
[iscript]
//建立遮罩图片
var test=new Layer(kag,kag.fore.base);
test.visible=true;
test.loadImages("my_mask_01");
test.setSizeToImageSize();

//建立要显示在遮罩内的图片
var test1=new Layer(kag,kag.fore.base);
test1.visible=true;
test1.loadImages("all_clouds000");
test1.setSizeToImageSize();
//复制时将只复制对方的遮罩,而不复制图片内容
test1.face=dfMask;
//复制遮罩,将只显示遮罩图的不透明部分

//建立TIMER用于移动图片
var i=0;
var my_timer=new Timer(testTimer,"");
my_timer.interval=10;
my_timer.enabled=true;

function testTimer()
{
test1.left=-i;
test1.copyRect(i, 0, test, 0, 0, 1024, 768);
i++;
}
[endscript]

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





顶部
 



清除 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.016000 second(s), 8 queries , Gzip enabled
粤ICP备05060595号
[ 当前模板 - 天高云淡 v 设计制作 - 七星论坛 v 请使用1024*768或以上分辨率浏览本模板 ]
请勿删除或修改此处版权图示