開發網頁遊戲過程記錄2 遊戲角色身份認證

2021-08-26 11:45:51 字數 1105 閱讀 8695

遊戲的使用者必然分多種,有不同的許可權,也有不同的屬性,大致可以分為anonymous即匿名使用者,代表的是進入官網卻沒有遊戲賬號的遊客,platform即平台使用者,代表的是有遊戲賬號但是沒有進入遊戲或沒有啟用遊戲的使用者,gameuser即遊戲使用者,代表的是已經啟用遊戲並且已有遊戲記錄的使用者。而這些使用者類別用什麼資料型別來儲存比較方便呢?經過一段時間的討論想到了用乙個enum來存放這些不同的使用者。然而在認證使用者過程中需要分清這些使用者的具體角色,這時可以將這個enum定義在乙個認證介面中,這個介面負責獲得使用者的之前登入時間和登入ip,當前遊戲中登入時間和ip,當前使用者的角色型別(返回之前定義的那個enum)。接著實現這個介面進行使用者角色的具體判斷(可以通過玩家是否持有賬號id來判斷),如果賬號id為null或者intvalue()<=0,則可以返回匿名使用者,如果存在賬號id則繼續判斷是否存在玩家的遊戲賬號,如果不存在則為平台使用者,反之則為遊戲使用者。當然這個實現類需要實現comparable類,以便進行類之間的比較。那麼這個實現類裡的一些方法如何實現呢?比如玩家的登入時間和登入ip如何獲取呢?這時需要定義乙個pojo類來封裝使用者可能會用到的屬性,比如賬號名,賬號id等等資訊。並且可以在這個實現類的構造方法中初始化這些屬性值。但是問題又出現了,當使用者具有賬號id,還有比如遊戲區id,比如俱樂部id,這些id難道都用乙個getid()(這裡的寫法是自己為了方便這樣寫的,意思是獲取各類id)來獲得嗎?這時就會覺得**不簡潔,這時想到的是在使用乙個pojo類來封裝這些id屬性,而在那個使用者基本屬性的pojo類中定義的getid()方法返回的是這個封裝id的pojo類,這時就可以在那個實現類的構造方法裡使用getid().getid()來獲得具體的某一中id了。當然這時在封裝各類id的pojo類中的hashcode()方法和equals()方法就需要操作所有的id了。如equals方法如下:

public boolean equals (object obj)

}else

if (null != this.getid() && null != mobj.getid())

}else

return true;

}hashcode()方法如下:

當然還需要tostring()方法和compareto()方法。其實這些方法都可以使用apache common包提供的相應類來處理。

開發網頁遊戲過程記錄20 atomikos配置

本專案需要使用atomikos這個jta框架來進行對資料庫的事務操作,首先是配置jta.properties檔案,如下 com.atomikos.icatch.service com.atomikos.icatch.standalone.usertransactionservicefactoryco...

開發網頁遊戲過程記錄4 玩家性別識別

在開發過程中會遇到獲取玩家性別的功能,總所周知玩家性別是有很多種的,比如unkown 即不清楚具體性別 female,male,當然有些玩家還會以girl和boy來分別。那麼這麼多的性別 暫且統稱為性別 如何來獲取相應的乙個呢?難道就在 裡使用 player.is來判斷玩家的具體性別嗎?這樣會有很多...

網頁遊戲開發須知

1 遊戲是一種非線性的定向的受限制的體驗 2 好遊戲 易於上手,難於精通 3 玩家的遊戲消耗,當遊戲可消耗的資源被玩家消耗完的時候,遊戲就沒吸引力了。4 遊戲鉤子,為了鉤住玩家的一些小便宜。5 網頁遊戲的玩家忠誠度低 6 網頁遊戲更換方便。乙個鏈結就把你的玩家帶走了。7 網頁遊戲的速度是關鍵,在載入...