搜索
您的当前位置:首页正文

javascript高仿热血传奇游戏实现代码

2023-12-08 来源:好心意情感网

前言

游戏的第一个版本开发于14年,浏览器端使用html+css+js,服务端使用asp+php,通讯采用ajax,数据存储使用access+mySql。不过由于一些问题(当时还不会用node,用asp写复杂的逻辑真的会写吐;当时对canvas写的也少,dom渲染很容易达到性能瓶颈),已经废弃。后来用canvas重制了一版。本文写于18年。

 

1.开发前的准备

为什么要用Javascript来实现一款比较复杂的PC端游戏

1.js实现PC端网游是可行的。随着PC、手机硬件配置的升级和浏览器的更新换代,以及H5各种库的发展,js实现一款网游的难度越来越低。这里的难度主要是两方面:浏览器的性能;js代码是否足够易于扩展,以满足于一款逻辑极其复杂的游戏的迭代。

2.现阶段的js游戏里,很少有规模较大的可供参考。涉及到多人联机、服务端数据存储、复杂交互的游戏,大多数(几乎全部)都是用flash开发的。但是flash毕竟在衰落,而js发展迅速,并且只要有浏览器就可以运行。

为什么选择了一款2001年的热血传奇游戏

第一个原因是对老游戏的情怀; 当然更重要的另一个原因是,别的游戏要么我不会玩、要么我会玩但没有素材(图片、音效等)。花很大精力去收集一个游戏的地图、人物怪物模型、物品和装备图,然后去处理、解析一遍再用于js开发,我觉得是浪费时间。

由于我以前搜集了一些传奇游戏的素材,并且幸运地找到了提取热血传奇客户端资源文件的方法( github地址 ),所以可以直接开始写码,省去了一些准备时间。

可能的困难

1.浏览器的运行性能:这个应该是最困难的一点。假如游戏要保持40帧,那么每帧只有25ms的时间留给js计算。并且由于渲染通常比计算耗性能,实际上留给js的时间只有10毫秒左右。

2.防作弊:如何避免用户直接调用接口或者篡改网络请求数据?由于目标是用js实现比较复杂的游戏,并且任何网络游戏都需要考虑这一点,一定会有相对成熟的方案。此处不是本文重点。

2.整体设计

浏览器端

画面渲染使用canvas。

相比dom(div)+css,canvas可以处理比较复杂的场景渲染和事件管理,例如下面这个场景,涉及了四张图片:玩家、动物、地上的物品、最下层的地图图片。(实际还有地上的影子,鼠标指向人物、动物、物品时出现的相应名称,以及地面上的阴影。为了方便读懂,先不考虑这么多内容。)

 

这时,如果希望实现“点击动物、攻击动物;点击物品、捡起物品”的效果,那么需要对动物和物品进行事件监听。如果采用dom的方式,那么会出现几点难于处理的问题:

a.渲染的顺序和事件处理的顺序不同(有时候z-index小的需要先处理事件),需要额外处理。例如这个上面的例子里:点击怪物、点击物品的时候也容易点到人物,那么需要给人物做“点击事件穿透”的处理。而且事件处理的顺序不固定:假如我有一个技能(例如游戏里的治疗)需要点人物才可以释放,那么这时人物又需要有事件监听。所以一个元素是否需要处理事件、处理事件的先后,是随着游戏状态的不同而变化的,而 dom的事件绑定已经不能满足需要 。

b.有关联的元素难以放在同一个dom节点中:例如玩家的模型、玩家的名字和玩家身上的技能画效,理想情况下是放在一个 <div> 或者 <section> 容器里,便于管理(这样几个元素的定位就可以继承父元素,不用分别处理位置了)。但是这样,z-index会很难处理。例如玩家A在玩家B的上面,那么A会被B遮挡,因此需要A的z-index小一些,但是又需要让玩家A的名字不会被B的名字或者影子遮挡,就无法实现。简单点说, dom结构的可维护性会牺牲画面展示的效果,反之亦然 。

c.性能问题。即使牺牲了效果,用dom渲染,势必出现很多嵌套关系,所有元素的style都在频繁变化,连续触发浏览器的repaint甚至reflow。

canvas渲染逻辑与项目逻辑分离

如果将canvas的各种渲染操作(如 drawImage 、 fillText 等)与项目代码放在一起,那么势必导致项目后期无法维护。翻了一下几款现有的canvas库,结合vue的数据绑定+调试工具的方式,搞了一个全新的canvas库Easycanvas( github地址 ),并且像vue一样支持通过一个插件来调试canvas中的元素。

这样,整个游戏的渲染部分就容易很多,只需要管理游戏当前的状态、并且根据服务端从socket传回来的数据去更新数据就可以。 “数据的变化引起视图的变化”这个环节由Easycanvas负责 。例如下图的玩家包裹物品的实现,我们只需要给出包裹容器的位置、背包里每个元素的排布规则,然后将每个包裹的物品绑定到一个array上,然后去管理这个array即可(数据映射到画面的过程由Easycanvas负责)。

 

例如,5行8列共计40个物品的样式可以通过如下的形式传递给Easycanvas(index为物品索引,物品x方向间距36,y方向间距32)。而这个逻辑是一成不变的,无论物品的数组怎样变化、包裹被拖拽到什么位置,每个物品的相对位置都是固定的。至于canvas上的渲染则完全不需要项目本身来考虑,所以可维护性较好。

style: { tw: 30, th: 30, tx: function () { return 40 + index % 8 * 36; }, ty: function () { return 31 + Math.floor(index / 8) * 32; }}

canvas分层渲染

假设:游戏需要保持40帧,浏览器宽800高600,面积48万(后面称48万为1个屏幕面积)。

如果用同一个canvas来呈现,那么这个canvas的帧数40,每秒至少需要绘制40个屏幕面积。但是同一个坐标点很可能出现多个元素重叠的情况,例如底部的UI、血条、按钮就是重叠放置,他们又共同遮挡了场景地图。所以这些加在一起,每秒浏览器的绘制量很容易达到100个屏幕面积以上。

这个绘制是很难优化的,因为整个canvas画布的任何一处都在进行视图的更新:可能是玩家和动物的移动、可能是按钮的特效、可能是某个技能效果的变化。这样的话,即使玩家不动,由于衣服“随风飘飘”的效果(其实是精灵动画播放到下一张图),或者是地面上出现了一瓶药水,都要引起整个canvas的重绘。因为 游戏中几乎不可能出现某一帧的画面与上一帧毫无区别的情况,即使是游戏画面的一个局部,也很难保持不变 。整个游戏的画面永远在更新。

因为 游戏中几乎不可能出现某一帧的画面与上一帧毫无区别的情况 ,画面永远在更新。

因此,这次我采用了3个canvas重叠排布的方式。由于Easycanvas的事件处理支持传递,因此即使点到了最上面的canvas,如果没有任何元素结束了某一次点击,后面的canvas也可以接到这次事件。3个canvas分别负责UI、地面(地图)、精灵(人物、动物、技能特效等):

 

这样分层的好处是,每层最大帧数可以根据需要来调整:

例如UI层,因为很多UI平时是不动的,即使动也不会需要太精密的绘制,所以可以适当降低帧数,例如降低到20。这样假如玩家的体力从100降低到20,那么可以在50ms内更新视图,而50ms的切换是玩家感觉不出来的。因为像体力这种 UI层数据的变化很难在很短的时间内连续变化多次,而50ms的延迟是人很难感知的,所以不需要频繁的绘制 。假如我们每秒节约了20帧,那么很可能可以节约10个屏幕面积的绘制。

再如地面,只有玩家移动的时候,地图才会变化。这样,如果玩家不动,那么每帧可以省去1个屏幕面积。由于需要保证玩家移动时的流畅感,地面的最大帧数不宜太低。假如地面为30帧,那么玩家不动时,每秒就可以节约30个屏幕面积的绘制(这个项目中,地图是几乎绘满屏幕的)。而且其它玩家、动物的移动不会改变地面,也不需要重绘地面这一层。

精灵层最大帧数不能降低,这层会展示游戏的人物动作等核心部分,所以最大帧数设置为40.

这样,每秒绘制的面积,玩家移动时可能是80~100个屏幕面积,而玩家不移动时可能只有50个屏幕面积。游戏中,玩家停下来打怪、打字、整理物品、释放技能都是站立不动的,因此 大量的时间里都不会触发地面的绘制,对性能的节约很大 。

服务器端

由于目标是js实现一款多人网游,所以服务端使用Node,使用socket与浏览器通讯。这样做还有一个好处,就是一些 公用的逻辑可以在两端复用 ,例如判断地图上某个坐标点是否存在障碍物。

Node端的玩家、场景等游戏相关数据全部存储与内存中,定期同步至文件。每次Node服务启动时,将数据从文件读取至内存。这样可以玩家较多时,文件读写的频率成指数级上升,从而引发的性能问题。(后来为了提高稳定,为文件读写增加了一个缓冲,“内存-文件-备份”的方式,以免读写过程中服务器重启导致的文件损坏)。

Node端分接口、数据、实例等多层。“接口”负责和浏览器端交互。“数据”是一些静态数据,例如某个药品的名称和效果、某个怪物的速度和体力,是游戏规则的一部分。“实例”是游戏中的当前状态,例如某个玩家身上的一个药品,就是“药品数据”的一个实例。再举个例子,“鹿的实例”拥有“当前血量”这个属性,鹿A可能是10,鹿B可能是14,而“鹿”本身只有“初始血量”。

3.场景地图的实现

地图场景

下面开始介绍地图场景部分,仍然是依赖 Easycanvas 进行渲染。

思考

由于玩家是始终固定在屏幕中心的,所以玩家的移动,实际上是地图的移动。例如玩家像左跑,地图就向右平移即可。刚才已经提到,玩家处于3个canvas中的中间一层,而地图属于底层,因此玩家一定遮挡地图。

这样看起来是合理的,但是假如地图中有一棵树,那么“玩家的层次始终高于树”就不对了。这时,有2种大的解决方案:

地图分层,“地面”与“地上”拆开。将玩家处于两层之间,例如下图,左侧是地上、右侧是地面,然后重叠绘制,把人物夹在中间:

 

这样看似解决了问题,其实引入了2个新的问题:第一个是,玩家有时可能会被“地上”的东西遮挡(例如一棵树),有时又需要能够遮挡“地上”的东西(例如站在这棵树的下方,头部会遮挡住树)。另一个问题是渲染的性能消耗会增加。由于玩家是时刻在变的,“地上”这一层需要频繁重绘。这样做也打破了最初的设计——尽量节约地面大地图的渲染,从而导致canvas的分层更加复杂。

地图不分层,“地面”与“地上”在一起绘制。当玩家处于树后的时候,将玩家的透明度设置为0.5,例如下图:

 

这样做只有一个坏处:玩家的身体要么都不透明、要么都半透明(怪物在地图上行走也会有这个效果),不会完全真实。因为理想的效果是存在玩家的身体被遮挡住一部分的场景的。但是这样做对性能友好,并且代码易于维护,目前我也采用了这个方案。

那么如何判断“地图”这张图片哪些地方是树呢?游戏通常会有一个大的地图描述文件(其实就是一个Array),通过0、1、2这样的数字来标识哪些地方可以通过、哪些地方存在障碍物、哪些地方是传送点等等。热血传奇中的这个“描述文件”就是48x32为最小单位进行描述的,所以玩家在传奇中的行动会有一种“棋盘”的感觉。单位越小越流畅,但是占用的体积越大、生成这个描述的过程也就越耗时。

下面开始正题。

实现

我找了一个朋友帮我导出热血传奇客户端中“比奇省”的地图,宽33600、高22400,是我电脑的几百倍大。为了避免电脑爆炸,需要拆分成多块加载。由于传奇的最小单元是48x32,我们以480x320将地图拆成了4900(70x70)个图片文件。

canvas的尺寸我们设定为800x600,这样玩家只需要加载3x3共计9张图片就可以铺满整个画布。800/480=1.67,那么为什么不是2x2?因为有可能玩家当前的位置正好导致有的图片只展示了一部分。如下图:

 

总结

以上所述是小编给大家介绍的javascript高仿热血传奇游戏实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

小编还为您整理了以下内容,可能对您也有帮助:

传奇通用代码

传奇没有通用代码。《热血传奇》是盛趣游戏2001年推出的一款大型多人在线角色扮演游戏(MMORPG)。

该游戏具有战士、魔法师和道士三种职业,所有情节的发生、经验值取得以及各种打猎、采矿等活动都是在网络上即时发生。

《热血传奇》包括白天、黑夜、贸易、物品等观念,玩家可以通过采矿、打猎等来获得货币,利用货币进行贸易。整个游戏充满了魔力,具有东方色彩。

2021年10月8日,为防止未成年人沉迷网络游戏,维护未成年人合法权益,文化和旅游部印发通知,部署各地文化市场综合执法机构进一步加强网络游戏市场执法监管。据悉,文化和旅游部要求各地文化市场综合执法机构会同行业管理部门。

重点针对时段时长、实名注册和登录等防止未成年人沉迷网络游戏管理措施落实情况,加大辖区内网络游戏企业的执法检查频次和力度。

热血传奇武器升级代码

公式应该为:(pk值+黑铁值+首饰值)x50%+(个人幸运值+武器修练值+武器本身值)x50%=2.01系统判定为:大于2的为成功.小于2的为失败. 2.01>2.0武器成功。

如何使用代码获取热血传奇人物当前所处的地图的地图编号或名称

n=@map

if n=

热血传奇里面这段触发代码是什么意思?

你的 物品DB 添加的传奇传送石 触发序号 与QFunction-0.txt中相应的@StdModeFuncX 不对应 例如我的 比奇传送石 的触发脚本是 [@StdModeFunc17] 那我DB中填写的触发序号就是17
下列是 我的QFunction-0.txt 触发脚本[@StdModeFunc后面的数字就是触发序号 与DB的Anicount值 对应!!

[@StdModeFunc17]
#IF
#act
mapmove 0 327 272

你出现的这种情况 说明 你是直接套用别人的 DB信息!别人的DB信息的Anicount值添加到你的版本中 并不是触发 传送的 是触发1.5倍攻击的 解决方法 你自己在QFunction-0.txt 中添加
[@StdModeFunc数值]
#IF
#act
mapmove 0 327 272

数值 自己设定 记住不要 重复......然后把此数值顺便 填写到DB传送石的Anicount 值即可!!

希望对你有所帮助!!!

热血传奇里面这段触发代码是什么意思?

你的 物品DB 添加的传奇传送石 触发序号 与QFunction-0.txt中相应的@StdModeFuncX 不对应 例如我的 比奇传送石 的触发脚本是 [@StdModeFunc17] 那我DB中填写的触发序号就是17
下列是 我的QFunction-0.txt 触发脚本[@StdModeFunc后面的数字就是触发序号 与DB的Anicount值 对应!!

[@StdModeFunc17]
#IF
#act
mapmove 0 327 272

你出现的这种情况 说明 你是直接套用别人的 DB信息!别人的DB信息的Anicount值添加到你的版本中 并不是触发 传送的 是触发1.5倍攻击的 解决方法 你自己在QFunction-0.txt 中添加
[@StdModeFunc数值]
#IF
#act
mapmove 0 327 272

数值 自己设定 记住不要 重复......然后把此数值顺便 填写到DB传送石的Anicount 值即可!!

希望对你有所帮助!!!

力量传奇隐藏代码怎么用

方法如下:

1、传奇隐藏代码为bawkbak或lf2.net,若一个不行就换一个输入即可。

2、进入到游戏主页面。点击【公告】。

3、在弹出的新页面选择【CDKEY兑换】。

4、输入隐藏代码,点击【兑换】即可。

游戏背景

曾经有各种各样的生物生活在这神秘的玛法*。人类的力量在其中是如此弱小,他们在这个*上*建立各种组织,以便抵抗那些有着超自然能力的野兽和怪物。

然而,过了一段时间,一个神秘的种族的出现改变了这个*的势力分配,他们迅速的学习各种能力,很快的取得了非凡的能力,占据了这个*的领导地位。

这个种族教会了人们使用火和其他关于生存的能力。当人类学习到了这些不同的技能以后,这些长期生活在充满恐怖和威胁的环境中的人类开始尝试建立文明。

热血传奇地图

人类在神秘种族的帮助下,开始了他们漫长而悠远的领土扩张和文明建立的过程。当其他的种族还在睡梦中时,一个巨大的国家被创造了。

力量传奇隐藏代码怎么用

方法如下:

1、传奇隐藏代码为bawkbak或lf2.net,若一个不行就换一个输入即可。

2、进入到游戏主页面。点击【公告】。

3、在弹出的新页面选择【CDKEY兑换】。

4、输入隐藏代码,点击【兑换】即可。

游戏背景

曾经有各种各样的生物生活在这神秘的玛法*。人类的力量在其中是如此弱小,他们在这个*上*建立各种组织,以便抵抗那些有着超自然能力的野兽和怪物。

然而,过了一段时间,一个神秘的种族的出现改变了这个*的势力分配,他们迅速的学习各种能力,很快的取得了非凡的能力,占据了这个*的领导地位。

这个种族教会了人们使用火和其他关于生存的能力。当人类学习到了这些不同的技能以后,这些长期生活在充满恐怖和威胁的环境中的人类开始尝试建立文明。

热血传奇地图

人类在神秘种族的帮助下,开始了他们漫长而悠远的领土扩张和文明建立的过程。当其他的种族还在睡梦中时,一个巨大的国家被创造了。

求热血传奇物品代码 分不多见谅了

1、特殊戒指: 传送戒指 等级要求 12 , 耐久性 5 , 重量 1 @sdgo 移动的坐标值 例子: @sdgo 300 300 护身戒指 使用后,遭到攻击的损伤将表现为魔法值减少,体力不受影响。 防御戒指 使佩戴者能使用治疗魔法,恢复生命值 需要等级16级. 麻痹戒指 它能使你的对手在5秒内处于1/15的瘫痪状态。 超负载戒指 使你携带物品的能力加倍。 火焰戒指 使佩带者拥有使用小火球魔法的能力,燃烧弹等级 1 复活戒指 能恢复死亡以前的所有物理值。 隐身戒指 使用者处于隐身状态,除了你的攻击对象能看到你。 2、老区书店都有卖的 仓月比较全 半月书比较低 尸王就爆 不过几率不一定高 3、麻痹戒指老区就不用想了 陈天桥不会那么傻 再给你 爆几个 爆点:粪虫(挖)各大教主 几率跟中500万彩票差不多 4、如果三个职业都有,去那里练级都行 没有你们拿不下的怪

求热血传奇物品代码 分不多见谅了

1、特殊戒指: 传送戒指 等级要求 12 , 耐久性 5 , 重量 1 @sdgo 移动的坐标值 例子: @sdgo 300 300 护身戒指 使用后,遭到攻击的损伤将表现为魔法值减少,体力不受影响。 防御戒指 使佩戴者能使用治疗魔法,恢复生命值 需要等级16级. 麻痹戒指 它能使你的对手在5秒内处于1/15的瘫痪状态。 超负载戒指 使你携带物品的能力加倍。 火焰戒指 使佩带者拥有使用小火球魔法的能力,燃烧弹等级 1 复活戒指 能恢复死亡以前的所有物理值。 隐身戒指 使用者处于隐身状态,除了你的攻击对象能看到你。 2、老区书店都有卖的 仓月比较全 半月书比较低 尸王就爆 不过几率不一定高 3、麻痹戒指老区就不用想了 陈天桥不会那么傻 再给你 爆几个 爆点:粪虫(挖)各大教主 几率跟中500万彩票差不多 4、如果三个职业都有,去那里练级都行 没有你们拿不下的怪

也就是热血传奇里的天龙男衣服和女衣服的外观内观以及翅膀的代码。。。。

可以使用盛大的代码来执行显示 火龙衣服 男女外观编号为10 内观编号 男是 595 女是605 翅膀 男是 5 女 6 希望及时采纳

网络游戏《传奇世界》和《热血传奇》分别用什么编程语言编程的?

我不知道这两个游戏是什么编程语言。

现在的游戏编程都不是单一种语言做出的。通常是不同编程语言做不同部分。比如用C语言编写图形渲染处理部分,用一种语言制作界面程序,再用另一种语言做网络数据传输部分。

还有相当多的游戏是用游戏制作引擎来做的,这些引擎有自己独特的编程方式,更像是一个系统工程,很难说是什么编程语言了。

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

热门图文

  • 戏赠张叔甫黄庭坚的其他诗词有哪些

    《戏赠张叔甫》黄庭坚其他诗词:《秋怀二首》、《登快阁》、《诉衷情》、《虞美人宜州见梅作》、《寄黄几复》。《戏赠张叔甫》黄庭坚其他诗词:《秋怀二首》、《登快阁》、《诉衷情》、《虞美人宜州见梅作》、《寄黄几复》。作者:黄庭坚。年代:宋代。我们为您从以下几个方面提供戏赠张叔甫的详细介绍。一、《戏赠张叔甫》的全文 点此查看《戏赠张叔甫》的详细内容。团扇复团扇,因风托方便。衔泥巢君屋,双燕令人羡。张公子,时相见。张公一生江海客,文章献纳麒麟殿。文采风流今尚存,看君不合长贫贱。醉中往往爱逃禅,解道澄江静如练。淮南百宗经行处,携手落日回高宴。城上乌,尾毕逋。尘沙立暝途,惟有摩尼珠。云梦泽南州,更有赤须胡。与君歌一曲,长铗归来乎。出无车,食无鱼。不须闻此意惨怆,幸是元无免破除。脱吾帽,向君笑。

  • 戏赠张叔甫黄庭坚的其他诗词

    《戏赠张叔甫》黄庭坚其他诗词:《秋怀二首》、《登快阁》、《诉衷情》、《虞美人宜州见梅作》、《寄黄几复》。《戏赠张叔甫》黄庭坚其他诗词:《秋怀二首》、《登快阁》、《诉衷情》、《虞美人宜州见梅作》、《寄黄几复》。作者:黄庭坚。年代:宋代。我们为您从以下几个方面提供戏赠张叔甫的详细介绍。一、《戏赠张叔甫》的全文 点此查看《戏赠张叔甫》的详细内容。团扇复团扇,因风托方便。衔泥巢君屋,双燕令人羡。张公子,时相见。张公一生江海客,文章献纳麒麟殿。文采风流今尚存,看君不合长贫贱。醉中往往爱逃禅,解道澄江静如练。淮南百宗经行处,携手落日回高宴。城上乌,尾毕逋。尘沙立暝途,惟有摩尼珠。云梦泽南州,更有赤须胡。与君歌一曲,长铗归来乎。出无车,食无鱼。不须闻此意惨怆,幸是元无免破除。脱吾帽,向君笑。

  • 戏赠张叔甫黄庭坚其他诗词

    《戏赠张叔甫》黄庭坚其他诗词:《秋怀二首》、《登快阁》、《诉衷情》、《虞美人宜州见梅作》、《寄黄几复》。《戏赠张叔甫》黄庭坚其他诗词:《秋怀二首》、《登快阁》、《诉衷情》、《虞美人宜州见梅作》、《寄黄几复》。作者:黄庭坚。年代:宋代。我们为您从以下几个方面提供戏赠张叔甫的详细介绍。一、《戏赠张叔甫》的全文 点此查看《戏赠张叔甫》的详细内容。团扇复团扇,因风托方便。衔泥巢君屋,双燕令人羡。张公子,时相见。张公一生江海客,文章献纳麒麟殿。文采风流今尚存,看君不合长贫贱。醉中往往爱逃禅,解道澄江静如练。淮南百宗经行处,携手落日回高宴。城上乌,尾毕逋。尘沙立暝途,惟有摩尼珠。云梦泽南州,更有赤须胡。与君歌一曲,长铗归来乎。出无车,食无鱼。不须闻此意惨怆,幸是元无免破除。脱吾帽,向君笑。

  • 紴字的组词 紴字的组词有哪些

    紴字的组词 紴字的组词有哪些。麻紴、;紴的笔顺是撇折、撇折、点、点、点、点、横撇。紴字的笔顺图解;共十一画;紴;1;撇折;2;撇折;3;点;4;点;5;点;6;点;7;横撇;8;撇;9;竖;10;横撇;11;捺;紴的拼音为bō,部首为糹,结构为左右,注音为ㄅㄛ,ㄅㄧˋ。紴字的具体字的具体解释是什么呢,我们通过以下几个方面为您介绍。一、基本解释 点此查看紴的详细内容。[ bō ]1.绦属。2.锦类。3.水波锦文。[ bì ]1.装束貌。二、康熙字典;紴【未集中】【糸部】 康熙筆画:11画,部外筆画:5画《廣韻》博禾切《集韻》逋禾切。音波。《說文》絛屬。又《集韻》匹靡切,音帔。《玉篇》水紴錦文也。又《集韻》平義切,音被。《類篇》裝束貌。三、说文解字;

  • 戏赠张叔甫相同朝代诗歌 戏赠张叔甫相同朝代诗歌有哪些

    《戏赠张叔甫》黄庭坚相同朝代诗词。《曹将军》、《下瞿塘》、《滕王阁》、《儿馁嗔郎罢妻寒怨藁砧唐眉山诗也戏为笺之》、《题艾溪》、《废贡院为米廪过之值盘厫》、《送客至灵谷》、《叹屩词》、《题陈朝玉爱竹轩》、《酬春湖史履庸惠四皓图》。《戏赠张叔甫》相同朝代的诗词:《曹将军》、《下瞿塘》、《滕王阁》、《儿馁嗔郎罢妻寒怨藁砧唐眉山诗也戏为笺之》、《题艾溪》、《废贡院为米廪过之值盘厫》、《送客至灵谷》、《叹屩词》、《题陈朝玉爱竹轩》、《酬春湖史履庸惠四皓图》作者:黄庭坚。年代:宋代。我们为您从以下几个方面提供戏赠张叔甫的详细介绍。一、《戏赠张叔甫》的全文 点此查看《戏赠张叔甫》的详细内容。团扇复团扇,因风托方便。衔泥巢君屋,双燕令人羡。张公子,时相见。张公一生江海客,文章献纳麒麟殿。

Top