第一篇:hge注意事项
注意事项
1.用VS编译后的hge程序不能在其他机器上运行: 首先先确定hge.dll和bass.dll还有其他相关文件是否在hge程序的目录 下或者其找得到的地方.然后请确认项目属性中公共语言运行库是否为关闭 具体做法项目属性(project properties)->配置属性(configuration p roperties)->公共语言运行库(common language runtime support)将该项关闭。
其次请确认Release的运行时库为MT模式 具体做法在之前提到配置属性中->C/C++->代码生成(code genera tion)->运行时哭(runtime library)中修改。
2.使用hgeSprite类中的GetBoundingBox()时,注意其接受一个hgeRect 指针参数,将得到的sprite的boundingbox存储在该指针所指的对象中 因此,改指针指向的对象必须要先初始化后才能使用。例如: 3.m_boundingbox = new hgeRect();4.m_sprite = GetBoundingBox(m_posX, m_posY, m_boundingBox);5.hgeSprite中的SetHotSpot的功用是设定该sprite的热点(锚点)。其接 受的参数a,b代表改热点据sprite坐上角的相对横,纵距离。设置热点 是初始化一个sprite过程中的一部分。之后再对该sprite进行处理时其 坐标就是其热点坐标。例如: 6.hgeSprite* spr = new hgeSprite(0, 0, 0, 20, 20)//20x20 7.spr.SetHotSpot(10, 10);//Hot spot(10, 10)in center 8.当要将FrameFunc和RenderFunc封装到类里面时,注意用System_SetState 是无法将类成员函数直接设为hge的FrameFunc和RenderFunc 的。因为类成员函数属于一个具体的对象,不能直接从类调用他。例如: 9.class GameState 10.{ 11.public: 12.bool FrameFunc();13.bool RenderFunc();14.} 15.hge->System_SetState(HGE_FRAMEFUNC, 16.GameState::FrameFunc);//ERROR 17.hge->System_SetState(HGE_RENDERFUNC, 18.GameState::RenderFunc);//ERROR 代替的方法是将该类建立为Singleton,为其提供Static的FrameFunc 和RenderFunc来调用成员函数进行真正的工作。例如: class GameState { public: static instance;static bool FrameFunc(){ return instance.doUpdate();} static bool RenderFunc(){ return instance.doRender();} private: bool doUpdate();bool doRender();} 19.使用hge中Input系列函数时,区分GetKeyState和KeyDown的区别并 选择你需要的使用。KeyDown 用于侦测按键被按下的事件,适合于 监测单次按下键做出反应的情况。GetKeyState则是侦测某个键是否 被按下的状态。用于按下并保持按下按键进行操作情况比较合适。
20.我们一般用hge指针来操作hge。但是hge指针不需要是全局变量。由 于hge是Singleton,每次采用hgeCreate返回的指针都是指向同一个h ge类。所以任何时候你需要用到hge中的功能就能用hgeCreate 来得 到一个指向hge的指针。要记得使用release来释放hge。
21.尽量使用hgeResourceManager类。因为他它真的很好用。如果没有使用他,那么注意在初始化texture/font时一定要确保hge 已经初始化过(System_Initiate已成功)。否则会产生运行时错误。
22.如果你将hgeSprite,hgeFont这些类封装在你自定义的类中,记得不 要把delete放在析构函数中。如果这样将导致游戏退出时出错。将需要执行的delete操作提取出来放入一个函数中(如命名为Clear)在合适的地方手动调用。例如: 23.if(hge->System_Initiate())24.{ 25.RenderUnit::instance();//singleton 26.hge->System_Start();27.RenderUnit::instance().clearup();//clearup includes deletes 28.} 29.HGE的Color格式为0xAARGGBB 其中Agreen B-blue 但事实上传统C++颜色值表示为 0xBBGGRR 记得不要弄错。
30.HGE和Box2D混用时很容易采用一比一的单位,即1个像素代表1个 Box2D中的一个单位。但这样是严重错误的。Box2D中1代表的单位 为1米。所以HGE中渲染一个30像素的正方形在Box2D中意味着一栋 楼房。Box2D在其文档中明确指出,Box2D只能模拟0,1至10米的物 体,对于超出范围以外的物体的物理模拟将会很不正常,一般表现 为速度慢,惯性大且难以加速到很大的速度。所以一定不能在HGE和Box2D直接采用一比一单位比。
31.Box2D中如果为了给物体一个线性速度,比较好的方法是使用SetLi nearVelocity()而不是ApplyImpulse()来设置冲量。
32.HGE和Box2D中获得的radius是相同的。所以下面语句能正确的将Bo x2D模拟的情况反应到屏幕上。
33.objspr->RenderEx(dynbody->GetPosition().x, 34.dynbody->GetPosition().y, dynbody->GetAngle())但是务必注意10条中的内容,一比一的单位制必然导致灾难性结果。
35.HGE中sprite的淡入淡出效果可以通过SetColor不断更改sprite的颜色 值来做到。对于一个带有自定义的texture的sprite,将其颜色设置为0xFFFFFFF 在一般的BlendMode设定下为最标准的值。如果更改为0x88FFFFFF 则正好是半透明状态。以此类推0x00FFFFFF时则为完全透明。下面给出一个简单的渐变色的类的例子。一个简单的办法是设置一个int的factor,将其乘以0x1000000对颜色进行加减来控制其alpha值。但要注意的是HGE中颜色值的类型是 typedef unsigned long DWORD 是非符号数。
如果用下面这种方式进行操作必然导致错误。colorword-= factor*0x1000000;if(colorword < 0x00FFFFFF){ colorword = 0x00FFFFFF;return false;//fade finished } return true;//fading
//由于colorword是非符号数,if判断支内语句永远无法执行可以改为下面的方法:
DWORD delta = factor*0x1000000;if(colorword < delta){ colorword = 0x00FFFFFF;return false;} else { colorword-= delta;return true;} 36.Box2D中一个Body的默认弹性系数是0,即不反弹。这个设定使得 在初期进行渲染测试时容易产生误解。如果要设置一个Body使其能够反弹,首先检查其是否创建了Shape 然后看是否执行了SetMasses类语句,之后设置Restitution设置弹性 如果还是不能反弹则需检查该Body是否冻结(用IsFrozen()检查)37.第10条中提到了不能在HGE和Box2D直接直接用一比一的单位制。比较好的方法是预先建立你想要大小的Sprite,将Box2D模拟的结 果乘以系数加上偏移来渲染到屏幕上。例如
38.//建立一个Box2D中的物件,尺寸为5m x 5m正方形 39.b2BodyDef dynBodyDef;40.b2PolygonDef dynPolyDef;41.dynPolyDef.SetAsBox(2.5f, 2.5f);42.dynbody = world->CreateBody(&dynBodyDef);43.dynbody->CreateShape(&dynPolyDef);44.dynbody->SetMassFromShapes();45.46.//根据上面Box3D中物件的尺寸创建Sprite,这里是1:10 47.dynspr = new hgeSprite(dyntex, 0, 0, 50.0f, 50.0f);48.dynspr->SetHotSpot(25.0f, 25.0f);49.50.//渲染,计算坐标要计入全局的偏移量和缩放量
51.dynspr->RenderEx(dynbody->GetPosition().x * GLOBSCALE 52.+ GLOBSHIFT, dynbody->GetPosition().y * GLOBSCALE 53.+ GLOBSHIFT, dynbody->GetAngle());容易看出来对Body/Shape建立相应的Sprite时要用到Shape的尺寸所以最好在Body的ShapeDef可见的地方就建立Sprite。
54.对于包装FrameFunc的类对象,慎用Singleton模式。Singleton只要实例化后很难销毁重建。对于需要完成游戏重置的 情况会早成很大的麻烦。含有RenderFunc的对象偶尔可以考虑用Singleton模式。总的来说,程序进程中需要重置的对象最好都不要用Singleton。EDIT: 后来发现对于这些对象还是尽量使用Singleton比较好 这样有一个比较可靠的可以全局取得的实例在 可以避免很多类似两个头文件需要互相包含的问题 对于重置问题 建议设置两个函数分别负责初始化和数据清除,在重置时可以先调用清 除函数,再进行初始化即可。注意要照顾到所有数据成员。
55.Box2D中实现“子弹时间”效果,只要动态修改world的timestep大小 即可。而且效果相当完美。
56.HGE中的卷轴问题,可以用Gfx_SetTransform解决。但是这个函数 貌似有点问题。
57.void Gfx_SetTransform(58.float x = 0, 59.float y = 0, 60.float dx = 0, 61.float dy = 0, 62.float rot = 0, 63.float hscale = 0, 64.float vscale = 0 65.);虽然每个都有默认参数但是如果根据源码中,如果忽略设置vscale 那么之前的参数都会被忽略。这应该是个bug。所以如果要使用SetTransform必须将提供所有参数。hge->Gfx_SetTransform(0,0, 10.0f, 10.0f, 0, 1.0f, 1.0f);66.Box2D中隐藏的函数 有一些简单的计算函数在Box2D API文档中貌似是找不到的 比如b2vec2这个向量类的点乘和差乘操作,在b2Vec2类中没有相关描述 实际上在b2math.h中有定义一系列的相关函数,比如b2dot就是对两个向 量进行点乘。当你发现一些很常用的操作没有相关函数时不妨自己打开相应的源代码翻看一下。
第二篇:注意事项
注意事项
一.
二.
三.
四. 加钟表和做挡电表箱 都需厚板 钟表加25元 挡电表箱加20元 每天看评价管理 对评价进行解释 每天把已发货的宝贝点发货,并且发短信给客户提醒客户宝贝以发出 对有特殊情况的单子须进行备注(如改地址,加钟表,做挡电表箱,发物流等)
五.
六.
七.
八. 一定要注意不是当天拍的但已付款的单子与价格,先记下来 以防漏单。要发物流的单子,须在白单上面注明详细的,收件人姓名,电话,地址。客户提供图片 须在原尺寸的价格基础上加百分之二十的加工设计费。发给厂里的单子格式:
三联画:
如要三块50*70*3薄板 7A-121ABC
如要其中的两块AB:50*70*3 薄板 7A-121只要AB
两联与四联 同上
单副系类:50*70薄板8CT-027-026
只需把型号标注好就行 不用写数量 不用加ABC
九、白单的格式:
三联画:
如要三块50*70*3薄板 7A-121ABC
如要其中的两块AB:50*70*2 薄板 7A-121只要AB
注意数量的填写 与发给厂里的区别
单副系类:50*70*2 薄板8CT-027-026
空杯的学习无怨的工作 感恩的处事 吃亏为人 求事不求利
第三篇:注意事项
1、请贵单位在预约的时间内来房产交易办证大厅,我们会安排房产测量人员前去测量贵单位的房产,测量后,请随同测量人员一同返回房产交易大厅,办理相关手续;
2、(1)建设工程规划许可证(8)机构代码证复印件
(2)土地使用证(9)股东会决议(仅限公司)
(3)计经委立项批复(10)公司章程(仅限公司)
(4)归档证明(11)营业执照复印件(仅限公司)
(5)竣工验收报告书(12)单位委托书
(6)房产平面图(13)委托人身份证明
(7)法人代表身份证复印件
3、预约测量时间如遇下雨等天气原因,测量时间顺延;
4、如有任何问题,请拨打电话0511-5172329,我们会为您做详细的解答。
第四篇:注意事项
注意事项: 1.专业技术岗位等级和工勤技能岗位等级大家一定要填写准确,对应自己聘用的等级填写。例如:专技十级;技术工四级。2.本人工作总结本人自评要写自评的结果(分别是优秀;合格;基本合格;不合格)结尾处(签名)必须将表打印出来后再手写签名。日期是2017年7月10日 3.个人复制空表去填写,电子档自行保存,暑假之后回园上班第一天交纸质版(各班教师交教务室,保育后勤交给张副,行政人员交各主管领导)
4.临聘人员同样上交(岗位等级不用填写)。
2017年7月5日
第五篇:注意事项
注意事项
如下建议:垂直运输:塔吊+汽车吊,钢结构加工期:20天;每层安装期:15天*4=60天。钢结构内容:钢柱、钢梁、钢梁上栓钉、楼板压型钢板、屋面压型钢板等结构的制作安装。
具体需要跟承包人协商确定施工进度计划及施工方案。