本站AI自動(dòng)判斷提供您所需要的app下載:點(diǎn)我下載安裝,你懂的APP
導(dǎo)語(yǔ)“嗨嗨嗨!別睡了,醒醒醒醒!該干活兒了~” by——顧木子吖!
?
“剛睡醒,大佬你有什么事兒吖?” by——全體成員!
上期給大家分享的超詳細(xì)——簡(jiǎn)易版本的2048都吃透了沒(méi)?咳咳咳......沒(méi)吃透也沒(méi)關(guān)系!
慢慢來(lái),木木子一直在等你們崛起~哈哈哈哈 ,吶~ 現(xiàn)在這篇文章的話(huà)是上次承諾的一個(gè)升級(jí)版本的2048小游戲。
比之之前那款呢?有什么不同?
?
?那當(dāng)然是大大的不同那,今天教大家寫(xiě)的這款是有界面的小程序,單單是有界面的這一點(diǎn)就可以超前面那款了,更加富有趣味性的撒~來(lái),我們來(lái)看看!
?
正文環(huán)境安裝:Python3、pycharm、Pygame模塊等。
pip install -i https://pypi.douban.com/simple/ pygame
配置文件:
音樂(lè)、背景、字體等。
import os
'''FPS'''
FPS = 60
'''背景顏色'''
BG_COLOR = '#D3D3D3'
'''屏幕大小'''
SCREENSIZE = (650, 370)
'''保存當(dāng)前最高分的文件'''
MAX_SCORE_FILEPATH = 'score'
'''字體路徑'''
FONTPATH = os.path.join(os.getcwd(), 'resources/font/Gabriola.ttf')
'''背景音樂(lè)路徑'''
BGMPATH = os.path.join(os.getcwd(), 'resources/audio/bgm.mp3')
'''其他一些必要的常量'''
MARGIN_SIZE = 10
BLOCK_SIZE = 80
GAME_MATRIX_SIZE = (4, 4)
?定義2048游戲:
class Game2048(object):
def __init__(self, matrix_size=(4, 4), max_score_filepath=None, **kwargs):
# matrix_size: (num_rows, num_cols)
self.matrix_size = matrix_size
# 游戲最高分保存路徑
self.max_score_filepath = max_score_filepath
# 初始化
self.initialize()
'''更新游戲狀態(tài)'''
def update(self):
game_matrix_before = copy.deepcopy(self.game_matrix)
self.move()
if game_matrix_before != self.game_matrix: self.randomGenerateNumber()
if self.score > self.max_score: self.max_score = self.score
'''根據(jù)指定的方向, 移動(dòng)所有數(shù)字塊'''
def move(self):
# 提取非空數(shù)字
def extract(array):
array_new = []
for item in array:
if item != 'null': array_new.append(item)
return array_new
# 合并非空數(shù)字
def merge(array):
score = 0
if len(array) < 2: return array, score
for i in range(len(array)-1):
if array[i] == 'null':
break
if array[i] == array[i+1]:
array[i] *= 2
array.pop(i+1)
array.append('null')
score += array[i]
return extract(array), score
# 不需要移動(dòng)的話(huà)直接return
if self.move_direction is None: return
# 向上
if self.move_direction == 'up':
for j in range(self.matrix_size[1]):
col = []
for i in range(self.matrix_size[0]):
col.append(self.game_matrix[i][j])
col = extract(col)
col.reverse()
col, score = merge(col)
self.score += score
col.reverse()
col = col + ['null',] * (self.matrix_size[0] - len(col))
for i in range(self.matrix_size[0]):
self.game_matrix[i][j] = col[i]
# 向下
elif self.move_direction == 'down':
for j in range(self.matrix_size[1]):
col = []
for i in range(self.matrix_size[0]):
col.append(self.game_matrix[i][j])
col = extract(col)
col, score = merge(col)
self.score += score
col = ['null',] * (self.matrix_size[0] - len(col)) + col
for i in range(self.matrix_size[0]):
self.game_matrix[i][j] = col[i]
# 向左
elif self.move_direction == 'left':
for idx, row in enumerate(copy.deepcopy(self.game_matrix)):
row = extract(row)
row.reverse()
row, score = merge(row)
self.score += score
row.reverse()
row = row + ['null',] * (self.matrix_size[1] - len(row))
self.game_matrix[idx] = row
# 向右
elif self.move_direction == 'right':
for idx, row in enumerate(copy.deepcopy(self.game_matrix)):
row = extract(row)
row, score = merge(row)
self.score += score
row = ['null',] * (self.matrix_size[1] - len(row)) + row
self.game_matrix[idx] = row
self.move_direction = None
'''在新的位置隨機(jī)生成數(shù)字'''
def randomGenerateNumber(self):
empty_pos = []
for i in range(self.matrix_size[0]):
for j in range(self.matrix_size[1]):
if self.game_matrix[i][j] == 'null': empty_pos.append([i, j])
i, j = random.choice(empty_pos)
self.game_matrix[i][j] = 2 if random.random() > 0.1 else 4
'''初始化'''
def initialize(self):
self.game_matrix = [['null' for _ in range(self.matrix_size[1])] for _ in range(self.matrix_size[0])]
self.score = 0
self.max_score = self.readMaxScore()
self.move_direction = None
self.randomGenerateNumber()
self.randomGenerateNumber()
'''設(shè)置移動(dòng)方向'''
def setDirection(self, direction):
assert direction in ['up', 'down', 'left', 'right']
self.move_direction = direction
'''保存最高分'''
def saveMaxScore(self):
f = open(self.max_score_filepath, 'w', encoding='utf-8')
f.write(str(self.max_score))
f.close()
'''讀取游戲最高分'''
def readMaxScore(self):
try:
f = open(self.max_score_filepath, 'r', encoding='utf-8')
score = int(f.read().strip())
f.close()
return score
except:
return 0
'''游戲是否結(jié)束'''
@property
def isgameover(self):
for i in range(self.matrix_size[0]):
for j in range(self.matrix_size[1]):
if self.game_matrix[i][j] == 'null': return False
if (i == self.matrix_size[0] - 1) and (j == self.matrix_size[1] - 1):
continue
elif (i == self.matrix_size[0] - 1):
if (self.game_matrix[i][j] == self.game_matrix[i][j+1]):
return False
elif (j == self.matrix_size[1] - 1):
if (self.game_matrix[i][j] == self.game_matrix[i+1][j]):
return False
else:
if (self.game_matrix[i][j] == self.game_matrix[i+1][j]) or (self.game_matrix[i][j] == self.game_matrix[i][j+1]):
return False
return True
?然后設(shè)置不同的顏色。
不同的數(shù)字2-4-8等等組合成不同的數(shù)字顏色相應(yīng)的變化。
顏色展示:
def getColorByNumber(number):
number2color_dict = {
2: ['#eee4da', '#776e65'], 4: ['#ede0c8', '#776e65'], 8: ['#f2b179', '#f9f6f2'],
16: ['#f59563', '#f9f6f2'], 32: ['#f67c5f', '#f9f6f2'], 64: ['#f65e3b', '#f9f6f2'],
128: ['#edcf72', '#f9f6f2'], 256: ['#edcc61', '#f9f6f2'], 512: ['#edc850', '#f9f6f2'],
1024: ['#edc53f', '#f9f6f2'], 2048: ['#edc22e', '#f9f6f2'], 4096: ['#eee4da', '#776e65'],
8192: ['#edc22e', '#f9f6f2'], 16384: ['#f2b179', '#776e65'], 32768: ['#f59563', '#776e65'],
65536: ['#f67c5f', '#f9f6f2'], 'null': ['#9e948a', None]
}
return number2color_dict[number]
'''將2048游戲的當(dāng)前數(shù)字排列畫(huà)到屏幕上'''
def drawGameMatrix(screen, game_matrix, cfg):
for i in range(len(game_matrix)):
for j in range(len(game_matrix[i])):
number = game_matrix[i][j]
x = cfg.MARGIN_SIZE * (j + 1) + cfg.BLOCK_SIZE * j
y = cfg.MARGIN_SIZE * (i + 1) + cfg.BLOCK_SIZE * i
pygame.draw.rect(screen, pygame.Color(getColorByNumber(number)[0]), (x, y, cfg.BLOCK_SIZE, cfg.BLOCK_SIZE))
if number != 'null':
font_color = pygame.Color(getColorByNumber(number)[1])
font_size = cfg.BLOCK_SIZE - 10 * len(str(number))
font = pygame.font.Font(cfg.FONTPATH, font_size)
text = font.render(str(number), True, font_color)
text_rect = text.get_rect()
text_rect.centerx, text_rect.centery = x + cfg.BLOCK_SIZE / 2, y + cfg.BLOCK_SIZE / 2
screen.blit(text, text_rect)
?游戲界面添加額外的元素。
如下圖:玩法介紹、分?jǐn)?shù)顯示。
?
'''將游戲的最高分和當(dāng)前分?jǐn)?shù)畫(huà)到屏幕上'''
def drawScore(screen, score, max_score, cfg):
font_color = (255, 255, 255)
font_size = 30
font = pygame.font.Font(cfg.FONTPATH, font_size)
text_max_score = font.render('Best: %s' % max_score, True, font_color)
text_score = font.render('Score: %s' % score, True, font_color)
start_x = cfg.BLOCK_SIZE * cfg.GAME_MATRIX_SIZE[1] + cfg.MARGIN_SIZE * (cfg.GAME_MATRIX_SIZE[1] + 1)
screen.blit(text_max_score, (start_x+10, 10))
screen.blit(text_score, (start_x+10, 20+text_score.get_rect().height))
start_y = 30 + text_score.get_rect().height + text_max_score.get_rect().height
return (start_x, start_y)
'''游戲介紹'''
def drawGameIntro(screen, start_x, start_y, cfg):
start_y += 40
font_color = (0, 0, 0)
font_size_big = 30
font_size_small = 20
font_big = pygame.font.Font(cfg.FONTPATH, font_size_big)
font_small = pygame.font.Font(cfg.FONTPATH, font_size_small)
intros = ['Game play:', ' Slide the keyboard up, down, left and right.', 'Combine two identical numbers', 'For example: 2 + 2 = 4, 4 + 4 = 8... Until 1024 + 1024 = 2048!', 'You win!']
for idx, intro in enumerate(intros):
font = font_big if idx == 0 else font_small
text = font.render(intro, True, font_color)
screen.blit(text, (start_x+10, start_y))
start_y += text.get_rect().height + 10
游戲結(jié)束界面:
附源碼:
def endInterface(screen, cfg):
font_size_big = 60
font_size_small = 30
font_color = (255, 255, 255)
font_big = pygame.font.Font(cfg.FONTPATH, font_size_big)
font_small = pygame.font.Font(cfg.FONTPATH, font_size_small)
surface = screen.convert_alpha()
surface.fill((127, 255, 212, 2))
text = font_big.render('Game Over!', True, font_color)
text_rect = text.get_rect()
text_rect.centerx, text_rect.centery = cfg.SCREENSIZE[0]/2, cfg.SCREENSIZE[1]/2-50
surface.blit(text, text_rect)
button_width, button_height = 100, 40
button_start_x_left = cfg.SCREENSIZE[0] / 2 - button_width - 20
button_start_x_right = cfg.SCREENSIZE[0] / 2 + 20
button_start_y = cfg.SCREENSIZE[1] / 2 - button_height / 2 + 20
pygame.draw.rect(surface, (0, 255, 255), (button_start_x_left, button_start_y, button_width, button_height))
text_restart = font_small.render('Restart', True, font_color)
text_restart_rect = text_restart.get_rect()
text_restart_rect.centerx, text_restart_rect.centery = button_start_x_left + button_width / 2, button_start_y + button_height / 2
surface.blit(text_restart, text_restart_rect)
pygame.draw.rect(surface, (0, 255, 255), (button_start_x_right, button_start_y, button_width, button_height))
text_quit = font_small.render('Quit', True, font_color)
text_quit_rect = text_quit.get_rect()
text_quit_rect.centerx, text_quit_rect.centery = button_start_x_right + button_width / 2, button_start_y + button_height / 2
surface.blit(text_quit, text_quit_rect)
while True:
screen.blit(surface, (0, 0))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.MOUSEBUTTONDOWN and event.button:
if text_quit_rect.collidepoint(pygame.mouse.get_pos()):
return False
if text_restart_rect.collidepoint(pygame.mouse.get_pos()):
return True
pygame.display.update()
主程序:
def main(cfg):
# 游戲初始化
pygame.init()
screen = pygame.display.set_mode(cfg.SCREENSIZE)
pygame.display.set_caption('2048小游戲升級(jí)版')
# 播放背景音樂(lè)
pygame.mixer.music.load(cfg.BGMPATH)
pygame.mixer.music.play(-1)
# 實(shí)例化2048游戲
game_2048 = Game2048(matrix_size=cfg.GAME_MATRIX_SIZE, max_score_filepath=cfg.MAX_SCORE_FILEPATH)
# 游戲主循環(huán)
clock = pygame.time.Clock()
is_running = True
while is_running:
screen.fill(pygame.Color(cfg.BG_COLOR))
# --按鍵檢測(cè)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key in [pygame.K_UP, pygame.K_DOWN, pygame.K_LEFT, pygame.K_RIGHT]:
game_2048.setDirection({pygame.K_UP: 'up', pygame.K_DOWN: 'down', pygame.K_LEFT: 'left', pygame.K_RIGHT: 'right'}[event.key])
# --更新游戲狀態(tài)
game_2048.update()
if game_2048.isgameover:
game_2048.saveMaxScore()
is_running = False
# --將必要的游戲元素畫(huà)到屏幕上
drawGameMatrix(screen, game_2048.game_matrix, cfg)
start_x, start_y = drawScore(screen, game_2048.score, game_2048.max_score, cfg)
drawGameIntro(screen, start_x, start_y, cfg)
# --屏幕更新
pygame.display.update()
clock.tick(cfg.FPS)
return endInterface(screen, cfg)
'''run'''
if __name__ == '__main__':
while True:
if not main(cfg):
break
2048游戲效果如下圖所示:
?
本來(lái)是想給大家截一張2048的圖的,但是玩了好幾遍都卡死了,這圖你們就將就著看叭~我盡力了!
如何玩魔獸戰(zhàn)網(wǎng)手游 - 櫻花動(dòng)漫
?
?總結(jié)好啦!這篇升級(jí)版的2048小游戲就到這里結(jié)束啦,快來(lái)試試你能通關(guān)嘛?
?
免費(fèi)源碼領(lǐng)取處:如需完整的項(xiàng)目源碼+素材源碼基地見(jiàn):#私信小編06#即可獲取免費(fèi)的福利!
你們的支持是我最大的動(dòng)力!!記得三連哦~mua 歡迎大家閱讀往期的文章哦~
本文作者:愛(ài)折騰的老司機(jī)
一、前言
近期先是N家推出了支持光線追蹤的RTX系列顯卡,接著是A家推出了Radeon? VII顯卡,不管是RTX2080還是Radeon? VII,對(duì)普通玩家來(lái)說(shuō),5000+的價(jià)格等于一臺(tái)整機(jī)的價(jià)格了,所以我們只能看看評(píng)測(cè),口水一下就好。
適逢近期戰(zhàn)地5、APEX英雄、刺客信條 奧德賽、古墓麗影 暗影等游戲新作上市,難不成沒(méi)有高級(jí)的顯卡,我們就不玩這些游戲了?
非也,非也!對(duì)于大多數(shù)人來(lái)說(shuō),千元級(jí)的顯卡才是需求量最大的產(chǎn)品,這個(gè)級(jí)別的顯卡盡管不支持最新的光線追蹤技術(shù),但在1080P分辨率下,還是能夠暢玩大多數(shù)游戲的,就算遇到個(gè)別要求高的,降降抗鋸齒之類(lèi)的特效也是能玩的。
目前這個(gè)價(jià)位A、N都有顯卡,A家的自然是馬甲卡RX 580 2048SP 4G,N家則是挖礦庫(kù)存貨GTX1060 3G。
其實(shí)本人以前對(duì)比過(guò)RX 480 4G(2304SP)和GTX1060 3G,RX 480 4G(2304SP)能夠勉勝GTX1060 3G,那么,RX 580 2048SP 4G在SP少了256個(gè)的情況下,對(duì)上GTX1060 3G豈不是很懸?
No,No,No,別忘了DIY圈子里還流傳著一句話(huà):“A卡戰(zhàn)未來(lái)”,尤其是近期AMD的驅(qū)動(dòng)升級(jí)到腎上腺素Adrenalin 2019 Edition后,RX 570綜合性能都可以提高15%,要知道,RX 580 2048SP 4G就是RX 570 4G的馬甲版本。這樣一來(lái),RX 580 2048SP 4G對(duì)上GTX1060 3G鹿死誰(shuí)手,尤未可知呢!
是騾子是馬,拉出來(lái)溜溜,誰(shuí)強(qiáng)誰(shuí)弱,PK一番不就知道了。本人手頭已經(jīng)有一張RX 580 2048SP 4G了,后來(lái)又找朋友借了一張GTX1060 3G,正好春節(jié)放假有時(shí)間,索性就進(jìn)行了一番對(duì)比測(cè)試,看看結(jié)果究竟怎么樣。
兩張顯卡合影,左下為迪蘭RX 580 2048SP 4G X-Serial,右上為銘瑄 GTX1060 3G 巨無(wú)霸,從正面來(lái)看,兩張卡都是雙風(fēng)扇,長(zhǎng)度也基本差不多,價(jià)格方面, GTX1060 3G要比RX 580 2048SP 4G貴200多,但迪蘭的卡散熱明顯好一些,一來(lái)風(fēng)扇大一些,二來(lái)熱管和散熱片多一些。
迪蘭(Dataland)RX 580 2048SP 4G X-Serial 戰(zhàn)將 1284-1310/7000MHz 4GB/256-bit GDDR5 DX12獨(dú)立游戲顯卡1049元
背面,迪蘭的卡有背板,銘瑄的無(wú)背板。
頂部,迪蘭的造型復(fù)雜一些,銘瑄的簡(jiǎn)約一些,供電接口迪蘭8PIN、銘瑄6PIN。
輸出接口數(shù)量一致,就是位置稍微有點(diǎn)不同。
二、搭建測(cè)試平臺(tái)
要進(jìn)行對(duì)比測(cè)試, 自然要搭建測(cè)試平臺(tái)。
簡(jiǎn)單介紹一下主要配件吧,盒裝銳龍 5 2600。
AMD 銳龍 5 2600 處理器 (r5) 6核12線程 AM4 接口 3.4GHz 盒裝CPU1299元
銳龍 5 2600,6核12線程,使用12nm工藝制造,主頻3.4GHz,最大加速頻率3.9GHz,是性能比很高的一款U。
主板,微星B350M GAMING PRO,盡管是B350,但刷個(gè)BIOS就能支持2字開(kāi)頭的銳龍。
淘寶網(wǎng) - 淘!我喜歡s.taobao.com
去看看
內(nèi)存,金士頓Predator DDR4 2933 8GX2 RGB。
SSD,金士頓 HyperX Fury 雷電 RGB SSD 480G,其實(shí)之前其實(shí)有一塊480G SSD,當(dāng)時(shí)是夠用的,可這次下載了戰(zhàn)地5(50G)、APEX英雄(20G)、刺客信條 奧德賽(50G)、古墓麗影 暗影(40G)等新游戲后,那塊480G就放不下了,只好再新入一塊SSD。
該盤(pán)某東自營(yíng)目前480G無(wú)貨,只有960G,想要480G可以第三方或者某寶買(mǎi)。
金士頓(Kingston)HyperX Fury系列 雷電 960G SATA3 RGB SSD固態(tài)硬盤(pán)1399元
金士頓 HyperX Fury 雷電 RGB SSD 480G在性能方面和其他SATA接口的SSD基本差不多,比較有特色的是支持RGB燈效,這個(gè)功能在SSD上還是比較少見(jiàn)的。
附件一覽,可以看出多了一條線,它就是實(shí)現(xiàn)RGB的關(guān)鍵。
盤(pán)的外觀和普通的Fury SSD也有不同,尤其是上下有兩排可以透光的小顆粒。
背面沒(méi)啥奇特的。
這里多了個(gè)類(lèi)似Micro USB的接口,但其實(shí)是RGB接口,其電壓定義是和Micro USB不同的,請(qǐng)不要用安卓手機(jī)充電線作死去試。
另一端可以接主板RGB接口或控制器。
順便簡(jiǎn)單測(cè)試一下,先看看S.M.A.R.T信息,由于我測(cè)試完游戲才想起用CrystalDiskInfo看SSD信息,所以有一定的通電時(shí)間和次數(shù),其中大多數(shù)通電時(shí)間是浪費(fèi)在掛機(jī)下載戰(zhàn)地5和APEX上的,這里我要吐槽一下EA的服務(wù)器,真的很慢,掛機(jī)2天才下完兩個(gè)游戲。當(dāng)然,要不是網(wǎng)上找了攻略,三天都未必能下完。
AS SSD Benchmark測(cè)試,受限于SATA接口,所以和主流SATA接口的產(chǎn)品區(qū)別不大。
CrystalDiskMark測(cè)試,也基本跑滿(mǎn)SATA接口的極限了。
TxBench測(cè)試。
Anvil's Storage Utilities測(cè)試,跟NVME盤(pán)沒(méi)得比,但在SATA盤(pán)中分?jǐn)?shù)也算可以了,反正用來(lái)當(dāng)游戲倉(cāng)庫(kù),容量第一。
裝機(jī),機(jī)器基本是現(xiàn)成的,上次體驗(yàn)AMD LINK時(shí)就裝了一臺(tái),這次增加一塊SSD就行了。
機(jī)箱背面有兩個(gè)2.5吋磁盤(pán)位,直接裝上即可。
背面一覽,這下兩個(gè)2.5吋磁盤(pán)位都滿(mǎn)了。
蓋好側(cè)板就完事了。
順便體驗(yàn)一下燈光,金士頓 HyperX Fury RGB SSD 480G可以用主板軟件控制RGB燈效,MSI的GAMING APP走起。
機(jī)箱正面燈效。
機(jī)箱背面的2.5吋磁盤(pán)位正好留了透光的位置,所以SSD的燈光能夠通過(guò)側(cè)板透出,先是紫色。
再看白色。
三、大戰(zhàn)三百回合
開(kāi)戰(zhàn)前,先看兩款顯卡的規(guī)格,GPU-Z走起。
圖形理論性能測(cè)試:
3Dmark FireStrike,可以看出,在最新腎上腺素的加成下,RX 580 2048SP 4G已經(jīng)略勝一籌。
3Dmark Time Spy,依然是RX 580 2048SP 4G小勝。
游戲性能測(cè)試:
戰(zhàn)地5是一款由EA制作并發(fā)行的第一人稱(chēng)射擊游戲,其畫(huà)質(zhì)達(dá)到了照片級(jí),可玩性也十分豐富,需要用橘子(Origin)平臺(tái)登陸才能玩。游戲支持DX11和DX12兩種模式,由于游戲沒(méi)有自帶Benchmark程序,而第三方的DX12測(cè)試軟件比較少,所以這里只測(cè)試DX11模式。
圖形設(shè)置如下。
由于是手動(dòng)操作,為了減小誤差,采用訓(xùn)練場(chǎng)跑固定圈,F(xiàn)raps記錄的方式進(jìn)行測(cè)試。
起點(diǎn)就在這里。
測(cè)試完畢,RX 580 2048SP 4G比GTX1060 3G高了12幀,這幅度還是比較大的。
另外,從兩條曲線基本平行可以看出,本人的手動(dòng)跑圈測(cè)試法誤差還是比較小的。
APEX英雄,還是EA的游戲,要玩也得用橘子(Origin)平臺(tái),游戲和吃雞類(lèi)似,玩法卻豐富了許多,但我能吐槽服務(wù)器嗎,游戲更新慢不說(shuō),還各種登不進(jìn)去。
當(dāng)然,吐槽歸吐槽,由于該游戲完全免費(fèi),所以還是說(shuō)一聲“真香”吧!
圖形設(shè)置。
組個(gè)隊(duì)先體驗(yàn)一把,開(kāi)始跳傘了,這跳傘方式比吃雞酷炫很多。
落地了,開(kāi)始沖鴨,然而,很快就團(tuán)滅了。。。。
還是收了心,先為大家跑測(cè)試吧,這個(gè)游戲也不帶Benchmark程序,所以這里繼續(xù)用訓(xùn)練場(chǎng)跑圈法測(cè)試。
這款游戲依然是RX 580 2048SP 4G表現(xiàn)較好,GTX1060 3G的曲線出現(xiàn)了許多狗牙,這說(shuō)明其3G顯存在某些場(chǎng)景會(huì)不夠用,俗稱(chēng)爆顯存。
刺客信條 奧德賽,育碧的經(jīng)典游戲,已經(jīng)是第十一部了,盡管這是一款DX11游戲,但其畫(huà)質(zhì)是很贊的。
圖形設(shè)置,環(huán)境細(xì)節(jié)設(shè)置為極高。
看似GTX1060 3G平均幀數(shù)只低了2幀,但其實(shí)又爆顯存了,最低幀只有4,曲線圖也是各種狗牙。大家想要流暢玩耍,可酌情降低特效。
古墓麗影 暗影是一款由Eidos Montreal工作室制作的動(dòng)作冒險(xiǎn)游戲,該系列也是大家耳熟能詳?shù)慕?jīng)典游戲了,此版本為重啟系列三部曲的終章。好不好玩咱先不說(shuō),但本人覺(jué)得這個(gè)版本的女漢子勞拉是最好看的。
圖形設(shè)置,這次吸取了刺客信條 奧德賽的經(jīng)驗(yàn)教訓(xùn),將抗鋸齒由4倍降為1倍,其他依然是能高則高。
測(cè)試結(jié)果,RX 580 2048SP 4G高出GTX1060 3G 11幀。
絕地求生 大逃殺圖形設(shè)置。
測(cè)試結(jié)果,這里GTX1060 3G終于扳回一局,小勝RX 580 2048SP 4G。
四、測(cè)試匯總及總結(jié)
為了不因篇幅過(guò)長(zhǎng)導(dǎo)致大家看的太累,剩下的游戲測(cè)試我就不逐一上圖了,這里直接放匯總結(jié)果。
可以看出,通過(guò)驅(qū)動(dòng)的不停優(yōu)化,到了腎上腺素Adrenalin 2019 Edition時(shí),量變終于引起質(zhì)變,RX 580 2048SP 4G可以在大多數(shù)游戲中打敗比自身貴200多的GTX1060 3G,這證明了“A卡戰(zhàn)未來(lái)”所言不虛。
另外,還有一部分游戲,GTX1060 3G輸在顯存少了1G上,這1G顯存看似不多,但游戲出現(xiàn)較低幀的頻率明顯高了很多,這對(duì)游戲體驗(yàn)影響很大。
當(dāng)然,由于架構(gòu)偏老,所以RX 580 2048SP 4G在功耗方面比不過(guò)GTX1060 3G。
以上測(cè)試就到這里了,鑒于測(cè)試不易、寫(xiě)文不易,還請(qǐng)大家點(diǎn)贊、收藏、打賞支持,如果有不同觀點(diǎn)或者想進(jìn)一步了解相關(guān)技術(shù),也可以回帖討論。
五、文末彩蛋
這里教大家一個(gè)方法,能解決大部分戰(zhàn)地5及APEX等Origin平臺(tái)游戲更新慢的問(wèn)題,新人趕緊收藏,老鳥(niǎo)請(qǐng)無(wú)視。
首先用Origin CDN切換器選擇Akamai,然后應(yīng)用(需要在Origin退出時(shí)進(jìn)行)。
接著打開(kāi)UsbEAm Hosts Editor,點(diǎn)擊左下角的+號(hào)。
選擇Origin,再選最后一個(gè)。
然后出現(xiàn)一堆服務(wù)器,點(diǎn)檢測(cè)延遲,隨后會(huì)顯示延遲數(shù)值。
然后選中延遲最低的,點(diǎn)應(yīng)用選中。
應(yīng)用成功就可以打開(kāi)Origin進(jìn)行游戲更新了,如果過(guò)了一會(huì)兒這條線路又變慢了,可以繼續(xù)換一條,方法是退出Origin,然后點(diǎn)清除當(dāng)前,然后繼續(xù)檢測(cè)延遲,誰(shuí)低就選誰(shuí)