铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 5222|回复: 4

第八讲 弹出框

[复制链接]
发表于 2011-10-8 00:00 | 显示全部楼层 |阅读模式
本帖最后由 蓝烟清 于 2011-10-8 15:23 编辑


第八讲 弹出框


8.1    介绍与遗留问题
        弹出框是显示系统提示信息常用的方法,不过这一讲还没有涉及菜单相关。
        学习目标:掌握各种弹出框方式的运用
        遗留问题:暂无

8.2    函数定义
        DrawString(x,y,str,color,size);    --在以x,y做为起点的位置显示一串文字,color是颜色,size是文字的大小
        DrawStrBox(x,y,str,color,size);   --参数与DrawString相同,只是显示时有边框。若x=-1,y=-1则在屏幕中间显示
        DrawStrBoxYesNo(x,y,str,color,size);   --参数与DrawString相同,有边框,并且除了显示文字外还带有是或否的选项。若x=-1,y=-1则在屏幕中间显示
        DrawStrBoxWaitKey(s,color,size);   --在屏幕中间显示一串文字,有边框,并且在按任意键后内容才消失
        QZXS(str,color,size);    --S大自己写的函数,在屏幕中间显示一串文字,有边框,并且在按任意键后内容才消失。和DrawStrBoxWaitKey类似

8.3    具体的说明
        做一个相对复杂的例子,全面运用到之前所学的内容。

8.3.1  第一步
        在MyDIY目录新增两个文件Talk_File.luaMyEvent4010.lua

8.3.2  第二步
        打开Talk_File.lua文件,输入下面的内容:
  1.         CC.MyTalk1 = "测试Talk";
  2.         CC.MyTalk2 = "测试TalkEx";
  3.         CC.MyTalk3 = "测试say";
  4.         CC.MyTalk4 = "静夜思";
  5.         CC.MyTalk5 = "床前明月光,疑是地上霜";
  6.         CC.MyTalk6 = "举头望明月,低头思故乡";
  7.         CC.MyTalk7 = "哈哈~~原来是这样~~我终于明白了";
  8.         CC.MyTalk8 = "七七四十九天之后....";
  9.         CC.MyTalk9 = "有此功夫,天下尽在我手";
复制代码
8.3.3  第三步
        打开MyEvent4010.lua文件,输入下面的内容:
  1. OEVENTLUA[4010] = function()

  2.         local f = DrawStrBoxYesNo(-1,-1,"咦,有一个箱子,是否要打开(Y/N)?",C_ORANGE,CC.DefaultFont);
  3.         if f == false then
  4.                 return;
  5.         end
  6.         
  7.         Cls();
  8.         local x = CC.ScreenW/2;
  9.         local y = CC.ScreenH/2;
  10.         local color = C_GOLD;
  11.         local size = CC.Fontbig;
  12.         local offx = (#CC.MyTalk5 - #CC.MyTalk4)*size/4;
  13.         
  14.         DrawString(x+offx,y,CC.MyTalk4,color,size);  --静夜思
  15.         ShowScreen();
  16.         lib.Delay(1000);
  17.         DrawString(x,y+30,CC.MyTalk5,color,size);  --床前明月光,疑是地上霜
  18.         ShowScreen();
  19.         lib.Delay(1000);
  20.         DrawString(x,y+60,CC.MyTalk6,color,size);  --举头望明月,低头思故乡
  21.         ShowScreen();
  22.         lib.Delay(1000);
  23.         
  24.         say("R6"..CC.MyTalk7,0,1,JY.Person[0]["姓名"]);  --哈哈~~原来是这样~~我终于明白了
  25.         
  26.         instruct_14(); --场景变黑
  27.         instruct_13(); --场景变亮
  28.         QZXS(CC.MyTalk8);  --七七四十九天之后....
  29.         --也可以这样 DrawStrBoxWaitKey(CC.MyTalk8,C_GOLD,CC.Fontbig);
  30.         
  31.         Talk(CC.MyTalk9,0);  --有此功夫,天下尽在我手
  32.         
  33.         --instruct_33(0,1,0);  --主角学会罗汉拳
  34.         --也可以用下面的,直接洗掉第一个武功
  35.         JY.Person[0]["武功1"] = 1;
  36.         JY.Person[0]["武功等级1"] = 0;
  37.         DrawStrBoxWaitKey(string.format("%s 学会武功 %s,等级%d级",JY.Person[0]["姓名"],JY.Wugong[1]["名称"],JY.Person[0]["武功等级1"]/100+1),C_ORANGE,CC.DefaultFont);
  38.         
  39.         local gjl = AddPersonAttrib(0,"攻击力",50);
  40.         local qg = AddPersonAttrib(0,"轻功",20);
  41.         --DrawStrBoxWaitKey(string.format("%s 攻击力增加%s点 轻功增加%s点",JY.Person[0]["姓名"],gjl,qg),C_ORANGE,CC.DefaultFont);
  42.         --换成QZXS
  43.         QZXS(string.format("%s 攻击力增加%s点 轻功增加%s点",JY.Person[0]["姓名"],gjl,qg));
  44.         
  45.         instruct_3(-2,0,1,0,0,0,0,2612,2612,2612,-2,-2,-2);        --箱子打开形状
  46.         
  47.         Cls();
  48. end
复制代码
8.3.4  第四步
        打开DIY.lua文件,输入下面的内容:
  1.         dofile ".\\script\\MyDIY\\Talk_File.lua";
  2.         dofile ".\\script\\MyDIY\\MyEvent4010.lua";
  3.         instruct_3(70,0,1,0,4010,0,0,2610,2610,2610,0,18,33);
复制代码
8.3.5  第五步
        进入游戏,执行我的代码,在小村木桩旁边,自己试试哦。

8.4    结束语
        弹出框用途很广,常用于系统的提示,多用几次,就能很好的掌握了。

8.5    补充知识
8.5.1  颜色(color)
        系统常用的文字颜色:
        C_RED=RGB(216, 20, 24);
        C_WHITE=RGB(236, 236, 236);
        C_ORANGE=RGB(252, 148, 16);
        C_GOLD=RGB(236, 200, 40);
        可以根据自己的喜欢自己定义一些颜色,比如C_MY_BLUE=RGB(51, 29, 250);

8.5.2  文字大小(size)
        CC.FontBIG=math.modf(math.min(CC.ScreenW,CC.ScreenH)/12)        --最大,未使用        640x480时size=40
        CC.FontBig=math.modf(math.min(CC.ScreenW,CC.ScreenH)/15)        --较大,游戏开始菜单使用        640x480时size=32
        CC.Fontbig=math.modf(math.min(CC.ScreenW,CC.ScreenH)/20)        --通常字号,对话菜单等使用        640x480时size=24
        CC.Fontsmall=math.modf(math.min(CC.ScreenW,CC.ScreenH)/24)        --稍小字号        640x480时size=20
        CC.FontSmall=math.modf(math.min(CC.ScreenW,CC.ScreenH)/30)        --较小字号        640x480时size=16
        CC.FontSMALL=math.modf(math.min(CC.ScreenW,CC.ScreenH)/40)        --最小字号        640x480时size=12

        CC.DefaultFont默认大小,一般值为CC.Fontbig

8.5.3  其它
        CC.ScreenW:游戏屏幕的宽度变量
        CC.ScreenH:游戏屏幕的高度变量
        Cls();:清除屏幕上的draw
        ShowScreen();:显示屏幕上的draw
        lib.Delay(t); 游戏暂停t毫秒

        
        本讲至此结束了,下一讲将会是菜单选项

       本次讲学的源码附件:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x

评分

参与人数 1声望 +10 收起 理由
jy02785317 + 10 好贴奖励

查看全部评分

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-10-8 09:24 | 显示全部楼层
惊现027大
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-10-8 09:29 | 显示全部楼层
楼主還是把各講編輯一下, 好方便我等學習參考

点评

好,有八讲了。我独立建一个贴  发表于 2011-10-8 09:49
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-10-8 14:34 | 显示全部楼层
QZXS(str);

此函数的原型其实就是DrawStrBoxWaitKey(s,color,size)这函数
不觉得后者写起来太麻烦了吗?
所以重新定义了一下

如果你想在QZXS中也能使用颜色
那么在此函数中多加一个形参就行了

点评

额,这样啊。 主要是看不到源码。。原来有默认值。。。  发表于 2011-10-8 14:45
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-10-11 12:21 | 显示全部楼层
本帖最后由 asdfadawmoi 于 2011-10-11 12:30 编辑

说实话SYP编程上应该算个外行,看函数名就知道,像这种N个大写字母组成的函数还有很多

点评

马甲帝,你烦不烦人呐,你要是真历害就去自已做个MOD,不要在这里JJWW。SYP水平高低咱不管(水平低了也做不出这么好的苍炎来吧?)单是人家的这份心意咱就要领,就要感谢人家!  发表于 2011-10-12 12:19
哈哈~~~说你两句就装B了?外行~~~  发表于 2011-10-11 13:26
马甲帝,别再来装B了  发表于 2011-10-11 12:47
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-11-24 13:28

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表