引言:
1,游戏页面与页面的交互
(1)装备背包
(2)装备信息页面
在游戏开发中,2D页面之间,有时候少不了关联性,比如游戏的背包系统,玩家进入背包系统(见上图装备背包以及装备信息页面),点击装备,查看装备信息页面,一般卡牌类游戏这些信息页面都附带增加装备
属性值的功能,比如《放开那三国》里装备的强化功能,玩家花一定量的游戏货币强化了装备后,该装备信息页面里装备属性会随着刷新。但是关闭该装备信息页面后,背包系统
页面里对应的该装备描述也要随着改变,但是背包系统怎么知道装备信息页面里已经改变了原有的属性值呢,那这个就用到了事件的注册监听和派发。也就是说,如果装备完成了
强化,在关闭装备信息页面的时候,要向背包系统页面发一个消息,而背包系统在打开的时候注册了一个消息处理函数,以处理发过来的消息,当接收到信息页面发过来的消息的
时候,在消息处理函数中刷新背包系统页面。这就完成了数据的一致性
2.客户端与服务器的交互
在上面提到了,装备强化功能,这就牵涉到了客户端和服务器的交互,在玩家点击强化按钮的时候,是需要向服务器发送强化请求的,在发送之前,客户端需要注册一个消息处理函数,等待服务器强化成功后,接收服务器发给客户端强化成功与否的消息,客户端接收到消息后,进行强化成功特效播以及页面的刷新。
上面的两种情况,都牵涉到了游戏元素的交互性,其中页面与页面的消息传递,unity自带的消息处理机制可以胜任,但是服务器数据层和UI层的交互,则略显不足,因为数据是数据,UI是UI,UI只是数据的展示,所以在此统一定义了一套消息传递处理机制,用来处理UI层页面之间,客户端也服务器之间的交互
事件机制:
1,每一个事件用唯一的事件ID标识即EventID,每个EventID对应一个消息处理函数,事件ID用一个工具类来单词处理,代码EventID.as内容如下:
public sealed class EVENTID{ // public const int EID_WEAPON_STRONG = 1;//武器强化事件ID public const int EID_WAIT_SERVER_MSG = 2;//等待服务器消息传送事件ID }
2,每一个事件发送,都可能带有一定的消息数据,比如,把服务器传递过来的数据,直接抛给页面,所以需要定义一个,消息数据缓存类CoreEvent.as代码如下
public class CoreEvent { protected int m_iEventId = 0; //消息处理码,比如m_iEventCode = 0,表示接受服务器消息成功,m_iEventCode = 1,服务器交互失败,当晚间游戏货币不足的时 //候,不能完成装备强化等功能,UI层根据不同的m_iEventCode,做相应的处理----强化成功或者失败的处理 protected int m_iEventCode = 0; protected Object m_EventParam = null; public CoreEvent(int eventId, int eventCode = 0) { m_iEventId = eventId; m_iEventCode = eventCode; } public CoreEvent(int eventId, int eventCode, Object eventParam) { m_iEventId = eventId; m_iEventCode = eventCode; m_EventParam = eventParam; } public int EventID { get { return m_iEventId; } } public int EventCode { get { return m_iEventCode; } } public Object EventParam { get { return m_EventParam; } set { m_EventParam = value; } }}
3,下面的就是主要的消息注册和派发,消息移除核心代码,文件CoreEventDispatcher.as,代码如下:
public class CoreEventDispatcher { /*消息处理委托,每一个事件id,对应一个或多个消息处理函数*/ public delegate void EventHandler(CoreEvent evt); private Dictionary<int eventhandler> mEventHandlerPool = new Dictionary<int eventhandler>(); /*消息注册函数*/ public void AddEventListener(int eventId, EventHandler handler) { EventHandler evtHandler = null; if(mEventHandlerPool.ContainsKey(eventId)) { evtHandler = mEventHandlerPool[eventId]; evtHandler += handler; mEventHandlerPool[eventId] = evtHandler; } else mEventHandlerPool.Add(eventId, handler); evtHandler = null; } /*消息移除函数*/ public void RemoveEventListener(int eventId, EventHandler handler) { EventHandler evtHandler = null; if(mEventHandlerPool.ContainsKey(eventId)) { evtHandler = mEventHandlerPool[eventId]; evtHandler -= handler; mEventHandlerPool[eventId] = evtHandler; if(evtHandler == null) mEventHandlerPool.Remove(eventId); } evtHandler = null; } /*消息派发函数*/ public void DispatchCoreEvent(CoreEvent evt) { if(evt != null && mEventHandlerPool.ContainsKey(evt.EventID)) { EventHandler evtHandler = mEventHandlerPool[evt.EventID]; if( evtHandler != null) { evtHandler(evt); } } }}</int></int>
至此,整个自定义处理事件已经完成量,为了方便,在此用一个事件管理EventMgr类来统一管理该自定义事件消息机制:代码如下
public class EventMgr { private static EventMgr ins = null; private CoreEventDispatcher m_EventDispatcher = new CoreEventDispatcher(); EventMgr() { } public static EventMgr Ins { get { if(ins == null) { ins = new EventMgr(); } return ins; } } public void AddEventListener(int eventId, CoreEventDispatcher.EventHandler handler) { m_EventDispatcher.AddEventListener(eventId, handler); } public void RemoveEventListener(int eventId, CoreEventDispatcher.EventHandler handler) { m_EventDispatcher.RemoveEventListener(eventId, handler); } public void DispatchCoreEvent(CoreEvent evt) { m_EventDispatcher.DispatchCoreEvent(evt); } }

Trend masa depan HTML adalah semantik dan komponen web, trend masa depan CSS adalah CSS-in-JS dan CSShoudini, dan trend masa depan JavaScript adalah webassembly dan tanpa pelayan. 1. Semantik HTML meningkatkan kebolehcapaian dan kesan SEO, dan komponen web meningkatkan kecekapan pembangunan, tetapi perhatian harus dibayar kepada keserasian penyemak imbas. 2. CSS-in-JS meningkatkan fleksibiliti pengurusan gaya tetapi boleh meningkatkan saiz fail. Csshoudini membolehkan operasi langsung rendering CSS. 3.Webassembly mengoptimumkan prestasi aplikasi penyemak imbas tetapi mempunyai keluk pembelajaran yang curam, dan tanpa pelayan memudahkan pembangunan tetapi memerlukan pengoptimuman masalah permulaan sejuk.

Peranan HTML, CSS dan JavaScript dalam pembangunan web adalah: 1. HTML mentakrifkan struktur laman web, 2. CSS mengawal gaya laman web, dan 3. JavaScript menambah tingkah laku dinamik. Bersama -sama, mereka membina kerangka, estetika dan interaktiviti laman web moden.

Masa depan HTML penuh dengan kemungkinan yang tidak terhingga. 1) Ciri -ciri dan piawaian baru akan merangkumi lebih banyak tag semantik dan populariti komponen web. 2) Trend reka bentuk web akan terus berkembang ke arah reka bentuk yang responsif dan boleh diakses. 3) Pengoptimuman prestasi akan meningkatkan pengalaman pengguna melalui pemuatan imej yang responsif dan teknologi pemuatan malas.

Peranan HTML, CSS dan JavaScript dalam pembangunan web adalah: HTML bertanggungjawab untuk struktur kandungan, CSS bertanggungjawab untuk gaya, dan JavaScript bertanggungjawab untuk tingkah laku dinamik. 1. HTML mentakrifkan struktur laman web dan kandungan melalui tag untuk memastikan semantik. 2. CSS mengawal gaya laman web melalui pemilih dan atribut untuk menjadikannya cantik dan mudah dibaca. 3. JavaScript mengawal tingkah laku laman web melalui skrip untuk mencapai fungsi dinamik dan interaktif.

Htmlisnotaprogramminglanguage; itisamarkuplanguage.1) htmlstructuresandformatswebcontentusingtags.2) itworkswithcssforstylingandjavascriptforinteractivity, meningkatkan pembangunan semula.

HTML adalah asas struktur laman web bangunan. 1. HTML mentakrifkan struktur kandungan dan semantik, dan penggunaan, dan sebagainya. 2. Menyediakan penanda semantik, seperti, dan sebagainya, untuk meningkatkan kesan SEO. 3. Untuk merealisasikan interaksi pengguna melalui tag, perhatikan pengesahan bentuk. 4. Gunakan elemen lanjutan seperti, digabungkan dengan JavaScript untuk mencapai kesan dinamik. 5. Kesilapan biasa termasuk label yang tidak terkawal dan nilai atribut yang tidak disebutkan, dan alat pengesahan diperlukan. 6. Strategi pengoptimuman termasuk mengurangkan permintaan HTTP, memampatkan HTML, menggunakan tag semantik, dll.

HTML adalah bahasa yang digunakan untuk membina laman web, menentukan struktur laman web dan kandungan melalui tag dan atribut. 1) HTML menganjurkan struktur dokumen melalui tag, seperti,. 2) Penyemak imbas menghancurkan HTML untuk membina DOM dan menjadikan laman web. 3) Ciri -ciri baru HTML5, seperti, meningkatkan fungsi multimedia. 4) Kesilapan biasa termasuk label yang tidak terkawal dan nilai atribut yang tidak disebutkan. 5) Cadangan pengoptimuman termasuk menggunakan tag semantik dan mengurangkan saiz fail.

WebDevelopmentReliesOnhtml, CSS, andjavascript: 1) HtmlStructuresContent, 2) CSSStylesit, dan3) JavaScriptaddsInteractivity, Formingthebasisofmodernwebexperiences.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)