450 likes | 574 Views
罗培羽 — 教你制作 3DRPG 游戏. 罗培羽 — 教你制作 3DRPG 游戏. 罗培羽 作品 网名:碧俐千仞 QQ:345697666 E-mail:tyxxxx@qq.com. 第二节: Never Be Alone. 罗培羽 — 教你制作 3DRPG 游戏. entity* npc_old; 我们先创建一个“名字” NPC_old action npc_act_old{npc=me;} 再有一个动作,让在关卡编辑器里设置的动作为 npc_act_old 的角色“名字”叫做 npc_old. 罗培羽 — 教你制作 3DRPG 游戏.
E N D
罗培羽—教你制作3DRPG游戏 罗培羽 作品 网名:碧俐千仞 QQ:345697666 E-mail:tyxxxx@qq.com
罗培羽—教你制作3DRPG游戏 entity* npc_old; 我们先创建一个“名字”NPC_old action npc_act_old{npc=me;} 再有一个动作,让在关卡编辑器里设置的动作为npc_act_old的角色“名字”叫做npc_old
罗培羽—教你制作3DRPG游戏 c_trace(向量一,向量二,参数); 判断从向量一到向量二之间是否有障碍物,如果没有就返回值就为0
罗培羽—教你制作3DRPG游戏 长老属性多边形
罗培羽—教你制作3DRPG游戏 VECTOR( myplayer.x, myplayer.y, myplayer.z ) 角色位置
罗培羽—教你制作3DRPG游戏 VECTOR( myplayer.x+cos(myplayer.pan)*30, myplayer.y+sin(myplayer.pan)*30, myplayer.z ) 角色正前方的位置 判断线
罗培羽—教你制作3DRPG游戏 if(key_space==1)//空格 { c_trace(VECTOR(myplayer.x+cos(myplayer.pan)*30,myplayer.y+sin(myplayer.pan)*30,myplayer.z), VECTOR(myplayer.x,myplayer.y,myplayer.z),IGNORE_PASSABLE|IGNORE_ME); if(you==npc_old){myplayer.z+=10;} } myplayer.z+=10 句只是作为一个判断,看看能不能判断到实体
罗培羽—教你制作3DRPG游戏 试试 看看角色坐标能不能改变
罗培羽—教你制作3DRPG游戏 我们要的是显示对话框和文字
罗培羽—教你制作3DRPG游戏 定义字体,字体,粗体?斜体?,大小 font text_font = "Arial",0,20; string mytext="hello"; text ctext { font= text_font; layer=2;pos_x=20;pos_y=480; strings=1; string=mytext; } 定义字符串 定义可以显示文字的“面板”,这个就是可以显示的了 字体 层和坐标 字符串数量 显示的字符串
罗培羽—教你制作3DRPG游戏 if(you==npc){do_npc();} function do_npc() { ctext.visible = on; } 这个visible属性让文字可以显示
罗培羽—教你制作3DRPG游戏 对话过程中要不能控制主角 var ctrlable = 1; 定义变量ctrlable while(myplayer==null){wait(1);} while(1) { if(ctrlable==1){do_role();} wait(1); }
罗培羽—教你制作3DRPG游戏 function talk() { ctrlable=0; myplayer.frame=0; ctext.visible = on; }
罗培羽—教你制作3DRPG游戏 删去前面的if(you==npc_old) function do_npc() { if(you==npc_old) {talk();} }
罗培羽—教你制作3DRPG游戏 让文字在按下空格后消失
罗培羽—教你制作3DRPG游戏 function talk() { ctrlable=0; myplayer.frame=0; ctext.visible = on; while(key_space==1){wait(1);} while(key_space==0){wait(1);} while(key_space==1){wait(1);} ctext.visible = off; ctrlable=1; } 放开继续 按下继续 放开继续
罗培羽—教你制作3DRPG游戏 改变说话内容
罗培羽—教你制作3DRPG游戏 function talk(mytext2) { ctrlable=0; str_cpy(mytext,mytext2);//mytext=mytext2 myplayer.frame=0; ctext.visible = on; while(key_space==1){wait(1);} while(key_space==0){wait(1);} while(key_space==1){wait(1);} ctext.visible = off; ctrlable=1; }
罗培羽—教你制作3DRPG游戏 function do_npc() { talk(“文字”); }
罗培羽—教你制作3DRPG游戏 修改几次看看 string mytext=“……”;换成 string mytext; 不然会有限制
罗培羽—教你制作3DRPG游戏 显示底框
罗培羽—教你制作3DRPG游戏 定义图片 bmap text_box_map = <textpanel.pcx>; panel text_box{ pos_x = 0; pos_y = 455; layer = 1; bmap = text_box_map; alpha=80; flags = overlay,transparent,refresh; } 定义面板 位置 层 设置图片 透明度 透明色有效 这个参数存在透明度才有效
罗培羽—教你制作3DRPG游戏 starter start_up() { d3d_autotransparency = 1; …… 对于overlay属性 1 –左上角颜色为透明 0 –黑色为透明
罗培羽—教你制作3DRPG游戏 function talk(mytext2) { …… text_box.visible = on; ctext.visible = on; while(key_space==1){wait(1);} while(key_space==0){wait(1);} while(key_space==1){wait(1);} ctext.visible = off; text_box.visible = off; …… }
罗培羽—教你制作3DRPG游戏 显示头像
罗培羽—教你制作3DRPG游戏 bmap text_box_face = <长老.pcx>; panel text_face{ pos_x = 0; pos_y = 0; layer = 1; bmap = text_box_face; alpha=100; flags = overlay,transparent,refresh; }
罗培羽—教你制作3DRPG游戏 function talk(mytext2) { …… text_box.visible = on; text_face.visible = on; ctext.visible = on; …… ctext.visible = off; text_face.visible = off; text_box.visible = off; …… }
罗培羽—教你制作3DRPG游戏 多幕对话
罗培羽—教你制作3DRPG游戏 function do_npc() { if(you==npc_old) { talk("你好1"); talk("你好2"); } } 试试
罗培羽—教你制作3DRPG游戏 function talk(mytext2) { while(ctrlable==0){wait(1);} ……
罗培羽—教你制作3DRPG游戏 添加人物 多边形 多个人物
罗培羽—教你制作3DRPG游戏 整理并添加,以及关卡编辑器中设置动作 entity* myplayer; action player_act{myplayer=me;} entity* npc_old; action npc_act_old{npc_old=me;} entity* npc_child; action npc_act_child{npc_child=me;}
罗培羽—教你制作3DRPG游戏 function do_npc() { if(you==npc_old) {talk("你好,我是长老");} if(you==npc_child){talk("你好,我是小孩");} }
罗培羽—教你制作3DRPG游戏 变换脸型
罗培羽—教你制作3DRPG游戏 bmap text_box_face = <长老.pcx>; bmap text_box_face2 = <小孩.pcx>; if(you==npc_old) {text_face.bmap = text_box_face; talk("你好,我是长老");} if(you==npc_child) {text_face.bmap = text_box_face2; talk("你好,我是小孩");}
罗培羽—教你制作3DRPG游戏 为了更加方便调用,我们修改一下
罗培羽—教你制作3DRPG游戏 function talk(mytext2,face) { while(ctrlable==0){wait(1);} ctrlable=0; str_cpy(mytext,mytext2); text_face.bmap=face; myplayer.frame=0; ctext.visible = on; text_box.visible = on; text_face.visible = on; …… }
罗培羽—教你制作3DRPG游戏 function do_npc() { if(you==npc_old) {talk("你好,我是长老",text_box_face);} if(you==npc_child) {talk("你好,我是小孩",text_box_face2);} }
罗培羽—教你制作3DRPG游戏 你可以定义一些变量来控制剧情 比如定义变量 story 当 story为0时 npc_old说 帮我找孩子,谢谢 story=1 npc_child说 我是孩子 当 story为1时 npc_old说 快去找吧 npc_child说 主角:/n和我一起走去找爷爷
罗培羽—教你制作3DRPG游戏 当然你也可以用其他编程工具(如VB)去编写一些能否辅助制作剧情的工具
罗培羽—教你制作3DRPG游戏 谢谢支持