Компьютерлік ойындарды қалай бағдарламалау керек (суреттермен)

Мазмұны:

Компьютерлік ойындарды қалай бағдарламалау керек (суреттермен)
Компьютерлік ойындарды қалай бағдарламалау керек (суреттермен)
Anonim

Сізде компьютерлік ойын туралы ой бар ма және оны шындыққа айналдырғыңыз келе ме? Немесе сіз компьютерлік ойындар қалай жазылатыны туралы ойланып көрдіңіз бе? Бұл wikiHow сізге Python -да үш негізгі компьютерлік ойын жазуды үйретеді. Алғашқы ойынды дамыту үшін сізге Python және жалпы бағдарламалау ұғымдары туралы негізгі түсінік қажет болады.

Қадамдар

3 бөлімнің 1 бөлігі: Мәтінге негізделген ойын жасау

5692759 1
5692759 1

Қадам 1. Бағдарламалау тілін таңдаңыз

Барлық бағдарламалау тілдері әр түрлі, сондықтан сіз өз ойын жазу үшін қайсысын қолдану керектігін шешуіңіз керек. Бағдарламалаудың барлық негізгі тілдері мәтінді енгізуді, мәтінді шығаруды және if-конструкцияларды қолдайды (мәтінге негізделген қарапайым ойын үшін қажет нәрселер), сондықтан опцияларды зерттеп, қайсысы сізге ыңғайлы және оқуға арналғанын шешіңіз. Міне, кейбір факторларды ескеру қажет:

  • Қай тіл көбінесе қолданылады?

    JavaScript сияқты кейбір бағдарламалау тілдері желіде қолдануға арналған, ал басқалары Python, C немесе C ++ сияқты компьютерлік бағдарламаларды басқаруға арналған. Ойын үшін Python, C, C ++ немесе JavaScript.

  • Үйрену қаншалықты қиын?

    Бағдарламаны жазу кез келген қалыпты тілде (мысалы, Мальболге сияқты шатастыруға арналмаған) тәжірибеден кейін оңай болуы керек болса да, кейбіреулер басқаларға қарағанда жаңадан бастаушыларға ыңғайлы. Java мен C, мысалы, Python сияқты, неғұрлым қол жетімді және тікелей синтаксисімен танымал бағдарламалау ұғымдарын түсінуді талап етеді.

  • Мен оны қайда қолдануға болады?

    Мүмкін сіз Linux, Mac немесе Windows сияқты әр түрлі жүйелердегі адамдардың барлығы сіздің ойынды ойнауын қалайтын шығарсыз. Сондықтан Windows жүйесінде ғана қолдау көрсетілетін Visual Basic сияқты бірнеше жүйеде ғана қолдау көрсетілетін тілді қолдануға болмайды.

Бұл мақалада Python мәтіндік ойын мысалдары үшін пайдаланылады, бірақ сіз түсініктердің кез келген басқа бағдарламалау тілінде қалай жасалатынын біле аласыз.

5692759 2
5692759 2

Қадам 2. Компьютерді дайындаңыз

Сізге қажет екі негізгі компонент - бұл сіздің кодты жазатын мәтіндік редактор және оны ойынға айналдыру үшін пайдаланатын компилятор. Егер сіз осы мақаладағы мысалды ұстанғыңыз келсе, Python -ды орнатып, бағдарламаларды іске қосуды үйренуіңіз керек. Қаласаңыз, IDE (Integraded Desktop Environment) орнатуға болады, ол өңдеуді, компиляцияны және отладтауды бір бағдарламаға біріктіреді. Python IDE IDLE деп аталады. Сіз сонымен қатар қарапайым мәтінді қолдайтын кез келген мәтіндік редакторды пайдалана аласыз, мысалы Windows үшін Блокнот, macOS үшін TextEdit немесе Linux үшін Vim.

5692759 3
5692759 3

Қадам 3. Ойыншымен сәлемдесу үшін код жазыңыз

Ойыншы не болып жатқанын және не істеу керектігін білгісі келеді, сондықтан сіз оларға мәтінді басып шығаруыңыз керек.

  • Бұл Python тіліндегі print () функциясымен орындалады. Оны сынап көру үшін.py кеңейтімі бар жаңа файлды ашыңыз, оған келесі кодты енгізіңіз, сақтаңыз және іске қосыңыз:

    басып шығару («Санды болжау ойынына қош келдіңіз!») басып шығару («1 мен 1000 арасындағы бүтін санды енгізіңіз:»)

5692759 4
5692759 4

4 -қадам. Кездейсоқ санды құрыңыз

Мәтінге негізделген ойын жасайық, ол ойыншыдан дұрыс санды табуды сұрайды. Бізге қажет бірінші нәрсе - ойынның басында кездейсоқ санды құру, сондықтан ойыншы әрқашан бірдей санды таба алмайды. Бағдарлама бойынша нөмір өзгеріссіз қалатындықтан, сіз кездейсоқ санды айнымалыға сақтағыңыз келеді.

  • Python-да кіріктірілген кездейсоқ сандар функциясы жоқ, бірақ оның стандартты кітапханасы бар (бұл пайдаланушыға қосымша ештеңені орнатудың қажеті жоқ). Сондықтан кодтың басына өтіңіз (print () функцияларының алдында) және жолды импорттауды кездейсоқ теріңіз.
  • Кездейсоқ функцияны қолданыңыз. Ол randint () деп аталады, сіз жаңа ғана импортталған кездейсоқ кітапханада және санға дәлел бола алатын минималды және максималды мәнді алады. Сондықтан кодтың соңына оралыңыз және келесі жолды енгізіңіз:

    rightNum = random.randint (0, 1000)

5692759 5
5692759 5

Қадам 5. Ойнатқыштан кіріс алыңыз

Ойында ойыншы бірдеңе істегісі келеді немесе бір нәрсемен қарым -қатынас жасағысы келеді. Мәтінге негізделген ойында бұл мәтінді енгізу арқылы мүмкін болады. Енді бізде кездейсоқ сан бар, біздің келесі код жолдары ойыншыдан ең жақсы болжамды енгізуді сұрауы керек.

  • Сіз енгізген код ойнатқышқа нөмірді енгізу туралы нұсқауды басып шығаратындықтан, ол енгізген нөмірді де оқуы керек. Бұл Python 3 -те input () және Python 2 -де raw_input () көмегімен жасалады. Сіз Python 3 -те жазуыңыз керек, себебі Python 2 жақында ескіреді. Ойыншының енгізуін нөмір деп аталатын айнымалы мәнде сақтау үшін кодқа келесі жолды қосыңыз:

    userNum = input ()

5692759 6
5692759 6

Қадам 6. Ойнатқыштың енгізілуін қолдануға болатын деректер түріне айналдырыңыз

Ойыншы нөмірді енгізді, енді не?

  • Ойыншының енгізуін нөмірге айналдырыңыз. Енді бұл түсініксіз болып көрінуі мүмкін, себебі олар жаңа нөмірді енгізді. Бірақ жақсы себеп бар: Python барлық енгізу мәтін немесе «бағдарламалау» деп аталатын «жол» деп болжайды. Бұл мәтін сіз алғыңыз келетін нөмірді қамтиды. Python -да тек саны бар жолды ішіндегі санға түрлендіретін функция бар. Түрі:

    userNum = int (userNum)

5692759 7
5692759 7

Қадам 7. Ойыншының нөмірін дұрыс санмен салыстырыңыз

Ойыншы өз нөмірін енгізгеннен кейін, оны кездейсоқ жасалғанмен салыстыру қажет. Егер сандар бірдей болмаса, сіздің ойын ойыншыны басқа нөмірді қолдануға мәжбүр етуі мүмкін. Егер сандар сәйкес келсе, ойыншыға олар дұрыс тапқанын айтып, бағдарламадан шығуға болады. Бұл келесі кодпен жасалады:

ал userNum! = rightNum: userNum = int (input ())

5692759 8
5692759 8

Қадам 8. Ойыншыға кері байланыс беріңіз

Сіз олардың кірісін өңдеп болған кезде, ойыншы мұны көрмейді. Нәтижелерді ойыншыға басып шығару керек, сонда олар не болып жатқанын түсінеді.

  • Әрине, сіз ойыншыға олардың саны дұрыс немесе бұрыс екенін айта аласыз. Бірақ бұл тәсілмен ойыншыға ең нашар жағдайда 1000 рет болжауға тура келуі мүмкін, бұл өте скучно болады.
  • Сондықтан ойыншыға олардың саны тым аз немесе тым үлкен екенін айтыңыз. Бұл олардың болжамды санын айтарлықтай азайтады. Егер, мысалы, ойыншы алдымен 500-ді табады, ал ойын «Өте үлкен. Қайталап көріңіз» деп жауап берсе, 1000-ның орнына 500 ықтимал сан ғана болады. Қайталап көріңіз. «) Біреуімен.
  • Екі санның бірдей екендігін тексеру = арқылы емес, == көмегімен орындалатынын біліңіз. = оның мәнін сол жақтағы айнымалыға тағайындайды!
  • if userNum <rightNum: print («Өте кішкентай. Қайталап көріңіз:») if userNum> rightNum: print («Тым үлкен. Қайталап көріңіз:»)

5692759 9
5692759 9

Қадам 9. Кодыңызды тексеріңіз

Бағдарламашы ретінде, сіздің код аяқталғанға дейін жұмыс істейтініне сенімді болуыңыз керек.

  • Питонда бағдарламалау кезінде шегіністердің дұрыс екеніне көз жеткізіңіз. Сіздің кодыңыз келесідей болуы керек:

    кездейсоқ басып шығаруды импорттау («Санды болжау ойынына қош келдіңіз!») басып шығару («1 мен 1000 арасындағы бүтін санды енгізіңіз:») rightNum = random.randint (0, 1000) userNum = input () userNum = int (userNum) while userNum! = rightNum: if userNum <rightNum: print («Өте кішкентай. Қайталап көріңіз:») егер userNum> rightNum: print («Тым үлкен. Қайталап көріңіз:») userNum = int (input ()) print («Сіз болжадыңыз) дұрыс.»)

5692759 10
5692759 10

Қадам 10. Енгізуді растаңыз

Ойыншы дұрыс емес нәрсені енгізу арқылы ойынды бұза алмауы керек. «Кірісті тексеру» - бұл ойыншының оны өңдемес бұрын оның дұрыс енгізгеніне көз жеткізу.

  • Ойынды қайтадан ашып, сан емес нәрсені енгізіп көріңіз. Ойын ValueError көмегімен шығады. Бұған жол бермеу үшін кірістің сан екенін тексеру әдісін қолдануға болады.
  • Функцияны анықтаңыз. Енгізуді тексеру өте ұзақ болғандықтан және оны бірнеше рет жасау керек болғандықтан, сіз функцияны анықтауыңыз керек. Бұл ешқандай дәлел келтірмейді және нөмірді қайтарады. Алдымен def numInput () жазыңыз: кодтың жоғарғы жағында, кездейсоқ импорттаудың астына.
  • Ойыншының кірісін бір рет алыңыз. Input () функциясын қолданыңыз және нәтижені inp айнымалысына тағайындаңыз.
  • Ойыншының енгізуі сан болмаса, олардан нөмірді енгізуді сұраңыз. Жолдың сан екенін тексеру үшін тек бүтін санға рұқсат беретін isdigit () функцияларын қолданыңыз, сондықтан оны бөлек тексерудің қажеті жоқ.
  • Егер кіріс сан болса, оны жолдан санға түрлендіріп, нәтижені қайтарыңыз. Жолды бүтін санға түрлендіру үшін int () функциясын қолданыңыз. Бұл негізгі кодтағы түрлендіруді қажет етпейді және сіз оны сол жерден алып тастауыңыз керек.
  • Негізгі кодтағы input () барлық қоңырауларды numInput () қоңырауларына ауыстырыңыз.
  • NumInput () функциясының коды келесідей болады:
  • def numInput (): inp = input () inp.isdigit () емес кезде: print («Сізге бүтін сан енгізу керек деп айтылды! Бүтін санды енгізіңіз:») inp = input () қайтару int (inp)

5692759 11
5692759 11

Қадам 11. Ойынды қайтадан тексеріңіз

Не болып жатқанын білу үшін қате нәрселерді әдейі енгізіңіз, содан кейін олар пайда болған кезде қателерді түзетіңіз.

Бағдарлама сізден нөмір сұраған кезде мәтінді енгізіп көріңіз. Енді қате туралы хабармен шығудың орнына, бағдарлама сізден нөмірді қайта сұрайды

5692759 12
5692759 12

Қадам 12. Ойын аяқталғаннан кейін оны қайта бастауды ұсыныңыз

Осылайша, ойыншы сіздің ойынды үнемі қайта қоспай ұзақ уақыт ойнай алады.

  • Импорт пен функция анықтамасынан басқа барлық кодты уақытша циклге қойыңыз. True параметрін шарт ретінде орнатыңыз: бұл әрқашан дұрыс болады, сондықтан цикл мәңгілікке жалғасады.
  • Ойыншыдан нөмірді дұрыс тапқаннан кейін қайтадан ойнағысы келетінін сұраңыз. Print () функциясын қолданыңыз.
  • Егер олар «Жоқ» деп жауап берсе, сырт көзге көрінбеңіз. Егер олар басқа нәрсеге жауап берсе, жалғастырыңыз. Циклдың үзілуі break операторының көмегімен жүзеге асады.
  • «Санды болжау ойынына қош келдіңіз» уақытша циклден тыс жылжытыңыз. Ойыншы әр ойынды ойнаған сайын оны қарсы алғысы келмейтін шығар. Нұсқаулық басып шығаруды жылжытыңыз («Санды болжайтын ойынға қош келдіңіз!») True мәнінің үстінде, сондықтан пайдаланушы бірінші ойынды бастаған кезде ол тек бір рет басып шығарылады.
5692759 13
5692759 13

Қадам 13. Ойынды тексеріңіз

Сіз жаңа мүмкіндікті енгізген сайын ойынды тексеруіңіз керек.

  • Екі нұсқаның да жұмыс істейтініне көз жеткізу үшін кем дегенде бір рет «Иә» мен «Жоқ» деп жауап беріңіз. Міне сіздің кодыңыз келесідей болуы керек:

    кездейсоқ def numInput () импорттау: inp = input () inp.isdigit () кезінде емес: басып шығару («Сізге бүтін сан енгізу керек деп айтылды! Бүтін санды енгізіңіз:») inp = input () қайтару int (inp) басып шығару («Сандарды болжайтын ойынға қош келдіңіз!») True кезінде: басып шығару («1 мен 1000 арасындағы бүтін санды енгізіңіз:») rightNum = random.randint (0, 1000) userNum = numInput () userNum! = RightNum: if userNum <rightNum: print («Тым кішкентай. Қайталап көріңіз:») егер userNum> rightNum: print («Тым үлкен. Қайталап көріңіз:») userNum = numInput () print («Сіз дұрыс таптыңыз.») басып шығару («Сіз қайтадан ойнағыңыз келе ме? Шығу үшін Жоқ енгізіңіз. «) if input () ==» Жоқ «: үзіліс

5692759 14
5692759 14

Қадам 14. Мәтінге негізделген басқа ойындар жазыңыз

Келесі мәтіндік шытырман оқиғаны қалай жазуға болады? Немесе викториналық ойын ба? Шығармашылық болыңыз.

Кеңес: Егер сіз бір нәрсенің қалай орындалатынын немесе функцияның қалай қолданылатынын білмесеңіз, кейде құжаттаманы қарау пайдалы болады. Python 3 құжаттамасы https://docs.python.org/3/ сайтында орналасқан. Кейде интернеттен өзіңіз қалаған нәрсені іздеу жақсы нәтиже береді.

3 бөлімнің 2 бөлігі: 2D графикамен ойын жасау

5692759 15
5692759 15

Қадам 1. Графикалық кітапхананы таңдаңыз

Графика жасау өте күрделі, және бағдарламалау тілдерінің көпшілігі (Python, C ++, C, JavaScript қоса) ядродағы немесе стандартты кітапханалардағы графиканы минималды немесе тіпті қолдамайды. Графика жасау үшін сізге сыртқы кітапхананы пайдалану қажет болады, мысалы Python үшін Pygame.

Графикалық кітапхананың өзінде мәзірді көрсету, ойнатқыш нені басқанын тексеру, плиткаларды көрсету және т. Егер сіз нақты ойынды дамытуға назар аударғыңыз келсе, онда сіз мұны оңай жүзеге асыратын Unity сияқты ойын қозғалтқыштарының кітапханасын пайдалана аласыз

Бұл мақалада Cocos2D көмегімен Python қарапайым 2D платформерін жасауды көрсетеді. Айтылған кейбір ұғымдар басқа ойын қозғалтқыштарында болмауы мүмкін. Қосымша ақпарат алу үшін олардың құжаттарына жүгініңіз.

5692759 16
5692759 16

Қадам 2. Сіз таңдаған графикалық кітапхананы орнатыңыз

Python үшін Cocos2D орнату оңай. Сіз оны https://python.cocos2d.org/index.html сайтынан немесе Linux қолданып жатсаңыз sudo pip3 install cocos2d іске қосу арқылы ала аласыз.

5692759 17
5692759 17

Қадам 3. Ойын мен медиаға жаңа каталог жасаңыз

Сіз ойын кезінде суреттер мен дыбыстарды қолданасыз. Бұл заттарды бағдарламаның каталогында сақтаңыз. Бұл каталогта басқа ештеңе болмауы керек, сондықтан сіз ойында қандай активтер бар екенін оңай көре аласыз.

5692759 18
5692759 18

Қадам 4. Жаңа каталогта жаңа код файлын жасаңыз

Бағдарламалау тіліне арналған файл кеңейтімі бар, оны негізгі деп атаңыз. Егер сіз үлкен және күрделі бағдарлама жазсаңыз, онда бірнеше бағдарламалық файлдар болуы керек, бұл сізге негізгі файлдың қайсысы екенін көрсетеді.

Бұл мысалда біз барлық кодты қамтитын main.py деп аталатын файл жасаймыз

5692759 19
5692759 19

Қадам 5. Ойын терезесін жасаңыз

Бұл графикалық ойынның негізгі алғы шарты.

  • Қажетті cocos2d қосалқы модульдерін импорттаңыз: cocos.director, cocos.scene және cocos.layer. Бұл subModuleName импорттау *көмегімен жасалады, мұнда қосалқы модуль атауы-импорттағыңыз келетін ішкі модуль. … Импорттау мен импорттаудың … айырмашылығы - модуль атауын сол модульде қолданатынның бәрінің алдына қоюдың қажеті жоқ.
  • ColorLayer MainMenuBgr ішкі сыныбын анықтаңыз. Бұл негізінен сіз жасаған кез келген негізгі мәзір фоны сіз жасаған кейбір өзгерістермен түс қабаты сияқты әрекет ететінін білдіреді.
  • Кокос директорын бастаңыз. Бұл сізге жаңа терезе береді. Егер сіз тақырып жазбасаңыз, терезеде кәсіби атауы жоқ файл атауы (main.py) сияқты тақырып болады. Өлшемін True етіп өзгерту арқылы терезенің өлшемін өзгертуге рұқсат етіңіз.
  • ShowMainMenu функциясын анықтаңыз. Негізгі мәзірді көрсету үшін кодты функцияға қою керек, себебі бұл функцияға қайта қоңырау шалу арқылы негізгі мәзірге оңай оралуға мүмкіндік береді.
  • Сахна құру. Көрініс әзірше бір қабаттан тұрады, бұл сіз анықтаған MainMenuBgr класының объектісі.
  • Бұл көріністі терезеде іске қосыңыз.
  • cocos.director импортынан * cocos.layer импортынан * cocos.layer импортынан * сынып MainMenuBgr (ColorLayer): def _init _ (self): super (MainMenu, self)._ init _ (0, 200, 255, 255) def showMainMenu (): menuSc = Scene (MainMenuBgr ()) Director.run (menuSc) Director.init (caption = «IcyPlat - қарапайым платформер», resizable = True) showMainMenu ()

5692759 20
5692759 20

Қадам 6. Терезеге негізгі мәзірді қосыңыз

Нақты ойыннан басқа, ойыншыны терезені жабу үшін пайдалануға болатын мәзірді қосу қажет болады, кейін басқа элементтерді қосуға болады.

  • Cocos.menu (қайтадан нұсқаулықпен) және pyglet.app (бұл жолы импорттаумен) импорттаңыз.
  • MainMenu мәзірінің ішкі сыныбы ретінде анықтаңыз.
  • Негізгі мәзірдің туралануын орнатыңыз. Тік және көлденең туралауды бөлек қою керек.
  • Мәзір элементтерінің тізімін жасаңыз және оларды мәзірге қосыңыз. Сізде «Ойынды бастау» және «Шығу» мәзір элементтері болуы керек. Мәзірдің әрбір элементі жақшаның ішінде орналасуы керек. Әр элементте белгі және ойнатқыш оны басқанда не болатынын анықтайтын кері байланыс функциясы болуы керек. «Ойынды бастау» элементі үшін startGame функциясын қолданыңыз (оны жақын арада жазасыз), «Шығу» элементі үшін «pyglet.app.exit» пайдаланыңыз (бұрыннан бар). Self.create_menu (menuItems) шақыру арқылы нақты мәзірді жасаңыз.
  • StartGame () анықтаңыз. Әзірге анықтаманы енгізіңіз, сіз нақты ойынды жазған кезде оны ауыстырасыз.
  • MenuSc көрінісін жасаған кодтағы орынға өтіңіз және оған MainMenu нысанын қосыңыз.
  • Сіздің бүкіл кодыңыз келесідей болуы керек:

    cocos.director импортынан * cocos.menu импортынан * cocos.scene импортынан * cocos.layer импортынан * импорт pyglet.app класына MainMenuBgr (ColorLayer): def _init _ (self): super (MainMenuBgr, self)._ init _ (0), 200, 255, 255) сынып MainMenu (Мәзір): def _init _ (өзін): супер (MainMenu, өзін)._ init _ («») self.menu_valign = ЦЕНТР self.menu_halign = ОРТА мәзіріItems = [(MenuItem («Ойынды бастау») «, startGame))), (MenuItem (» Шығу «, pyglet.app.exit))] self.create_menu (menuItems) defGame startGame (): pass def showMainMenu (): menuSc = Scene (MainMenuBgr ()) menuSc.add (MainMenu ()) Director.run (menuSc) Director.init (caption = «IcyPlat - қарапайым платформер», resizable = True) showMainMenu ()

5692759 21
5692759 21

Қадам 7. Кодыңызды тексеріңіз

Кодты ертерек тексеріңіз, ол әлі қысқа және салыстырмалы түрде қарапайым. Содан кейін сіз тым күрделі болмай тұрып негізгі құрылымдағы қателерді анықтап, түзете аласыз.

Нұсқаулықтағы код «IcyPlat - қарапайым платформер» деген жазуы бар терезені ашуы керек. Фон ашық көк және сіз терезенің өлшемін өзгертуге болады. Мәзірде «Ойынды бастау» түймесін басқанда, ештеңе болмауы керек (әлі). «Шығу» түймесін басқанда, терезе жабылады

5692759 22
5692759 22

Қадам 8. Спрайт жасаңыз

Спрайт-бұл «ойын объектісі» немесе екі өлшемді сурет. Спрайт ойын ішіндегі объектілер, белгішелер, фондық декорациялар, кейіпкерлер және ойында бейнемен бейнелейтін кез келген нәрсе болуы мүмкін. Біз ойыншы өзара әрекеттесе алатын кейіпкерге спрайт құрудан бастаймыз.

  • Cocos.sprite қосалқы модулін from-import-өрнегімен импорттаңыз.
  • Спрайтты бейнелейтін суретті табыңыз. Егер сізде сурет болмаса, спрайтты көрсете алмайсыз. Сіз біреуін тарта аласыз немесе оны интернеттен ала аласыз (егер сіз ойынды жариялауды жоспарласаңыз, лицензияларға назар аударыңыз). Бұл мысал үшін https://opengameart.org/content/tux-classic-hero-style сілтемесіне өтіңіз және жұмыс істейтін пингвиндердің-p.webp" />
  • Қабатты ScrollableLayer класының жаңа объектісі ретінде жасаңыз. Содан кейін Sprite объектісі ретінде спрайт жасаңыз және оның орнын (8, 250) етіп орнатыңыз. Анықтама үшін (0, 0) нүктесі төменгі сол жақ бұрышта. Бұл өте жоғары, бірақ бұл пингвиннің мұзға кептеліп қалмауын қамтамасыз етеді.
  • Спрайтты спрайт қабатына қосыңыз.
  • Спрайт қабатынан жаңа көрініс жасаңыз және оны іске қосыңыз.
  • def startGame (): figLayer = ScrollableLayer () fig = Sprite ('pingu.png') fig.position = (75, 100) figLayer.add (fig) # gameSc = Scene (figLayer) режиссер.жүгіру (gameSc)

  • Кодты іске қосыңыз. Сіз басқаннан кейін қара фонда кішкентай пингвин фигурасын (немесе сіз салған нәрсені) көруіңіз керек Ойынды бастау.
5692759 23
5692759 23

9 -қадам. Өзіңіздің пейзажыңызды армандаңыз

Көптеген ойындарда сіздің спрайттар бос жерде қалмауы керек. Олар шынымен бір жерде тұруы керек, айналасында бірдеңе бар. 2D ойындарында бұл көбінесе плиткалар жиынтығымен және плиткалар картасымен жасалады. Плиткалар жиынтығы негізінен қандай беткі квадраттар мен фондық квадраттар бар екенін және олардың қандай болатынын көрсетеді.

  • Плиткалар жиынтығын жасаңыз. Бұл ойынға арналған плиткалар өте қарапайым болады: бір плитка мұзға және бір плитка аспанға. Бұл мысалда қолданылған мұз плиткасы CC-BY-SA 3.0 астында.
  • Плиткалардың суретін жасаңыз. Бұл барлық плиткалардың суреті, олардың өлшемдері бірдей болуы керек (егер жоқ болса, оларды өңдеңіз) және ойында көргіңіз келетін өлшем бір -біріне жақын. Суретті icyTiles-p.webp" />
  • Плиткалар жиынтығының сипаттамасын жасаңыз. Бұл XML файлы. XML файлында тақтайшалар жиынтығындағы суреттердің өлшемі, қай суретті қолдану және қай тақтаны қайдан табуға болатындығы туралы ақпарат бар. Төмендегі кодпен icyTiles.xml деп аталатын XML файлын жасаңыз:

         
    
5692759 24
5692759 24

Қадам 10. Пейзажыңыз үшін плитка картасын жасаңыз

Плитка картасы - бұл сіздің деңгейіңізде қай тақтайшаның орналасқанын анықтайтын карта. Мысалда плиткалық карталарды құру функциясын анықтау керек, себебі плиткалық карталарды қолмен жасау өте қиын. Жетілдірілген ойын әдетте деңгейлік редакторға ие болады, бірақ 2D ойынымен танысу үшін алгоритм жеткілікті жақсы деңгейлерді қамтамасыз ете алады.

  • Қанша жолдар мен бағандар қажет екенін біліңіз. Ол үшін экран өлшемін көлденең (бағандар) және тігінен (жолдар) тақтайшаның өлшеміне бөліңіз. Санды жоғары қарай дөңгелектеу; бұл үшін сізге математикалық модуль функциясы қажет, сондықтан математиканың импорттық шегінен кодтың жоғарғы жағындағы импортқа қосыңыз.
  • Жазу үшін файлды ашыңыз. Бұл файлдың барлық алдыңғы мазмұнын жояды, сондықтан каталогта әлі жоқ деңгейдегі MapMx.xml атауын таңдаңыз.
  • Ашылатын тегтерді файлға жазыңыз.
  • Алгоритмге сәйкес тақтайша картасын жасаңыз. Сіз оны төмендегі кодта қолданасыз, немесе сіз оны өзіңіз ойлап таба аласыз. Randint функциясын кездейсоқ модульден импорттағаныңызға көз жеткізіңіз: ол төмендегі кодтың жұмыс істеуі үшін қажет және сіз ойлап тапқаныңызға кездейсоқ сандар қажет болуы мүмкін. Сонымен қатар, аспан плиткалары мен мұз плиткаларын әр түрлі қабаттарға қоюды ұмытпаңыз: мұз қатты, аспан емес.
  • Файлға жабылатын тегтерді жазып, файлды жабыңыз.
  • def generateTilemap (): colAmount = төбе (800/16) * 3 # (экранның ені / тақтайшаның өлшемі) * 3 қатарАммент = төбе (600/16) # экран биіктігі / тақтайша өлшемі tileFile = ашық («levelMap.xml», « w «) tileFile.write ('\ n / n / n') iceHeight = randint (1, 10) i үшін ауқымында (0, colAmount): tileFile.write ('') makeHole = егер randint (0, 50)) == 10 және i! = 0: # түзілу нүктесінде тесіктерге жол бермеу makeHole = True үшін j диапазонында (0, rowAmount): if makeHole: tileFile.write ('\ n') else: if j <= iceHeight: tileFile.write ('\ n') else: tileFile.write ('\ n') iceHeight = randint (iceHeight-5, iceHeight+5) if iceHeight <0: # тақтайшалардың тым төмен мұзға айналуына шектеу қою = randint (1, 5) if iceHeight> rowAmount: # тақтайшалар тым жоғары мұзға көтерілуін шектейдіHeight = randint (int (rowAmount/2) -5, int (rowAmount/2) +5) tileFile.write ('\ n') tileFile.write ('\ n / n') i ауқымындағы (0, colAmount) үшін: tileFile.write ('') j үшін ауқымдағы (0, rowAmount): tileFile.write ('\ n') n ') tileFile.write (' / n / n ') tileFile.close ()

5692759 25
5692759 25

Қадам 11. Плиткалардың картасын көрсету

Барлығын cocos.tiles -тен импорттаңыз, содан кейін startGame функциясына өтіңіз.

  • StartGame функциясының басында сіз анықтаған функцияны қолданып тақтайша картасын жасаңыз.
  • Жаңа айналдыру менеджерін жасаңыз. Мұны тікелей қабатына спрайт қосатын сызықтың астында жасаңыз.
  • LevelMap.xml тақтайшасының картасынан жүктелетін тақталар бар жаңа қабат жасаңыз, generateTilemap функциясы жасалады.
  • Айналдыру менеджеріне қатты емес қабатты, қатты қабатты және спрайт қабатын дәл осы ретпен қосыңыз. Қаласаңыз, z-позициясын қосуға болады.
  • Спрайт қабатынан көріністі құрудың орнына оны айналдыру менеджерінен жасаңыз.
  • StartGame функциясы енді келесідей болуы керек:

    def startGame (): generateTilemap () # fig = Sprite ('pingu.png') fig.position = (8, 500) figLayer = ScrollableLayer () figLayer.add (fig) # tileLayer = жүктеу ('levelMap.xml') solidTiles = tileLayer ['solid'] nsoliTiles = tileLayer ['not_solid'] # scrMang = ScrollingManager () scrMang.add (nsoliTiles, z = -1) scrMang.add (solidTiles, z = 0) scrMang.add (figLayer, z) = 1) # gameSc = Scene (scrMang) режиссері. Жүгіру (gameSc)

5692759 26
5692759 26

Қадам 12. Кодыңызды тексеріңіз

Сіз енгізген жаңа мүмкіндіктер шынымен жұмыс істейтініне көз жеткізу үшін кодты жиі тексеріп отыруыңыз керек.

Мысалдағы код енді пингвиннің артындағы мұзды пейзажды көрсетуі керек. Егер пингвин мұздың үстінде қалықтап бара жатқандай көрінсе, сіз ештеңе істемедіңіз және ол келесі қадамда түзетіледі

5692759 27
5692759 27

Қадам 13. Басқару элементтерін қосыңыз

Ойыншының мәтінге негізделген ойынға қарағанда, 2D ойынында бағдарламамен өзара әрекеттесудің көптеген әдістері бар. Дұрыс перне басылған кезде олардың фигурасын жылжыту кең таралған.

  • Барлығын cocos.mapcolliders және cocos.actions -тен импорттаңыз. Сонымен қатар pyglet.window кілтінен импорттаңыз.
  • Кейбір жаһандық айнымалыларды «жариялаңыз». Ғаламдық айнымалылар функциялар арасында бөлінеді. Сіз Python -да айнымалыларды шынымен жариялай алмайсыз, бірақ сіз оны қолданар алдында негізгі кодта жаһандық айнымалы бар екенін айтуыңыз керек. Сіз мәнді 0 ретінде тағайындай аласыз, себебі функция кейінірек дұрыс мәнді тағайындауға қамқорлық жасайды. Сондықтан импорттау өрнектерінің астына қосыңыз:

    # жаһандық айнымалылар клавиатурасы «жарияланады» = 0 scrMang = 0

  • StartGame функциясын реттеңіз:

    • Айнымалылардың жаһандық пернетақтасы мен scrMang пайдаланылатынын айтыңыз. Мұны функцияның жоғарғы жағында scrMang жаһандық пернетақтасын жазу арқылы жасаңыз.
    • Терезені пернетақта оқиғаларын тыңдауға мәжбүр етіңіз.
    • Суретке PlatformerController негізінде әрекет етуді айтыңыз. Сіз жақын арада PlatformerController бағдарламасын енгізесіз.
    • Қатты плиткалар мен фигура арасындағы соқтығысуларды шешу үшін карта коллайдер жасаңыз.

    def startGame (): жаһандық пернетақта, scrMang generateTilemap () # fig = Sprite ('pingu.png') fig.position = (8, 250) figLayer = ScrollableLayer () figLayer.add (fig) # tileLayer = жүктеу ('levelMap).xml ') solidTiles = tileLayer [' қатты '] nsoliTiles = tileLayer [' not_solid '] # пернетақта = перне. KeyStateHandler () Director.window.push_handlers (keyboard) # fig.do (PlatformerController ()) mapcollider = RectMapCollib (velocity_) = 'слайд') fig.collision_handler = make_collision_handler (mapcollider, solidTiles) # scrMang = ScrollingManager () scrMang.add (nsoliTiles, z = -1) scrMang.add (solidTiles, z = 0) scrMang.add (figLayer, z = 1) # gameSc = Scene (scrMang) режиссері.жүгіру (gameSc)

  • Платформаның контроллерін жасаңыз. Бұл сіздің пернені басуыңызға сәйкес фигураны жылжытады.

    • Платформер контроллерін Action субклассы ретінде анықтаңыз.
    • Қозғалыс жылдамдығын, секіру жылдамдығын және ауырлық күшін анықтаңыз.
    • Бастау функциясын анықтаңыз. Бұл функция платформер контроллері суретке қосылған кезде бір рет шақырылады. Ол өзінің жылдамдығын x бағытында да, 0 бағытында да орнатуы керек.
    • Қадам функциясын анықтаңыз. Сахна жүріп жатқанда қайталанады.
    • Қадамдық функцияға жаһандық айнымалылар пернетақтасы мен scrMang пайдалану туралы айтыңыз.
    • Алу және жылдамдықты өзгерту. X және y жылдамдығын бөлек айнымалыларда сақтаңыз. Жылдамдық жылдамдығына көбейтілген x жылдамдығын 1 немесе -1 етіп орнатыңыз (сол немесе оң жақ перненің басылуына байланысты). Y жылдамдығына гравитация қосыңыз. Оны тоқтаған кезде көбейтіңіз, осылайша ол баяу құрылғыларда жұмыс істейді. Егер бос орын пернесі басылса және фигура жерде тұрса, y жылдамдығын секіру жылдамдығына өзгерту арқылы секіріңіз.
    • Фигура қайда жылжу керек екенін есептеңіз. Содан кейін, егер ол қатты тақтайшаның ішінде болса, соқтығысу өңдеушісіне сол күйді реттеуге рұқсат етіңіз. Соңында фигураны жаңа реттелген позицияға жылжытыңыз.
    • Айналдыру менеджерінің фокусын суретке қойыңыз. Бұл фигура жылжытылған кезде камераның ақылға қонымды түрде қозғалуына әкеледі.

    сынып PlatformerController (Әрекет): жаһандық пернетақта, scrMang on_ground = True MOVE_SPEED = 300 JUMP_SPEED = 500 GRAVITY = -1200 def start (self): self.target.velocity = (0, 0) def step (self, dt): жаһандық пернетақта, айналдырғыш егер dt> 0.1: # үлкен үзіліс кезінде ештеңе жасамайды vx, vy = self.target.velocity vx = (пернетақта [key. RIGHT] - пернетақта [key. LEFT]) * self. MOVE_SPEED vy + = self. GRAVITY * dt егер self.on_ground мен пернетақта [key. SPACE]: vy = self. JUMP_SPEED dx = vx * dt dy = vy * dt last = self.target.get_rect () new = last.copy () new.x += dx new.y += dy self.target.velocity = self.target.collision_handler (last, new, vx, vy) self.on_ground = (new.y == last.y) self.target.position = new.center scrMang.set_focus (*new.center)

5692759 28
5692759 28

Қадам 14. Кодыңызды тексеріңіз

Егер сіз мысалды ұстанған болсаңыз, енді сіз пингвинді көрсеткі пернелерімен жылжытуыңыз керек және бос орынға басу арқылы секіруіңіз керек. Сонымен қатар, енді пингвин жерге құлап кетпей, құлап түсуі керек.

5692759 29
5692759 29

Қадам 15. Ойынның соңын жасаңыз

Тіпті шексіз жалғасатын ойындардың да жеңілу мүмкіндігі болуы керек. Мысалда функциясы бар деңгейдің соңы болғандықтан, сіз де осы мақсатқа жету арқылы жеңіске жетуге мүмкіндік беруіңіз керек. Әйтпесе, ойыншы мұндағы мұзды блоктарда ғана секіреді, бұл скучно болады.

  • Платформер контроллерінің ішінде фокус орнатылғаннан кейін фигураның x және y позициясын алыңыз. Егер y позициясы 0 -ден аз болса, аргумент ретінде «Game Over» деген атпен FinishGame () функциясын шақырыңыз (оны кейін жазасыз). Егер x позициясы 3 -ке көбейтілген экран өлшемінен үлкен болса (сіз мұны бұрын деңгей өлшемі ретінде орнатқансыз).

    posX, posY = self.target.position, егер posY <0: finishGame («Ойын аяқталды»), егер posX> 800*3: # деңгейінің өлшемі FinishGame («Деңгейі аяқталды») қайтарылса

  • Сыныптың аяқталуын анықтаңыз. Бұл сіз бұрын анықтаған негізгі мәзір класы сияқты болуы керек, бірақ тақырып ретінде бос жолдың орнына _init_ функциясы дәлел ретінде алатын айнымалы мәтінді қолдануы керек. Мәзір элементтері «Қайталап көр» және «Шығу» деп белгіленуі керек, бірақ олар шақыратын функциялар өзгеріссіз қалады.

    сынып FinishMenu (Мәзір): def _init _ (өзін, мәтін): супер (FinishMenu, өзін)._ init _ (мәтін) self.menu_valign = ОРТА self.menu_halign = ЦЕНТР menuItems = [(MenuItem («Қайталап көр», startGame)), (MenuItem («Шығу», pyglet.app.exit))] self.create_menu (menuItems)

  • FinishGame () функциясын анықтаңыз. Ол мәтінді дәлел ретінде қабылдауы керек. Ол мәзірдің негізгі фонынан көрініс жасауы керек, бұл мәзірге мәтіндік аргументі бар FinishMenu. Содан кейін ол бұл көріністі іске қосуы керек.

    def finishGame (мәтін): menuSc = Scene (MainMenuBgr ()) menuSc.add (FinishMenu (мәтін)) Director.run (menuSc)

5692759 30
5692759 30

Қадам 16. Несие қосыңыз

Бұл жерде сіз керемет код үшін несие аласыз, сонымен қатар сізге көмектескен кез келген адамға несие бересіз. Егер сіз басқа веб -сайттан суретті қолдансаңыз (рұқсатпен), бұл суретті оны жасаушыға жатқызуды ұмытпаңыз.

  • CREDITS файлын жасаңыз және барлық несиелеріңізді мына жерге енгізіңіз:

    Пингвин: Келвин Шадингинг, CC0 мұз блогы астында: Michał Banas цифры 1024 opengameart.org сайтында CC-BY-SA 3.0 астында

  • Python кодына оралыңыз және cocos.text -тен Label импорттаңыз.
  • Credits of Layer кіші сыныбын анықтаңыз. _Init_ функциясында CREDITS файлын оқыңыз және ондағы әрбір жолдан дұрыс орынға мәтіндік белгі қойыңыз.

    сынып Кредиттер (Қабат): def _init _ (өзін): супер (Кредиттер, өзінше)._ init _ () credFile = ашық («CREDITS», «r») creds = credFile.read () creds = creds.split («\ n «) i үшін ауқымдағы (0, len (creds)): credLabel = Label (creds , font_size = 32, anchor_x =» left «, anchor_y =» top «) credLabel.position = 25, 500- (i +1)*40 self.add (credLabel)

  • Негізгі мәзір сыныбына өтіп, басылған кезде showCredits функциясын шақыратын «Кредиттер» деп аталатын мәзір элементін қосыңыз.
  • Мәзірдің BackToMainMenuButton ішкі сыныбын анықтаңыз. ShowMainMenu функциясын шақыратын «Артқа» деп аталатын бір элементтен тұратын мәзір жасаңыз. Бұл «мәзір» батырмаға ұқсайды, тігінен төменге және көлденеңінен жоғарыға туралануы керек.

    сынып BackToMainMenuButton (Мәзір): def _init _ (өзін): супер (BackToMainuButton, өзін)._ init _ («») self.menu_valign = ТӨМЕН self.menu_halign = LEFT menuItems = [(MenuItem («Артқа», showMainMenu)) create_menu (menuItems)

  • ShowCredits функциясын анықтаңыз. Ол MainMenuBgr қабаты мен Credits қабатынан көрініс жасап, сол көріністі іске қосуы керек.

    def showCredits (): credSc = Scene (MainMenuBgr ()) credSc.add (Credits ()) credSc.add (BackToMainMenuButton ()) Director.run (credSc)

5692759 31
5692759 31

Қадам 17. Кодыңызды тексеріңіз

Сіз кодты аяқтадыңыз деп ойласаңыз, бәрін қайтадан қарауыңыз керек. Бұл сізге бір нәрсені оңтайландыруға болатынын немесе жоюды ұмытып кеткен қажет емес сызықтар бар -жоғын білуге көмектеседі. Егер сіз мысалды ұстанған болсаңыз, сіздің бүкіл кодыңыз келесідей болуы керек:

    cocos.director импортынан * cocos.menu импортынан * cocos.scene импортынан * cocos.layer импортынан * cocos.sprite импорттан * cocos.tiles импортынан * cocos.mapcolliders импортынан.мәтінді импорттау белгісін pyglet.window -дан pyglet.app -дан импорттау кілті математикалық импорттау шегінен кездейсоқ импорттау шегінен # «жариялайтын» жаһандық айнымалылар клавиатурасы = 0 scrMang = 0 класы MainMenuBgr (ColorLayer): def _init _ (self): super (MainMenuBgr, self)._ init _ (0, 200, 255, 255) сынып MainMenu (Мәзір): def _init _ (өзін): супер (MainMenu, өзін)._ init _ («») self.menu_valign = ОРТАЛЫҚ self.menu_halign = ОРТА мәзіріItems =

  • Бұл барлығы 168 жол, ал егер сіз тек кодты есептесеңіз, 152 жол. Бұл өте маңызды болып көрінеді, бірақ мұндай күрделі ойын үшін бұл аз ғана сома.
5692759 32
5692759 32

Қадам 18. Аяқталды

Енді ойынды тексеріңіз. Сіз бір нәрсені бағдарламалаған кезде, сіз жаңа нәрсені енгізген кезде оның жұмыс істейтінін тексеруіңіз керек. Сонымен қатар, сіз біраз уақыт жазған ойынды ойнағыңыз келуі мүмкін.

3/3 бөлімі: Ойын шығару

5692759 52
5692759 52

Қадам 1. Тәуелділіктерді жазыңыз

Басқа компьютерді қолданатын кез келген адамда сіз сияқты бағдарламалық қамтамасыз ету мен кітапханалар болмайды. Сонымен, сіздің ойынды орнататындардың бәрі оны іске қосу үшін не қажет екенін нақты білетініне көз жеткізуіңіз керек. Сізге барлық тәуелділіктердің барлық тәуелділіктерін жазудың қажеті жоқ, бірақ сіз кем дегенде пакеттеріңіздің тәуелділіктері мен олардың тәуелділіктерін жазуыңыз керек.

5692759 53
5692759 53

Қадам 2. Барлық медианы пайдалануға рұқсатыңыз бар екеніне көз жеткізіңіз

Бұл барлық модельдерге, соның ішінде 3D модельдеріне, музыкаға, диалогқа, музыкаға, кітапханаларға және ойынға қолданған жақтауларға қатысты. Сіз өзіңіз жазбаған нәрсені.

  • Көбінесе белгілі бір шарттар бар, мысалы, авторға несие беру немесе БАҚ -тың модификациясын бір лицензиямен бөлісу. Кейде сіз ойын үшін төлем жасамайынша, графиктерді жасаушыларға жатқызбай қолдана аласыз. Егер сізге авторға несие беру керек болса, оны ойыныңыздағы «Кредиттер» қойындысы сияқты жақсы көрінетін жерде жасаңыз.
  • Сондай -ақ, авторлық құқықтары қорғалған және лицензия көрсетілмеген, кейде «Барлық құқықтар қорғалған» сияқты мәтіні бар БАҚ бар. Егер бұлай болса, оны ойынға қоспас бұрын автордан нақты рұқсат алу қажет.
  • Кітапханалар әдетте кітапхана ретінде пайдалануға рұқсат беретін лицензиялар бойынша шығарылады. Ерекшелікті байланыстырмайтын GPL ерекше ерекшелігі: Мұндай лицензия оны тек белгілі бір лицензиялары бар бағдарламада пайдалануға мүмкіндік береді. Сіз бұқаралық ақпарат құралдарымен немесе кітапханамен не істеп жатқаныңызға рұқсат беру үшін әрқашан лицензияның негізгі тармақтарын оқып шығуыңыз керек.

Ескерту: Ақпарат құралдарын немесе кітапханаларды лицензия жарияламайтын ойынға рұқсат етпейтіндей пайдалану сізді елеулі құқықтық қиындықтарға әкелуі мүмкін. Егер сіз қолдануға рұқсат етілгеніне сенімді болмасаңыз, автордан сұраңыз немесе бұқаралық ақпарат құралдарынан мүлде аулақ болыңыз.

5692759 54
5692759 54

Қадам 3. Ойынды жариялағыңыз келетін шарттар туралы шешім қабылдаңыз

Сіз ойыныңызды сатасыз ба? Басқаларға сіздің суреттеріңіз бен идеяларыңызды қолдануға рұқсат бергіңіз келе ме? Сіз өзіңіздің жобаңызда қолданатын бұқаралық ақпарат құралдарына абай болуыңыз керек болса да, сіз басқаларға сіздің ойынды пайдалануға қалай рұқсат беру керектігін шеше аласыз. Сіз өз ойын көпшілікке жариялау үшін Creative Commons CC0 лицензиясын пайдалана аласыз. Кейбір құқықтарды сақтай отырып, кейбір жағдайларда таратуға және өзгертуге рұқсат беру үшін Gnu General Public License (GPL) немесе Berkeley Software Distribution (BSD) лицензиясын қолданып көріңіз. Немесе сіз өзіңіздің бағдарламалық жасақтамаңызды меншікке айналдыра аласыз, яғни оны рұқсатсыз ешкімге таратуға немесе өзгертуге болмайды.

Ойын сату арқылы ақша табуға болатынына қарамастан, адамдар әдетте сіздің функцияларыңыз аз және ерекше ештеңесі жоқ бірінші ойыныңызды сатып алуы екіталай. Сонымен қатар, егер ақысыз бағдарлама жұмыс істемесе, оны жүктеген адамдардың көңілі қалады. Егер олар төлесе, олар ақшаны қайтаруды талап етеді, бұл сізге де, пайдаланушыларға да қиындық туғызады. Сондықтан алғашқы бірнеше бағдарламаны ақысыз қол жетімді етуді қарастырыңыз

5692759 55
5692759 55

Қадам 4. Ойынды қалай жариялағыңыз келетінін шешіңіз

Әр әдістің артықшылықтары мен кемшіліктері бар, сондықтан сіз өзіңіз шешім қабылдауыңыз керек.

  • Оны сайтта жариялау:

    Егер сізде веб -сайт болса, оны жүктеуге қол жетімді ету үшін ойынды жүктеуге болады. Бағдарламалық жасақтаманы орнатудың нақты нұсқауларын, сондай -ақ барлық қажетті тәуелділіктерді беріңіз. Мұның кемшілігі - ойыншыларға тәуелділікті қолмен орнатуға тура келеді, бұл кейбір адамдарға қиын болуы мүмкін.

  • Пакет менеджеріне пакет жасау:

    Linux пен Linux ортасында адамдарға қосымшаларды орнатуды жеңілдететін apt, Yum және Homebrew сияқты әр түрлі пакет менеджерлері бар. Олардың барлығының әр түрлі пакеттік форматтары бар. Пакеттердің жақсы жағы - олар барлық тәуелділіктерді автоматты түрде орнатады (егер сіз оларды дұрыс конфигурацияласаңыз). Сондықтан ойыншы тек сіздің пакетті орнатуы керек, содан кейін ойынды ойнай алады. Мәселе мынада, әр түрлі платформаларда әр түрлі пакет менеджерлері бар, сондықтан сіз ең кең таралған пакеттермен қамтамасыз ету үшін біраз жұмыс істеуіңіз керек.

5692759 56
5692759 56

5 -қадам. Бағдарламаға назар аударыңыз

Оңай орнатуға мүмкіндік беру үшін бағдарламаңызды Ubuntu мен Debian сияқты негізгі пакет қоймасына жүктеуді қарастырыңыз. Сондай -ақ, GameDev жобалары бөлімі немесе tigSource бөлігі сияқты тиісті форумдарда жариялаңыз. Бірақ егер сіздің алғашқы ойындарыңыз әйгілі болмаса, көңіліңізді қалдырмаңыз. Егер сізде көптеген адамдарға ұнайды деген ой болса, сіздің ойын танымал бола алады.

Кеңестер

  • Сабырлы болыңыз және үйренуге дайын болыңыз. Бағдарламалау кейде көңілсіз болуы мүмкін!
  • Егер сіз басқа ойында бірдеңе қалай жасалатынына және ойынның бастапқы коды бар екеніне таң қалсаңыз, сіз оның бастапқы кодын қарай аласыз.
  • Медиа іздегенде, көпшілікке қолжетімді мазмұнды табуға тырысыңыз. «Creative Commons» немесе «Public Domain» суреттері мен музыкасын іздеңіз және https://opengameart.org немесе https://publicdomainpictures.net сияқты веб -сайттарды қолданыңыз.
  • Лицензияны тексермей -ақ кодтың негізгі бөліктерін көшірмеңіз. Оған жиі тыйым салынады, ал егер олай болмаса, әдетте атрибуцияны қажет етеді.
  • Ойынды жарнамалау кезінде спам жасамаңыз немесе сәйкес емес жерлерге хабарлама жібермеңіз. Бұл сізді беттен оқшаулауға әкелуі мүмкін, жай тітіркендіреді және сіздің беделіңізге нұқсан келтіреді.

Ұсынылған: