一種對(duì)象重復(fù)利用的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種對(duì)象重復(fù)利用的方法和裝置。
【背景技術(shù)】
[0002]在計(jì)算機(jī)技術(shù)領(lǐng)域中,快速顯示給用戶的體驗(yàn)是非常重要的。但是如何做到快速顯示,是技術(shù)人員一直不斷努力奮斗的方向。現(xiàn)有技術(shù)中,顯示對(duì)象的方法一般是在內(nèi)存中申請(qǐng)相應(yīng)的資源、建立對(duì)象,然后將對(duì)象顯示給用戶,當(dāng)不需要顯示該對(duì)象時(shí),將該對(duì)象在內(nèi)存中刪除,同時(shí)釋放一定空間的內(nèi)存。系統(tǒng)會(huì)將釋放的內(nèi)存進(jìn)行回收整理。但是不斷的申請(qǐng)和釋放內(nèi)存對(duì)計(jì)算機(jī)系統(tǒng)的性能有影響,且如果申請(qǐng)、釋放內(nèi)存的頻率過(guò)快,釋放的內(nèi)存沒(méi)有被系統(tǒng)及時(shí)回收,會(huì)造成沒(méi)有足夠的內(nèi)存導(dǎo)致系統(tǒng)崩潰。
[0003]上述問(wèn)題對(duì)于應(yīng)用于游戲的計(jì)算機(jī)尤其突出,例如,游戲中經(jīng)常有許多重復(fù)的對(duì)象,比如一個(gè)主角在一個(gè)競(jìng)技場(chǎng)中不斷殺怪。每次有5個(gè)怪出現(xiàn),殺死一個(gè)又會(huì)出來(lái)一個(gè)。當(dāng)怪物出現(xiàn)時(shí),游戲程序會(huì)向系統(tǒng)申請(qǐng)內(nèi)存用來(lái)保存怪物,當(dāng)怪物死亡會(huì)將怪物的內(nèi)存釋放掉,釋放掉的內(nèi)存系統(tǒng)會(huì)回收。如果不斷的申請(qǐng)和釋放內(nèi)存會(huì)對(duì)游戲的性能有影響,且如果申請(qǐng)釋放內(nèi)存的頻率過(guò)快,釋放的內(nèi)存系統(tǒng)沒(méi)有及時(shí)的回收,則會(huì)造成沒(méi)有足夠的內(nèi)存導(dǎo)致游戲崩潰。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供了一種對(duì)象重復(fù)利用的方法和裝置,克服了現(xiàn)有技術(shù)中不能將釋放內(nèi)存及時(shí)回收導(dǎo)致系統(tǒng)崩潰的問(wèn)題。
[0005]本發(fā)明實(shí)施例提供了一種對(duì)象重復(fù)利用的方法,所述方法包括:
獲取取消對(duì)象顯示的指令;
將所述對(duì)象設(shè)置為未使用狀態(tài);并將所述對(duì)象設(shè)置為不可見(jiàn)狀態(tài);其中,所述設(shè)置為未使用狀態(tài)的對(duì)象用于再次顯示;
根據(jù)所述設(shè)置為不可見(jiàn)狀態(tài),隱藏所述對(duì)象。
[0006]本發(fā)明實(shí)施例還提供了一種對(duì)象重復(fù)利用的方法,所述方法包括:
獲取使用對(duì)象的指令;
獲取并顯示所述未使用狀態(tài)的對(duì)象;其中,所述未使用狀態(tài)的對(duì)象包括在取消對(duì)象顯示操作時(shí)設(shè)置為未使用狀態(tài)的對(duì)象。
[0007]本發(fā)明實(shí)施例還提供了一種對(duì)象重復(fù)利用的裝置,所述裝置包括:第一獲取單元,第一設(shè)置單元,第二設(shè)置單元,隱藏單元;
所述第一獲取單元,用于獲取取消對(duì)象顯示的指令;
所述第一設(shè)置單元,用于將所述對(duì)象設(shè)置為未使用狀態(tài);
所述第二設(shè)置單元,用于將所述對(duì)象設(shè)置為不可見(jiàn)狀態(tài);其中,所述設(shè)置為未使用狀態(tài)的對(duì)象用于再次顯示;
所述隱藏單元,用于根據(jù)所述設(shè)置為不可見(jiàn)狀態(tài),隱藏所述對(duì)象。
[0008]本發(fā)明實(shí)施例還提供了一種對(duì)象重復(fù)利用的裝置,所述裝置包括:第二獲取單元,第三獲取單元,和顯示單元;
所述第二獲取單元,用于獲取使用對(duì)象的指令;
所述第三獲取單元,用于獲取所述未使用狀態(tài)的對(duì)象;其中,所述未使用狀態(tài)的對(duì)象包括在取消對(duì)象顯示操作時(shí)設(shè)置為未使用狀態(tài)的對(duì)象;
所述顯示單元,用于顯示所述未使用狀態(tài)的對(duì)象。
[0009]從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例通過(guò)將需要取消顯示的對(duì)象設(shè)置為未使用狀態(tài),并將所述對(duì)象設(shè)置為不可見(jiàn)狀態(tài),該未使用狀態(tài)的對(duì)象可以繼續(xù)保存在內(nèi)存中,等待下次需要顯示時(shí),系統(tǒng)會(huì)從標(biāo)記為未使用狀態(tài)的對(duì)象中挑選需要數(shù)量的對(duì)象進(jìn)行顯示,不同于現(xiàn)有技術(shù)中在內(nèi)存中刪除對(duì)象的操作,從而大大提高了顯示速度,同時(shí)克服了現(xiàn)有技術(shù)中不能將釋放內(nèi)存及時(shí)回收導(dǎo)致系統(tǒng)崩潰的問(wèn)題。
【附圖說(shuō)明】
[0010]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0011]圖1為本發(fā)明實(shí)施例提供的一種對(duì)象重復(fù)利用的方法流程示意簡(jiǎn)圖。
[0012]圖2為本發(fā)明實(shí)施例提供的另一種對(duì)象重復(fù)利用的方法流程示意簡(jiǎn)圖。
[0013]圖3為本發(fā)明實(shí)施例提供的另一種對(duì)象重復(fù)利用的方法流程示意簡(jiǎn)圖。
[0014]圖4為本發(fā)明實(shí)施例提供的一種對(duì)象重復(fù)利用的裝置示意簡(jiǎn)圖。
[0015]圖5為本發(fā)明實(shí)施例提供的另一種對(duì)象重復(fù)利用的裝置示意簡(jiǎn)圖。
【具體實(shí)施方式】
[0016]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0017]本發(fā)明實(shí)施例提供了一種對(duì)象重復(fù)利用的方法和裝置,通過(guò)將取消顯示的對(duì)象設(shè)置為未使用狀態(tài),并設(shè)置為不可見(jiàn)狀態(tài),使得該未使用狀態(tài)的對(duì)象可以被再次顯示,相比于現(xiàn)有技術(shù)將取消顯示的對(duì)象從內(nèi)存中刪除的技術(shù)方案,克服了現(xiàn)有技術(shù)中不能將釋放內(nèi)存及時(shí)回收導(dǎo)致系統(tǒng)崩潰的問(wèn)題。如下結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)說(shuō)明。
[0018]如圖1所示,本發(fā)明實(shí)施例提供了一種對(duì)象重復(fù)利用的方法,該方法包括:
步驟101、獲取取消對(duì)象顯示的指令;
需要理解的是,步驟101中所說(shuō)的“取消對(duì)象顯示的指令”可以是游戲中怪物或者游戲中其它事物的消亡,通常這類(lèi)對(duì)象都有多次顯示的特征,例如,怪物會(huì)被玩家不斷殺死,但是,還會(huì)不斷有新的怪物來(lái)增加游戲難度。還需要理解的是,這里的對(duì)象不限于游戲中怪物,對(duì)于需要多次顯示的對(duì)象都可以利用本發(fā)明實(shí)施例提供的技術(shù)方案。
[0019]步驟102、將所述對(duì)象設(shè)置為未使用狀態(tài);并將所述對(duì)象設(shè)置為不可見(jiàn)狀態(tài);其中,所述設(shè)置為未使用狀態(tài)的對(duì)象用于再次顯示;
需要理解的是,在步驟102中將需要取消顯示的對(duì)象設(shè)置為未使用狀態(tài),該未使用狀態(tài)的對(duì)象可以繼續(xù)保存在內(nèi)存中,等待下次需要顯示時(shí),系統(tǒng)會(huì)從標(biāo)記為未使用狀態(tài)的對(duì)象中挑選需要數(shù)量的對(duì)象進(jìn)行顯示,不同于現(xiàn)有技術(shù)中在內(nèi)存中刪除對(duì)象的操作,從而大大提高了顯示速度,同時(shí)克服了現(xiàn)有技術(shù)中不能將釋放內(nèi)存及時(shí)回收導(dǎo)致系統(tǒng)崩潰的問(wèn)題。
[0020]步驟103、根據(jù)所述設(shè)置為不可見(jiàn)狀態(tài),隱藏所述對(duì)象。
[0021]其中,步驟103中隱藏所述對(duì)象,可以是將對(duì)象設(shè)置為不可見(jiàn)如隱身,或者是將對(duì)象放置在屏幕外,也可以是其它,此處不限制具體隱藏方法。
[0022]通過(guò)上述對(duì)本發(fā)明實(shí)施例提供的一種對(duì)象重復(fù)利用的方法,該方案通過(guò)將需要取消顯示的對(duì)象設(shè)置為未使用狀態(tài),并將所述對(duì)象設(shè)置為不可見(jiàn)狀態(tài),該未使用狀態(tài)的對(duì)象可以繼續(xù)保存在內(nèi)存中,等待下次需要顯示時(shí),系統(tǒng)會(huì)從標(biāo)記為未使用狀態(tài)的對(duì)象中挑選需要數(shù)量的對(duì)象進(jìn)行顯示,不同于現(xiàn)有技術(shù)中在內(nèi)存中刪除對(duì)象的操作,從而大大提高了顯示速度,同時(shí)克服了現(xiàn)有技術(shù)中不能將釋放內(nèi)存及時(shí)回收導(dǎo)致系統(tǒng)崩潰的問(wèn)題。
[0023]優(yōu)選的,圖1所述方法中,所述獲取取消對(duì)象顯示的指令;將所述對(duì)象設(shè)置為未使用狀態(tài)之后,所述方法還包括:
步驟104,判斷在內(nèi)存中未使用狀態(tài)的對(duì)象的數(shù)量Y是否大于設(shè)定數(shù)量N;
步驟105,如果大于N,則在內(nèi)存中刪除(Y-N)個(gè)對(duì)象。
[0024]通過(guò)增加上述步驟104和105,使得設(shè)備內(nèi)存中未使用狀態(tài)的對(duì)象的保持設(shè)定數(shù)量N,對(duì)于過(guò)多的未使用狀態(tài)的對(duì)象及時(shí)刪除,達(dá)到不浪費(fèi)內(nèi)存資源的目的。
[0025]如圖2所示,本發(fā)明實(shí)施例提供了一種對(duì)象重復(fù)利用的方法,該方法與上述圖1說(shuō)明的方法屬于相同的發(fā)明構(gòu)思,所不同的是,圖1說(shuō)明的方法是如何取消對(duì)象顯示的方案,而圖2說(shuō)明的是如何顯示對(duì)象的方案,具體如下:
該方法包括:
步驟201,獲取使用對(duì)象的指令;
與圖1中所說(shuō)的對(duì)象相同,也可以是指游戲中的怪物,但不限于怪物,該對(duì)象也不限制于游戲中,也可以是其它應(yīng)用中的對(duì)象。
[0026]步驟202,獲取并顯示所述未使用狀態(tài)的對(duì)象;其中,所述未使用狀態(tài)的對(duì)象包括在取消對(duì)象顯示操作時(shí)設(shè)置為未使用狀態(tài)的對(duì)象。
[0027]通過(guò)上述對(duì)本發(fā)明實(shí)施例提供的一種對(duì)象重復(fù)利用的方法,該方案通過(guò)獲取并顯示所述未使用狀態(tài)的對(duì)象;其中,所述未使用狀態(tài)的對(duì)象包括在取消對(duì)象顯示操作時(shí)設(shè)置為未使用狀態(tài)的對(duì)象,不同于現(xiàn)有技術(shù)中在內(nèi)存中刪除對(duì)象的操作,在需要顯示對(duì)象時(shí)需要重新建立對(duì)象,從而使得該方案大大提高了顯示速度,同時(shí)克服了現(xiàn)有技術(shù)中不能將釋放內(nèi)存及時(shí)回收導(dǎo)致系統(tǒng)崩潰的問(wèn)題。
[0028]優(yōu)選的,步驟202中所述獲取未使用狀態(tài)的對(duì)象之后,顯示所述未使用狀態(tài)的對(duì)象之前,所述方法還包括:
對(duì)所述對(duì)象進(jìn)行初始化操作。
[0029]其中,初始化操作可以包括:如初始化怪物的位置,補(bǔ)滿血等。
[0030]優(yōu)選的,步驟202中所述顯示所述未使用狀態(tài)的對(duì)象之后,所述方法還包括: 將顯示的對(duì)象設(shè)置為正在使用狀態(tài)。
[0031]優(yōu)選的,步驟202中所述獲取取消對(duì)象顯示的指令之前,所述方法還包括:
在內(nèi)存中建立N個(gè)對(duì)象,將所述N個(gè)對(duì)象設(shè)置為在屏幕上不可見(jiàn),和設(shè)置為未使用狀
??τ O
[0032]優(yōu)選的,步驟202中所述獲取使用對(duì)象的指令,具體包括:
獲取使用M個(gè)對(duì)象的指令;
其中,步驟202中所述獲取并顯示所述未使用狀態(tài)的對(duì)象之前,所述方法還包括:
判斷N是否大于Μ,
如果Ν>Μ,獲取并顯示M個(gè)未使用狀態(tài)的對(duì)象;
如果Ν〈Μ,新建(M-N)個(gè)對(duì)象,顯示所述N個(gè)對(duì)象和顯示新建的(M-N)個(gè)對(duì)象。
[0033]優(yōu)選的,步驟202中所述獲取取消對(duì)象顯示的指令;將所述對(duì)象設(shè)置為未使用狀態(tài)之后,所述方法還包括:
判斷在內(nèi)存中未使用狀態(tài)的對(duì)象的數(shù)量Y是否大于N ;
如果大于N,則在內(nèi)存中刪除(Y-N)個(gè)對(duì)象。
[0034]如圖3所示,本發(fā)明實(shí)施例提供了一種對(duì)象重復(fù)利用的方法,該方法與圖2說(shuō)明的方法相似,所不同的在于,圖3說(shuō)明的方法跟具體。該方法包括:
步驟301,在內(nèi)存中建立N個(gè)對(duì)象,將所述N個(gè)對(duì)象設(shè)置為在屏幕上不可見(jiàn),和設(shè)置為未使用狀態(tài);
步驟302,獲取使用M個(gè)對(duì)象的指令;
步驟303,判斷N是否大于Μ,
步驟304,如果Ν>Μ,獲取M個(gè)未使用狀態(tài)的對(duì)象;對(duì)1個(gè)未使用狀態(tài)的對(duì)象進(jìn)行初始化操作,顯示M個(gè)未使用狀態(tài)的對(duì)象;將顯示的對(duì)象設(shè)置為正在使用狀態(tài);
步驟305,如果Ν〈Μ,新建(M-N)個(gè)對(duì)象,將