06 2013 档案
摘要:使用设计模式来提高程序库的重复利用性是大型程序项目开发必须的。但是在“四人帮”的设计模式概述中提到了23种标准设计模式,不但难以记住,而且有些设计模式更多的适用于应用程序开发,对游戏项目引擎设计并没有很多的利用价值。根据经验,精挑细选后,笃志在这里记录一些自认为有利用价值的设计模式,以便之后自己设计时使用。 一:观察者Observer 观察者的设计意图和作用是:它将对象与对象之间创建一种依赖关系,当其中一个对象发生变化时,它会将这个变化通知给与其创建关系的对象中,实现自动化的通知更新。 游戏中观察者的适用环境有: 1:UI控件管理类。当我们的GUI控件都使用观察者模式后,那么用户的任...
阅读全文
摘要:备忘录最常见在游戏中的进度保存,在打boss之前先保存当前进度,当在打斗中挂掉了,则从之前的进度中恢复,从而达到无限打boss,而打不死boss的死循环中,- -!备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象外进行存储,并能够恢复到原先保存状态。所以,抽出来三个对象:originator,该对象有保存当前进度和恢复当前进度,Memento,该对象记录当前进度的所有信息,caretaker,在外部保存记录的对象。originator:State state;Memento* createMemento();void setMemento(Memento * mement
阅读全文
摘要:游戏中需要用到抽象工厂的地方很多,比如:你想得到一个怪物monster,而我们在游戏中可能会出现几十种怪物,而且每种怪物都有自己特有技能,如:大蛇可以发射毒液使你减速,熊会有重击技能可以将你打晕,老虎会有暴击技能等等。而怎样将这些怪初始化并能够与游戏中的人物联系起来,这地方使用抽象工厂可以解决这些问题。在抽象工厂中需要我们多用对象组合,少用继承,针对抽象编程,不针对实现编程,对象通过工厂暴露的方法创建。下面我们举例解释抽象工厂在游戏中的运用:1. 我们建立一个所有怪物的父类,我们叫他兽王(也许兽王应该是所有怪物的boss的,但是我感觉还是先有兽王才会产生其他怪兽小弟的),给它个英文名BaseM
阅读全文
摘要:1. 字符串连接CONCATENATE dobj1 dobj2 ... INTO result[IN { BYTE | CHARACTER } MODE][SEPARATED BY sep].2.字符串分隔, split 一个string的部分到一个内表或一系列的变量SPLIT dobj AT sep INTO{ {result1 result2 ...} | {TABLE result_tab} }[IN {BYTE|CHARACTER} MODE].3. 字符串查找, 在一个字符串中查找模式串(FIND or SEARCH)FIND sub_stringIN SECTION [OFFSET
阅读全文
摘要:DATA: pr_unit TYPE meins,"基本计量单位 bapi_exe_result(1) TYPE c."bapi执行结果标识*原材料DATA: BEGIN OF wa_y_material, marc_plant TYPE werks_d, "工厂 mard_stge_loc TYPE lgort_d,"库存地点 mvke_sales_org TYPE vkorg,"销售组织 mvke_distr_chan TYPE vtweg,"分销渠道 head_material TYPE matnr,"物料号 head
阅读全文
摘要:昨天下午和今天早上主要研究了如何进行展BOM与反查BOM表。以下程序演示了4种方式,分别为:1、展开单层BOM2、展开多层BOM3、反查单层BOM4、反查多层BOM主要用到2个BAPI函数,分别为:1、CS_BOM_EXPL_MAT_V2 展BOM表2、CS_WHERE_USED_MAT 反查BOM表参考了资料:http://blog.csdn.net/reacleliu/article/details/6836193代码:*&---------------------------------------------------------------------**&Repo
阅读全文
摘要:当进行Debug的时候,经常会遇到"SY-SUBRC"的返回值。具体如何使用。在各种语句下返回值。================= FUNCTION MODULE (或RFC中) SY-SUBRC 的含义 ================使用SELECT语句选择查询:SY-SUBRC = 0: 至少有一行数据,当ENDSELECT语句执行完,SY-DBCNT中保存着记录的个数。SY-SUBRC = 4: 没有数据。SY-SUBRC = 8: 只有使用“SELECT SINGLE FOR UPDATE”时才会有, 表示: WHERE条件指定的记录不止一行,结果是没有记录被选
阅读全文
浙公网安备 33010602011771号