国产chinesehd精品酒店,邱淑贞aa极毛片,国产在线色视频,玖玖爱zh综合伊人久久

網(wǎng)站首頁(yè)
手機(jī)版

怎么制作游戲?。ㄔ趺粗谱饔螒蜍浖坛蹋?/h2>

更新時(shí)間:2023-11-13 18:05:56作者:佚名

怎么制作游戲?。ㄔ趺粗谱饔螒蜍浖坛蹋?></p>
      <p>俄羅斯方塊小游戲是當(dāng)年風(fēng)靡一時(shí)的小游戲,該游戲由一個(gè)棋盤(pán)組成,該棋盤(pán)跨度為10個(gè)單元格,高度為20個(gè)單元格,如下所示。</p><img   class=

俄羅斯方塊小游戲

關(guān)于此小游戲的規(guī)則,我們不再介紹,本期文章主要用代碼來(lái)實(shí)現(xiàn),我們知道俄羅斯方塊小游戲主要有如下7個(gè)方塊組成,我們?cè)诖a中使用字母“ O”,“ I”,“ S”,“ Z”,“ L”,“ J”和“ T”表示它們。

俄羅斯方塊

使用OpenCV和python創(chuàng)建俄羅斯方塊

import cv2import numpy as npfrom random import choiceSPEED = 1 #控制速度board = np.uint8(np.zeros([20, 10, 3]))quit = Falseplace = Falsedrop = Falseswitch = Falseheld_piece = ""flag = 0score = 0

首先我們導(dǎo)入需要的第三方庫(kù)以及定義好需要的變量

# 所有方塊造型next_piece = choice(["O", "I", "S", "Z", "L", "J", "T"])def get_info(piece): if piece == "I": coords = np.array([[0, 3], [0, 4], [0, 5], [0, 6]]) color = [255, 155, 15] elif piece == "T": coords = np.array([[1, 3], [1, 4], [1, 5], [0, 4]]) color = [138, 41, 175] elif piece == "L": coords = np.array([[1, 3], [1, 4], [1, 5], [0, 5]]) color = [2, 91, 227] elif piece == "J": coords = np.array([[1, 3], [1, 4], [1, 5], [0, 3]]) color = [198, 65, 33] elif piece == "S": coords = np.array([[1, 5], [1, 4], [0, 3], [0, 4]]) color = [55, 15, 215] elif piece == "Z": coords = np.array([[1, 3], [1, 4], [0, 4], [0, 5]]) color = [1, 177, 89] else: coords = np.array([[0, 4], [0, 5], [1, 4], [1, 5]]) color = [2, 159, 227] return coords, color

然后我們建立7個(gè)俄羅斯方塊的造型與顏色,以上建立完成后,我們需要搭建一個(gè)游戲界面以及鼠標(biāo)控制事件

def display(board, coords, color, next_info, held_info, score, SPEED): border = np.uint8(127 - np.zeros([20, 1, 3])) border_ = np.uint8(127 - np.zeros([1, 34, 3])) dummy = board.copy() dummy[coords[:,0], coords[:,1]] = color right = np.uint8(np.zeros([20, 10, 3])) right[next_info[0][:,0] 2, next_info[0][:,1]] = next_info[1] left = np.uint8(np.zeros([20, 10, 3])) left[held_info[0][:,0] 2, held_info[0][:,1]] = held_info[1] dummy = np.concatenate((border, left, border, dummy, border, right, border), 1) dummy = np.concatenate((border_, dummy, border_), 0) dummy = dummy.repeat(20, 0).repeat(20, 1) dummy = cv2.putText(dummy, str(score), (520, 200), cv2.FONT_HERSHEY_DUPLEX, 1, [0, 0, 255], 2)# 控制鍵 dummy = cv2.putText(dummy, "A - move left", (45, 200), cv2.FONT_HERSHEY_DUPLEX, 0.6, [0, 0, 255]) dummy = cv2.putText(dummy, "D - move right", (45, 225), cv2.FONT_HERSHEY_DUPLEX, 0.6, [0, 0, 255]) dummy = cv2.putText(dummy, "S - move down", (45, 250), cv2.FONT_HERSHEY_DUPLEX, 0.6, [0, 0, 255]) dummy = cv2.putText(dummy, "W - hard drop", (45, 275), cv2.FONT_HERSHEY_DUPLEX, 0.6, [0, 0, 255]) dummy = cv2.putText(dummy, "J - rotate left", (45, 300), cv2.FONT_HERSHEY_DUPLEX, 0.6, [0, 0, 255]) dummy = cv2.putText(dummy, "L - rotate right", (45, 325), cv2.FONT_HERSHEY_DUPLEX, 0.6, [0, 0, 255]) dummy = cv2.putText(dummy, "I - hold", (45, 350), cv2.FONT_HERSHEY_DUPLEX, 0.6, [0, 0, 255]) cv2.imshow("Tetris", dummy) key = cv2.waitKey(int(1000/SPEED)) return key

游戲界面

搭建的游戲界面如上,我們?cè)诮缑孀筮咃@示每個(gè)鼠標(biāo)按鍵的功能,中間是主游戲區(qū)域,最右邊為積分區(qū)域

以上建立完成后,我們開(kāi)始主函數(shù)的部分

我們有一個(gè)while循環(huán),在每次迭代中,我們都會(huì)在游戲中放置一個(gè)新棋子。

在俄羅斯方塊中,我們可以按某個(gè)鍵來(lái)固定一塊。通過(guò)與當(dāng)前方塊交換,可以保留將來(lái)使用的一種方塊。

在下面的代碼中,我們首先檢查用戶(hù)是否要使用switch變量將當(dāng)前方塊與保留的方塊交換。如果switch變量設(shè)置為false,我們將分配current_piece,next_piece并隨機(jī)選擇一個(gè)new next_piece

if __name__ == "__main__": while not quit: if switch: held_piece, current_piece = current_piece, held_piece switch = False else: current_piece = next_piece next_piece = choice(["I", "T", "L", "J", "Z", "S", "O"])·

if flag

本文標(biāo)簽: [db:關(guān)鍵詞]  

為您推薦

安兔兔怎么跑分

3月22號(hào)消息,安兔兔宣布安兔兔V9公測(cè)版正式發(fā)布,目前已經(jīng)在安兔兔官網(wǎng)以及各大應(yīng)用商店陸續(xù)上架,此次更新新增了一些測(cè)試項(xiàng)目,在GPU、CPU、內(nèi)存和存儲(chǔ)部分、UX(用戶(hù)體驗(yàn))以及反作弊方面皆有所升級(jí)

2023-11-13 18:05

怎么制作游戲?。ㄔ趺粗谱饔螒蜍浖坛蹋?/a>

俄羅斯方塊小游戲是當(dāng)年風(fēng)靡一時(shí)的小游戲,該游戲由一個(gè)棋盤(pán)組成,該棋盤(pán)跨度為10個(gè)單元格,高度為20個(gè)單元格,如下所示。俄羅斯方塊小游戲關(guān)于此小游戲的規(guī)則,我們不再介紹,本期文章主要用代碼來(lái)實(shí)現(xiàn),我們知

2023-11-13 18:05

曝光補(bǔ)償怎么調(diào) 行車(chē)記錄曝光補(bǔ)償怎么調(diào)

在前面的新手系列中,我們講了測(cè)光、對(duì)焦、曝光鎖定,不知道大家有沒(méi)有搞明白?如果這些詞你仍然覺(jué)得難懂,操作麻煩。那么今天要講的一個(gè)重要功能,大家一定要掌握,它就是“曝光補(bǔ)償”。你用什么測(cè)光方式,不重要對(duì)

2023-11-13 18:05

怎么拒絕相親對(duì)象(怎么拒絕相親對(duì)象比較好)

在相親時(shí),一見(jiàn)鐘情的情侶畢竟是少數(shù),大部分人都是通過(guò)慢慢地相處,深入了解對(duì)方,如果感覺(jué)合適就成為伴侶,如果不適合,雙方則各回各家,不再聯(lián)系。還有一類(lèi),一方看上另一方,并且還窮追不舍,該怎么拒絕呢?從以

2023-11-13 18:04

ps里怎么畫(huà)虛線(ps怎么畫(huà)虛線方框)

ps選區(qū)描邊怎么描虛線點(diǎn)擊左側(cè)工具欄的矩形工具可以看到上方的工具欄里的描邊功能可以選擇線型點(diǎn)擊線型后的小三角可以看到有兩種虛線選擇自己想要的虛線還可以點(diǎn)擊像素后的小三角改變虛線的粗細(xì)點(diǎn)擊描邊顏色框選擇

2023-11-13 18:04

以后農(nóng)村會(huì)怎么發(fā)展 以后農(nóng)村會(huì)發(fā)展成城市嗎?

農(nóng)村,一直是維系中國(guó)社會(huì)發(fā)展的重要基石。從農(nóng)業(yè)社會(huì)向工業(yè)社會(huì)轉(zhuǎn)變,到了當(dāng)下“后工業(yè)時(shí)代”的發(fā)展過(guò)程中,農(nóng)村的角色也在發(fā)生著巨大的變化。農(nóng)村,經(jīng)歷了“新農(nóng)村建設(shè)、美麗鄉(xiāng)村、脫貧攻堅(jiān)”重大政策推動(dòng)的蛻變下

2023-11-13 18:03