Да ли сте икада пожелели да направите узбудљиву игру користећи Питхон-ову ПиГаме библиотеку, али сте се осећали преплављени концептом управљања временом? Ако јесте, нисте сами.
Време је једна од најкритичнијих компоненти развоја игара, а разумевање како време функционише у ПиГаме-у је од суштинског значаја за креирање занимљивих и успешних игара. ПиГаме пружа неколико корисних функција и модула који вам омогућавају да контролишете време у вашим играма.
Креирање једноставне игре
Почните креирањем једноставне игре у којој се правоугаоник креће удесно. Да почне, инсталирајте пип на свој уређај и користите наредбу испод да инсталирате ПиГаме модул:
пип инсталл пигаме
Овде можете пронаћи све примере кода ГитХуб репо.
Једном инсталиран, увезите ПиГаме модул. Затим направите екран величине 800к600 и беле боје позадине и додајте правоугаони објекат. Код би требао изгледати отприлике овако:
увоз пигаме
пигаме.инит()
екран = пигаме.дисплаи.сет_моде((800, 600))
бацкгроунд = пигаме. Површина (сцреен.гет_сизе())
бацкгроунд.филл((255, 255, 255))
рецт = пигаме. Рецт(0, 0, 20, 20)
Након тога, користите вхиле петљу да наставите да игра ради и држите правоугаони објекат да се креће удесно док не дође до краја екрана.
трчање = Истина
док трчање:
за догађај ин пигаме.евент.гет():
ако евент.типе == пигаме. ОДУСТАТИ:
трчање = Фалсе
рецт.к += 1
ако рецт.к > 780:
рецт.к = 0
сцреен.блит (позадина, (0, 0))
пигаме.драв.рецт (екран, (0, 0, 0), право)
пигаме.дисплаи.упдате()
Такође можете додати корисничке уносе и судара у игри. Испод је излаз:
Преглед временског модула ПиГаме-а
Да бисте контролисали време у овој игри, можете користити пигаме.тиме модул. Овај модул пружа разне корисне функције, укључујући а Сат објекат са методама попут гет_тицкс(), чекати(), и кашњење(). Користећи ове функције, можете лако да контролишете време у игри.
Креирање објекта сата за праћење времена
У ПиГаме-у можете користити објекат Цлоцк за праћење времена. Да бисте креирали сат, једноставно користите следећу линију кода:
сат = пигаме.тиме. сат()
Са овим објектом Сат сада можете да пратите време у игри. Постоји и неколико других корисних функција повезаних са објектом Цлоцк, као што су:
-
гет_тиме(): Уз помоћ ове функције, можете добити време потребно за сваки оквир игре. Да бисте користили ову функцију, једноставно додајте следећу линију кода након вхиле петље:
Додајте текстуални објекат да прикажете потребно време:време = сат.гет_тиме()
фонт = пигаме.фонт. СисФонт('Ариал', 18)
текст = фонт.рендер('Потребно време: {} мс'.формат (време), Истина, (0, 0, 0))
сцреен.блит (текст, (0, 0)) -
квачица(): Користите ову функцију да подесите брзину кадрова у игри. Подразумевано, брзина кадрова је подешена на 60 ФПС. Да бисте га поставили на 30 ФПС, једноставно додајте следећу линију кода:
цлоцк.тицк(30)
-
гет_фпс(): Можете да преузмете тренутну брзину кадрова игре користећи гет_фпс. Да бисте користили ову функцију, једноставно додајте следећу линију кода:
Можете додати текстуални објекат за приказ брзине кадрова:фпс = цлоцк.гет_фпс()
фонт = пигаме.фонт. СисФонт('Ариал', 18)
текст = фонт.рендер('ФПС: {}'.формат (фпс), Истина, (0, 0, 0))
сцреен.блит (текст, (0, 20)) -
тицк_буси_лооп(): Ова функција вам омогућава да израчунате колико је милисекунди прошло од последњег позива тик () функција. Да бисте га користили, једноставно додајте следећу линију кода:
цлоцк.тицк_буси_лооп(30)
Добијање времена помоћу гет_тицкс
Тхе гет_тицкс() функција враћа време у милисекундама од иницијализације ПиГаме-а. Да бисте користили ову функцију, додајте следећу линију кода:
тиме_елапсед = пигаме.тиме.гет_тицкс()
Додајте текстуални објекат да прикажете потребно време:
фонт = пигаме.фонт. СисФонт('Ариал', 18)
текст = фонт.рендер('Протекло време: {} мс'.формат (тиме_елапсед), Истина, (0, 0, 0))
сцреен.блит (текст, (0, 40))
Можете да користите време које је протекло да примените елементе игре засноване на времену, као што су појачања која трају одређено време. На пример, можете применити појачање које повећава брзину правог објекта за 5 секунди:
ако Време које је протекло / 5000 > 0:
рецт.к += 5
Испод је излаз:
Паузирање игре Коришћење функција чекања и одлагања
ПиГаме такође пружа две функције које можете користити да паузирате игру на одређено време: чекати функција и кашњење функција.
Да бисте користили чекати функцију, једноставно додајте следећу линију кода у вхиле петљу:
пигаме.тиме.ваит(1000)
Ово ће паузирати игру на 1000 милисекунди (1 секунду). Да бисте користили кашњење функцију, једноставно додајте следећу линију кода у вхиле петљу:
пигаме.тиме.делаи(1000)
Ово ће одложити следећи кадар игре за 1000 милисекунди (1 секунду).
Разлике између чекања и одлагања
Постоји неколико разлика између чекати и кашњење функције. Тхе чекати функција спава процес да би делила процесор са другим програмима. Тхе кашњење функција ће користити процесор да учини кашњење прецизнијим. То значи да је кашњење функција захтева више снаге процесора од чекати функционише и погодан је за игре којима је потребно прецизно мерење времена.
Креирање догађаја помоћу сет_тимер
Можете користити сет_тимер() функцију за креирање догађаја који се покреће након одређеног времена.
Догађаји у ПиГаме-у су објекти који садрже информације о корисничким уносима или порукама које генерише програм. Да бисте користили ову функцију, креирајте прилагођени догађај и додајте следећу линију кода:
пигаме.тиме.сет_тимер (ЦУСТОМ_ЕВЕНТ, 1000)
Ово ће створити догађај који се покреће након 1000 милисекунди—1 секунде. Постоје различите врсте догађаја које можете покренути, као што су кретање миша, унос са тастатуре и догађаји у прозору. Ваш код тада може реаговати на ове догађаје на било који начин који је најприкладнији.
На пример, ако желите да промените и-ос правоугаоног објекта након 1 секунде или када се активира прилагођени догађај, можете додати следећи ред кода:
ако евент.типе == ЦУСТОМ_ЕВЕНТ:
рец.и += 20
На овај начин можете лако креирати догађаје засноване на времену у својој игри које можете користити за креирање занимљивог и изазовног играња.
Побољшајте контролу игре с временом
Уз помоћ контроле времена, можете побољшати контроле игре. Можете да искористите време да примените убрзање, успоравање, па чак и услове игре. Многе игре уводе концепт времена метка где се акција успорава на кратак период.
Користећи функције контроле времена у ПиГаме-у, можете лако имплементирати такве функције—и више—у своје игре.