Yuav ua li cas rau Program Game hauv Python nrog Pygame (nrog Duab)

Cov txheej txheem:

Yuav ua li cas rau Program Game hauv Python nrog Pygame (nrog Duab)
Yuav ua li cas rau Program Game hauv Python nrog Pygame (nrog Duab)

Video: Yuav ua li cas rau Program Game hauv Python nrog Pygame (nrog Duab)

Video: Yuav ua li cas rau Program Game hauv Python nrog Pygame (nrog Duab)
Video: Splitting a PDF to Multiple PDFs with Python! 2024, Tej zaum
Anonim

Nov yog kev qhia rau Pygame rau cov neeg uas twb paub Python lawm. Kab lus no yuav qhia koj cov kauj ruam los tsim kev ua si yooj yim uas muaj cov neeg ua si dodging bouncing pob.

Cov kauj ruam

Ntu 1 ntawm 8: Txhim Kho Pygame

Kauj Ruam 1. Rub tawm Pygame

Nrhiav nws rau koj lub platform los ntawm

Kauj ruam 2. Khiav lub installer

Kauj Ruam 3. Txheeb xyuas tias kev teeb tsa ua haujlwm

Qhib tus nab npawb dav hlau. Hom "ntshuam pygame." Yog tias koj tsis pom ib qho yuam kev ces Pygame tau ua tiav teeb tsa.

    ntshuam pygame

Ntu 2 ntawm 8: Teem Ib Lub Qhov Rooj Yooj Yim

Kauj Ruam 1. Qhib ib daim ntawv tshiab

Kauj ruam 2. Ntshuam Pygame

Pygame yog lub tsev qiv ntawv uas muab kev nkag mus rau lub luag haujlwm duab. Yog tias koj xav tau cov ntaub ntawv ntau ntxiv txog kev ua haujlwm no li cas, koj tuaj yeem saib lawv ntawm Pygame lub vev xaib.

    ntshuam pygame los ntawm pygame.locals ntshuam *

Kauj Ruam 3. Teeb lub qhov rooj daws teeb meem

Koj yuav ua qhov hloov pauv thoob ntiaj teb rau kev tshuaj ntsuam lub vijtsam kom thiaj tuaj yeem hais txog hauv ntau qhov ntawm qhov kev ua si. Nws kuj yog qhov yooj yim mus nrhiav tau rau saum cov ntawv yog li nws tuaj yeem hloov pauv tom qab. Rau cov phiaj xwm siab dua, tso cov ntaub ntawv no rau hauv cov ntawv cais yuav yog lub tswv yim zoo dua.

    daws teeb meem = (400, 300)

Kauj Ruam 4. Txhais qee yam xim

Cov xim hauv pygame yog (RBGA uas muaj ntau qhov tseem ceeb ntawm 0 thiab 255. Tus nqi alpha (A) yog nyob ntawm yeem tab sis lwm yam xim (liab, xiav, thiab ntsuab yog yuav tsum tau ua).

    dawb = (255, 255, 255) dub = (0, 0, 0) liab = (255, 0, 0)

Kauj Ruam 5. Pib lub vijtsam

Siv qhov kev daws teeb meem sib txawv uas tau hais ua ntej.

    screen = pygame.display.set_mode (daws teeb meem)

Kauj Ruam 6. Ua game voj

Rov ua qee yam kev ua hauv txhua tus ncej ntawm peb qhov kev ua si. Ua lub voj uas yuav ib txwm rov ua dua los ntawm txhua qhov kev ua no.

    thaum Muaj Tseeb:

Kauj Ruam 7. Xim lub vijtsam

    screen.fill (dawb)

Kauj Ruam 8. Tso lub vijtsam

Yog tias koj ua qhov program, lub vijtsam yuav tig dawb thiab tom qab ntawd qhov program yuav sib tsoo. Qhov no vim tias lub kaw lus ua haujlwm tau xa cov xwm txheej mus rau qhov kev ua si thiab qhov kev ua si tsis ua dab tsi nrog lawv. Thaum qhov kev ua si tau txais ntau qhov xwm txheej tsis tau daws, nws yuav tsoo.

    thaum Muaj Tseeb:… pygame.display.flip ()

Kauj Ruam 9. Tswj cov xwm txheej

Tau txais cov npe ntawm txhua qhov xwm txheej uas tau tshwm sim hauv txhua tus ncej. Koj tsuas yog saib xyuas txog ib qho xwm txheej, qhov tshwm sim txiav tawm. Qhov no tshwm sim thaum tus neeg siv kaw qhov game game. Qhov no tseem yuav tiv thaiv peb txoj haujlwm los ntawm kev sib tsoo vim muaj xwm txheej ntau dhau.

    thaum muaj tseeb:… rau qhov tshwm sim hauv pygame.event.get (): yog event.type == QUIT: pygame.quit ()

ProgramPygamePart1
ProgramPygamePart1

Kauj ruam 10. Sim nws

Nov yog qhov chaws yuav tsum zoo li tam sim no:

    ntshuam pygame los ntawm pygame.locals ntshuam * daws teeb meem = (400, 300) dawb = (255, 255, 255) dub = (0, 0, 0) liab = (255, 0, 0) screen = pygame.display.set_mode (daws teeb meem) thaum Tseeb: screen.fill (dawb) pygame.display.flip () rau qhov tshwm sim hauv pygame.event.get (): yog event.type == QUIT: pygame.quit ()

Ntu 3 ntawm 8: Ua Lub Hom Phiaj Ua Si

Kauj Ruam 1. Ua chav kawm tshiab thiab tsim kho

Teem tag nrho cov khoom ntawm cov khoom. Koj kuj tseem muab qhov txiaj ntsig tsis raug rau txhua lub peev txheej.

    Class Ball: def _init _ (self, xPos = resolution [0] / 2, yPos = resolution [1] / 2, xVel = 1, yVel = 1, rad = 15): self.x = xPos self.y = yPos self.dx = xVel self.dy = yVel self.radius = rad self.type = "pob"

Kauj Ruam 2. Txheeb xyuas seb yuav kos tus kwv

Siv cov peev txheej uas tau hais tseg hauv tus tsim los kos lub pob ua lub voj voog thiab ntxiv rau saum npoo mus rau hauv txoj haujlwm los kos cov khoom. Qhov saum npoo yuav yog lub vijtsam uas tau tsim los siv kev daws teeb meem ua ntej.

    def kos (tus kheej, nto): pygame.draw.circle (nto, dub, (self.x, self.y), self.radius)

Kauj Ruam 3. Ua piv txwv ntawm chav kawm nrog rau qhia lub voj game los kos lub pob hauv txhua lub voj

    pob = Pob () thaum Tseeb:… ball.draw (screen)

Kauj Ruam 4. Ua kom cov khoom txav mus

Tsim txoj haujlwm uas yuav hloov kho txoj haujlwm ntawm tus kwv. Hu txoj haujlwm no hauv txhua qhov game game loop.

    Class Ball:… def hloov tshiab (self): self.x += self.dx self.y += self.dy

Kauj Ruam 5. Txwv tus nqi

Pob yuav txav mus nrawm heev vim tias lub voj kev ua si tau khiav ntau pua zaus thib ob. Siv Pygame lub moos kom txwv tus lej tus lej rau 60 fps.

    moos = pygame.time. Clock () thaum Tseeb:… clock.tick (60)

Kauj Ruam 6. Khaws pob ntawm qhov screen

Ntxiv cov tshev hauv qhov hloov tshiab ua haujlwm kom thim rov qab lub pob yog tias nws tsoo ib qho ntawm cov npoo ntawm lub vijtsam.

    Class Ball:… def update (self):… if (self.x <= 0 or self.x> = resolution [0]): self.dx *= -1 if (self.y <= 0 or self.y > = daws teeb meem [1]): self.dy *= -1

ProgramPygamePart2
ProgramPygamePart2

Kauj Ruam 7. Sim nws

Nov yog qhov chaws yuav tsum zoo li tam sim no:

    ntshuam pygame los ntawm pygame.locals ntshuam * daws teeb meem = (400, 300) dawb = (255, 255, 255) dub = (0, 0, 0) liab = (255, 0, 0) screen = pygame.display.set_mode (daws teeb meem) chav kawm Ball: def _init _ (self, xPos = resolution [0] / 2, yPos = resolution [1] / 2, xVel = 1, yVel = 1, rad = 15): self.x = xPos self.y = yPos self.dx = xVel self.dy = yVel self.radius = rad self.type = "ball" def draw (self, surface): pygame.draw.circle (nto, dub, (self.x, self.y), self.radius) def hloov tshiab (self): self.x += self.dx self.y += self.dy yog (self.x <= 0 lossis self.x> = daws teeb meem [0]): self.dx *= -1 yog (self.y <= 0 lossis self.y> = daws teeb meem [1]): self.dy *= -1 pob = Pob () moos = pygame.time. Clock () thaum Muaj tseeb: tshuaj ntsuam sau (dawb) ball.draw (screen) ball.update () pygame.display.flip () clock.tick (60) rau kev tshwm sim hauv pygame.event.get (): yog event.type == QUIT: pygame.quit ()

Ntu 4 ntawm 8: Npaj Kev Ua Si

Kauj Ruam 1. Siv chav kawm los npaj txhua yam

Qhov kev ua si yuav nyuaj dua. Siv cov txheej txheem tsom mus rau kev npaj koj cov cai.

Kauj Ruam 2. Ua qhov kev sib tw ua si hauv chav kawm

Txij li peb qhov kev ua si tam sim no muaj cov ntaub ntawv suav nrog koj cov khoom ua si thiab kev ua haujlwm, nws ua rau nkag siab tig koj lub voj kev ua si hauv chav kawm.

    chav ua si ():

Kauj Ruam 3. Ntxiv tus neeg tsim khoom

Ntawm no koj yuav ua tiav qee yam khoom ua si, tsim peb lub vijtsam thiab moos thiab pib Pygame. Pygame yuav tsum tau pib ua kom siv qee yam zoo li ntawv lossis suab.

    chav kawm game (): def _init _ (tus kheej): pygame.init () self.screen = pygame.display.set_mode (daws teeb meem) self.clock = pygame.time. Clock ()

Kauj Ruam 4. Tswj cov xwm txheej hauv ib txoj haujlwm

    game game ():… def handleEvents (tus kheej): rau kev tshwm sim hauv pygame.event.get (): yog event.type == QUIT: pygame.quit ()

Kauj Ruam 5. Ua kom lub game game ua haujlwm

Hu rau qhov kev tshwm sim tuav haujlwm txhua lub voj.

    chav kawm game ():… def khiav (tus kheej): thaum Tseeb: self.handleEvents () self.screen.fill (dawb) self.clock.tick (60) pygame.display.flip ()

Kauj Ruam 6. Kov ntau yam khoom ua si

Tam sim no txoj cai no yuav tsum hu kos thiab hloov tshiab ntawm peb cov khoom txhua tus ncej. Qhov no yuav ua rau tsis haum yog tias koj muaj ntau yam khoom. Cia peb ntxiv peb cov khoom mus rau ib qho array thiab tom qab ntawd hloov kho thiab kos txhua yam khoom hauv kab lus txhua lub voj. Tam sim no koj tuaj yeem yooj yim ntxiv lwm yam khoom thiab muab nws pib ua haujlwm sib txawv.

    game game (): def _init _ (self):… self.gameObjects = self.gameObjects.append (Pob ()) self.gameObjects.append (Pob (100))… def khiav (tus kheej): thaum Muaj tseeb: nws tus kheej.handleEvents () rau gameObj hauv tus kheej.gameObjects: gameObj.update () self.screen.fill (dawb) rau gameObj hauv tus kheej.gameObjects: gameObj.draw (self.screen) self.clock.tick (60) pygame.display.flip ()

ProgramPygamePart3
ProgramPygamePart3

Kauj Ruam 7. Sim nws

Nov yog qhov chaws yuav tsum zoo li tam sim no:

    ntshuam pygame los ntawm pygame.locals ntshuam * daws teeb meem = (400, 300) dawb = (255, 255, 255) dub = (0, 0, 0) liab = (255, 0, 0) screen = pygame.display.set_mode (daws teeb meem) chav kawm Ball: def _init _ (self, xPos = resolution [0] / 2, yPos = resolution [1] / 2, xVel = 1, yVel = 1, rad = 15): self.x = xPos self.y = yPos self.dx = xVel self.dy = yVel self.radius = rad self.type = "ball" def draw (self, surface): pygame.draw.circle (nto, dub, (self.x, self.y), self.radius) def hloov tshiab (self): self.x += self.dx self.y += self.dy yog (self.x <= 0 lossis self.x> = daws teeb meem [0]): self.dx *= -1 yog (self.y <= 0 lossis self.y> = daws teeb meem [1]): self.dy *= -1 chav kawm game (): def _init _ (self): pygame.init () self.screen = pygame.display.set_mode (daws teeb meem) self.clock = pygame.time. Clock () self.gameObjects = self.gameObjects.append (Pob ()) self.gameObjects.append (Pob (100)) def handleEvents tus kheej): rau qhov tshwm sim hauv pygame.event.get (): yog event.type == QUIT: pygame.quit () def run (self): thaum Muaj tseeb: self.handleEvent s () rau gameObj hauv tus kheej.gameObjects: gameObj.update () self.screen.fill (dawb) rau gameObj hauv tus kheej.gameObjects: gameObj.draw (self.screen) self.clock.tick (60) pygame.display flip () game (). khiav ()

Ntu 5 ntawm 8: Ntxiv Tus Neeg Ua Haujlwm Lub Hom Phiaj

Kauj Ruam 1. Ua tus neeg ua si hauv chav kawm thiab tus tsim

Koj yuav mus ua lwm lub voj voog uas yog tswj los ntawm nas. Pib qhov tseem ceeb hauv tus tsim. Lub vojvoog tsuas yog tus nqi tseem ceeb.

    class Player: def _init _ (self, rad = 20): self.x = 0 self.y = 0 self.radius = rad

Kauj Ruam 2. Txheeb xyuas seb yuav kos tus neeg uas ua ntawv li cas

Nws yuav yog tib txoj kev uas koj kos lwm cov khoom ua si.

    chav Player:… def kos (tus kheej, nto): pygame.draw.circle (nto, liab, (self.x, self.y), self.radius)

Kauj Ruam 3. Ntxiv nas tswj rau tus neeg uas ua ntawv

Hauv txhua kab ntawv, txheeb xyuas qhov chaw ntawm nas thiab teeb tsa cov neeg ua si 'cov khoom' qhov chaw nyob ntawd.

    class Player:… def hloov tshiab (tus kheej): qaum = pygame.mouse.get_pos () self.x = qaum [0] self.y = qaum [1]

Kauj Ruam 4. Ntxiv tus neeg uas ua ntawv mus rau gameObjects

Tsim tus neeg uas ua ntawv tshiab piv txwv thiab ntxiv rau hauv daim ntawv teev npe.

    chav kawm game (): def _init _ (self):… self.gameObjects.append (Player ())

ProgramPygamePart4
ProgramPygamePart4

Kauj Ruam 5. Sim nws

Nov yog qhov chaws yuav tsum zoo li tam sim no:

    ntshuam pygame los ntawm pygame.locals ntshuam * daws teeb meem = (400, 300) dawb = (255, 255, 255) dub = (0, 0, 0) liab = (255, 0, 0) screen = pygame.display.set_mode (daws teeb meem) chav kawm Ball: def _init _ (self, xPos = resolution [0] / 2, yPos = resolution [1] / 2, xVel = 1, yVel = 1, rad = 15): self.x = xPos self.y = yPos self.dx = xVel self.dy = yVel self.radius = rad self.type = "ball" def draw (self, surface): pygame.draw.circle (nto, dub, (self.x, self.y), self.radius) def hloov tshiab (self): self.x += self.dx self.y += self.dy yog (self.x <= 0 lossis self.x> = daws teeb meem [0]): self.dx *= -1 if (self.y <= 0 or self.y> = resolution [1]): self.dy *= -1 class Player: def _init _ (self, rad = 20): self.x = 0 self.y = 0 self.radius = rad self.type = "player" def kos (tus kheej, nto): pygame.draw.circle (nto, liab, (self.x, self.y), self.radius) def hloov tshiab (tus kheej): qaum = pygame.mouse.get_pos () self.x = qaum [0] self.y = qaum [1] chav kawm game (): def _init _ (self): pygame.init () self.screen = pygame.display.set_ hom (daws teeb meem) self.clock = pygame.time. Clock () self.gameObjects = self.gameObjects.append (Player ()) self.gameObjects.append (Pob ()) self.gameObjects.append (Pob (100))) def handleEvents (tus kheej): rau qhov tshwm sim hauv pygame.event.get (): yog event.type == QUIT: pygame.quit () def run (self): thaum Muaj tseeb: self.handleEvents () rau gameObj hauv nws tus kheej.gameObjects: gameObj.update () self.screen.fill (dawb) rau gameObj hauv tus kheej.gameObjects: gameObj.draw (self.screen) self.clock.tick (60) pygame.display.flip () game (). khiav ()

Ntu 6 ntawm 8: Ua Cov Hom Phiaj Sib Tham nrog Tus Neeg Ua Si

Kauj Ruam 1. Hloov cov haujlwm hloov tshiab

Txhawm rau kom cov khoom sib cuam tshuam, lawv yuav tsum muaj kev nkag tau mus rau ib leeg. Cia peb ntxiv lwm qhov ntsuas los hloov kho kom dhau mus hauv cov npe gameObjects. Koj yuav tau ntxiv nws rau ob qho tib si tus neeg uas ua ntawv thiab cov khoom Pob. Yog tias koj muaj ntau yam khoom ua si, qhov qub txeeg qub teg tuaj yeem pab koj khaws txhua txoj hauv kev kos npe rau tib yam.

    Class Ball:… def hloov tshiab (tus kheej, gameObjects):… class Player:… def hloov tshiab (tus kheej, gameObjects):

Kauj Ruam 2. Txheeb xyuas qhov sib tsoo ntawm tus neeg ua si thiab pob

Mus dhau txhua qhov khoom ua si thiab xyuas seb yam khoom twg yog pob. Tom qab ntawd siv ob yam khoom 'radii thiab cov qauv ntsuas nrug los txheeb xyuas yog tias lawv sib tsoo. Cov voj voos yooj yim heev los txheeb xyuas kev sib tsoo. Qhov no yog qhov laj thawj loj tshaj plaws uas koj tsis tau siv qee qhov zoo rau qhov kev ua si no.

    class Player:… def hloov tshiab (tus kheej, gameObjects):… rau gameObj hauv gameObjects: yog gameObj.type == “pob”: yog (gameObj.x - self.x) ** 2 + (gameObj.y - self.y) ** 2 <= (gameObj.radius + self.radius) ** 2:

ProgramPygamePart5
ProgramPygamePart5

Kauj Ruam 3. Xaus qhov kev ua si yog tias tus neeg ua si tau "ntaus"

Cia cia li tso qhov kev ua si rau tam sim no.

    yog (gameObj.x - self.x) ** 2 + (gameObj.y - self.y) ** 2 <= (gameObj.radius + self.radius) ** 2: pygame.quit ()

Kauj Ruam 4. Sim nws

Nov yog Dab tsi yuav tsum zoo li tam sim no:

    ntshuam pygame los ntawm pygame.locals ntshuam * daws teeb meem = (400, 300) dawb = (255, 255, 255) dub = (0, 0, 0) liab = (255, 0, 0) screen = pygame.display.set_mode (daws teeb meem) chav kawm Ball: def _init _ (self, xPos = resolution [0] / 2, yPos = resolution [1] / 2, xVel = 1, yVel = 1, rad = 15): self.x = xPos self.y = yPos self.dx = xVel self.dy = yVel self.radius = rad self.type = "ball" def draw (self, surface): pygame.draw.circle (nto, dub, (self.x, self.y), self.radius) def hloov tshiab (tus kheej, gameObjects): self.x += self.dx self.y += self.dy yog (self.x <= 0 lossis self.x> = daws teeb meem [0]): tus kheej.dx *= -1 yog (self.y <= 0 lossis self.y> = daws teeb meem [1]): self.dy *= -1 chav Player: def _init _ (self, rad = 20): self.x = 0 self.y = 0 self.radius = rad self.type = "player" def kos (tus kheej, nto): pygame.draw.circle (nto, liab, (self.x, self.y), self.radius) def hloov tshiab (tus kheej, gameObjects): qaum = pygame.mouse.get_pos () self.x = qaum [0] self.y = hlua [1] rau gameObj hauv gameObjects: yog gameObj.type == "pob": yog (gameObj.x - self.x) ** 2 + (gameObj.y - self.y) ** 2 <= (gameObj.radius + self.radius) ** 2: pygame.quit () chav kawm game (): def _init _ (self): pygame.init () self.screen = pygame.display.set_mode (daws teeb meem) self.clock = pygame.time. Clock () self.gameObjects = self.gameObjects.append (Player ()) self.gameObjects.append (Pob ()) self.gameObjects.append (Pob (100)) def handleEvents (tus kheej): rau kev tshwm sim hauv pygame.event.get (): yog event.type == QUIT: pygame.quit () def khiav (tus kheej): thaum Tseeb: self.handleEvents () rau gameObj hauv tus kheej.gameObjects: gameObj.update (self.gameObjects) self.screen.fill (dawb) rau gameObj hauv tus kheej.gameObjects: gameObj.draw () self.screen) self.clock.tick (60) pygame.display.flip () game (). run ()

Ntu 7 ntawm 8: Ntxiv Game Controller los Tsim Cov Hom Phiaj

Kauj Ruam 1. Tsim chav tswj hwm game

Cov tswj kev ua si yog lub luag haujlwm rau "khiav" qhov kev ua si. Nws txawv ntawm peb chav kawm game uas yog lub luag haujlwm kos duab thiab hloov kho txhua yam khoom peb. Tus tswj hwm yuav ntxiv ib lub pob ntxiv rau ntawm lub vijtsam kom ua qhov nyuaj. Ntxiv tus tsim thiab pib qee qhov tseem ceeb. Lub sijhawm yuav yog lub sijhawm ua ntej ntxiv pob ntxiv.

    chav GameController: def _init _ (self, interval = 5): self.inter = interval self.next = pygame.time.get_ticks () + (2 * 1000) self.type = "game controller"

Kauj Ruam 2. Ntxiv qhov hloov tshiab muaj nuj nqi

Qhov no yuav txheeb xyuas lub sijhawm ntau npaum li cas txij li lub sijhawm tau ntxiv pob lossis txij thaum pib ntawm qhov kev ua si. Yog tias lub sijhawm ntau dua li lub sijhawm koj yuav rov pib lub sijhawm thiab ntxiv pob.

    chav GameController:… def hloov tshiab (tus kheej, gameObjects): yog self.next <pygame.time.get_ticks (): self.next = pygame.time.get_ticks () + (self.inter * 1000) gameObjects.append (Pob ()))

Kauj Ruam 3. Muab cov npas nrawm nrawm

Koj yuav tsum tau siv tus lej random los ua qhov sib txawv hauv txhua lub sijhawm. Txawm li cas los xij, cov pob nrawm nrawm tam sim no yog tus lej taw tes ntab tsis txhob siv tus lej.

    chav GameController:… def hloov tshiab (tus kheej, gameObjects): yog self.next <pygame.time.get_ticks (): self.next = pygame.time.get_ticks () + (self.inter * 1000) gameObjects.append (Pob (xVel = random ()*2, yVel = random ()*2))

Kauj Ruam 4. Txhim kho qhov kos

Cov duab kos yuav tsis lees txais ntab. Cia peb hloov lub pob txoj haujlwm mus rau cov lej ua ntej lub pob yuav kos.

    Chav Kawm Pob:… def kos (tus kheej, nto): pygame.draw.circle (nto, dub, (int (self.x), int (self.y)), self.radius)

Kauj Ruam 5. Txhais txoj hauv kev kos rau tus tswj game

Txij li nws yog cov khoom ua si, lub ntsiab lus tseem ceeb yuav sim kos nws. Koj yuav tsum tau txhais lub luag haujlwm kos uas tsis muaj dab tsi yog li qhov kev ua si tsis tsoo.

    chav GameController:… def kos (tus kheej, tshuaj ntsuam): dhau

Kauj Ruam 6. Ntxiv cov game game rau gameObjects thiab tshem 2 pob

Tam sim no qhov kev ua si yuav tsum muab pob txhua tsib feeb.

    chav kawm game (): def _init _ (self):… self.gameObjects = self.gameObjects.append (GameController ()) self.gameObjects.append (Player ())

ProgramPygamePart6
ProgramPygamePart6

Kauj Ruam 7. Sim nws

Nov yog qhov chaws yuav tsum zoo li tam sim no:

    ntshuam pygame los ntawm kev rho tawm tsis raug los ntawm pygame.locals ntshuam * daws teeb meem = (400, 300) dawb = (255, 255, 255) dub = (0, 0, 0) liab = (255, 0, 0) screen = pygame. display.set_mode (daws teeb meem) chav kawm Ball: def _init _ (self, xPos = resolution [0] / 2, yPos = resolution [1] / 2, xVel = 1, yVel = 1, rad = 15): self.x = xPos self.y = yPos self.dx = xVel self.dy = yVel self.radius = rad self.type = "ball" def draw (self, surface): pygame.draw.circle (nto, dub, (int (tus kheej. x), int (self.y)), self.radius) def hloov tshiab (tus kheej, gameObjects): self.x += self.dx self.y += self.dy yog (self.x <= 0 lossis tus kheej. x> = daws teeb meem [0]): self.dx *= -1 yog (self.y <= 0 lossis self.y> = daws teeb meem [1]): self.dy *= -1 chav Player: def _init _ (self, rad = 20): self.x = 0 self.y = 0 self.radius = rad self.type = "player" def kos (tus kheej, nto): pygame.draw.circle (nto, liab, (self.x, self.y), self.radius) def hloov tshiab (tus kheej, gameObjects): qaum = pygame.mouse.get_pos () self.x = qaum [0] self.y = qaum [1] rau gameObj hauv game Cov hom phiaj: yog gameObj.type == "pob": yog (gameObj.x - self.x) ** 2 + (gameObj.y - self.y) ** 2 <= (gameObj.radius + self.radius)* * 2: pygame.quit () chav GameController: def _init _ (self, interval = 5): self.inter = interval self.next = pygame.time.get_ticks () + (2 * 1000) self.type = "game controller "def hloov tshiab (tus kheej, gameObjects): yog self.next <pygame.time.get_ticks (): self.next = pygame.time.get_ticks () + (self.inter * 1000) gameObjects.append (Pob (xVel = random) ()*2, yVel = random ()*2)) def kos (tus kheej, tshuaj ntsuam): dhau chav kawm game (): def _init _ (tus kheej): pygame.init () self.screen = pygame.display.set_mode (daws teeb meem) self.clock = pygame.time. Clock () self.gameObjects = self.gameObjects.append (GameController ()) self.gameObjects.append (Player ()) def handleEvents (tus kheej): rau kev tshwm sim hauv pygame.event.get (): yog event.type == QUIT: pygame.quit () def khiav (tus kheej): thaum Tseeb: self.handleEvents () rau gameObj hauv tus kheej.gameObjects: gameObj.update (self.gameObjects) self.screen.fill (dawb) rau gameObj hauv tus kheej.gameO bjects: gameObj.draw (self.screen) self.clock.tick (60) pygame.display.flip () game (). run ()

Ntu 8 ntawm 8: Ntxiv Cov Qhab Nia thiab Game Over

Kauj Ruam 1. Ntxiv tus qhab nia rau chav tswj hwm game

Tsim cov khoom font thiab cov qhab nia sib txawv. Koj yuav kos tus ntawv hauv txhua kab ntawv los tso saib cov qhab nia thiab nce cov qhab nia txhua tus ncej hauv kev hloov tshiab.

    chav GameController: def _init _ (self, interval = 5):… self.score = 0 self.scoreText = pygame.font. Font (Tsis muaj, 12) def hloov tshiab (tus kheej, gameObjects):… self.score += 1 def kos (tus kheej, tshuaj ntsuam): screen.blit (tus kheej.scoreText.render (str (tus kheej.score), Tseeb, dub), (5, 5))

Kauj Ruam 2. Hloov kho qhov kev ua si xaus

Cia peb tshem tawm qhov kev txiav tawm thaum tus neeg uas ua ntawv pom tias muaj kev sib tsoo. Hloov chaw koj yuav teeb tsa qhov sib txawv hauv cov neeg uas ua ntawv uas tuaj yeem tshawb xyuas. Thaum gameOver tau teeb tsa, tsum tsis txhob hloov kho cov khoom. Qhov no yuav khov txhua yam hauv qhov chaw kom cov neeg ua si tuaj yeem pom dab tsi tshwm sim thiab txheeb xyuas lawv cov qhab nia. Nco ntsoov tias cov khoom tseem tab tom kos, tsuas yog tsis hloov kho tshiab.

    chav Player: def _init _ (tus kheej, rad = 20):… self.gameOver = hloov tshiab tsis tseeb (tus kheej, gameObjects):… rau gameObj hauv gameObjects: yog gameObj.type == “pob”: yog (gameObj.x - tus kheej.x) ** 2 + (gameObj.y - self.y) ** 2 <= (gameObj.radius + self.radius) ** 2: self.gameOver = Game class tseeb (): def _init _ (tus kheej):.: self.gameOver = gameObj.gameOver

ProgramPygameFinal
ProgramPygameFinal

Kauj Ruam 3. Sim nws

Nov yog qhov ua tiav cov cai yuav tsum zoo li tam sim no:

    ntshuam pygame los ntawm kev rho tawm tsis raug los ntawm pygame.locals ntshuam * daws teeb meem = (400, 300) dawb = (255, 255, 255) dub = (0, 0, 0) liab = (255, 0, 0) screen = pygame. display.set_mode (daws teeb meem) chav kawm Ball: def _init _ (self, xPos = resolution [0] / 2, yPos = resolution [1] / 2, xVel = 1, yVel = 1, rad = 15): self.x = xPos self.y = yPos self.dx = xVel self.dy = yVel self.radius = rad self.type = "ball" def draw (self, surface): pygame.draw.circle (nto, dub, (int (tus kheej. x), int (self.y)), self.radius) def hloov tshiab (tus kheej, gameObjects): self.x += self.dx self.y += self.dy yog (self.x <= 0 lossis tus kheej. x> = daws teeb meem [0]): self.dx *= -1 yog (self.y <= 0 lossis self.y> = daws teeb meem [1]): self.dy *= -1 chav Player: def _init _ (self, rad = 20): self.x = 0 self.y = 0 self.radius = rad self.type = "player" self.gameOver = kos tsis tseeb kos (tus kheej, nto): pygame.draw.circle (nto, liab, (self.x, self.y), self.radius) def hloov tshiab (tus kheej, gameObjects): qaum = pygame.mouse.get_pos () self.x = qaum [0] self.y = qaum [1] rau gameObj hauv gameObjects: yog gameObj.type == "pob": yog (gameObj.x - self.x) ** 2 + (gameObj.y - self.y) ** 2 <= (gameObj.radius + self.radius) ** 2: self.gameOver = Chav kawm muaj tseeb GameController: def _init _ (tus kheej, ncua sijhawm = 5): self.inter = interval self.next = pygame.time.get_ticks () + (2*1000) tus kheej. type = "game controller" self.score = 0 self.scoreText = pygame.font. Font (Tsis muaj, 12) def hloov tshiab (tus kheej, gameObjects): yog self.next <pygame.time.get_ticks (): self.next = pygame.time.get_ticks () + (tus kheej.inter*1000) gameObjects.append (Pob (xVel = random ()*2), yVel = random ()*2)) self.score + = 1 def kos (tus kheej, tshuaj ntsuam): screen.blit (self.scoreText.render (str (tus kheej qhov qhab nia), Tseeb, dub), (5, 5)) chav kawm game (): def _init _ (self): pygame.init () self.screen = pygame.display.set_mode (daws teeb meem) self.clock = pygame.time. Clock () self.gameObjects = self.gameObjects.append (GameController ()) self.gameObjects.append (Player ()) self.gameOver = Tsis tseeb def handleEvents (tus kheej): rau qhov tshwm sim hauv pygame.event.get (): yog tias ev ent.type == QUIT: pygame.quit () def khiav (tus kheej): thaum Tseeb: self.handleEvents () yog tias tsis yog self.gameOver: rau gameObj hauv tus kheej.gameObjects: gameObj.update (self.gameObjects) yog gameObj. type == "player": self.gameOver = gameObj.gameOver self.screen.fill (dawb) rau gameObj hauv tus kheej.gameObjects: gameObj.draw (self.screen) self.clock.tick (60) pygame.display.flip () game (). khiav ()

Pom zoo: