የኮምፒተር ጨዋታዎችን እንዴት ማዘጋጀት እንደሚቻል (ከስዕሎች ጋር)

ዝርዝር ሁኔታ:

የኮምፒተር ጨዋታዎችን እንዴት ማዘጋጀት እንደሚቻል (ከስዕሎች ጋር)
የኮምፒተር ጨዋታዎችን እንዴት ማዘጋጀት እንደሚቻል (ከስዕሎች ጋር)
Anonim

ለኮምፒተር ጨዋታ ሀሳብ አለዎት እና እውን ለማድረግ ይፈልጋሉ? ወይም የኮምፒተር ጨዋታዎች እንዴት እንደሚፃፉ አስበው ያውቃሉ? ይህ wikiHow በ Python ውስጥ ሶስት መሰረታዊ የኮምፒተር ጨዋታዎችን እንዴት እንደሚጽፉ ያስተምራል። የመጀመሪያውን ጨዋታዎን ለማዳበር ስለ Python እና አጠቃላይ የፕሮግራም ፅንሰ -ሀሳቦች መሠረታዊ ግንዛቤ ያስፈልግዎታል።

ደረጃዎች

የ 3 ክፍል 1-በፅሁፍ ላይ የተመሠረተ ጨዋታ ማድረግ

5692759 1
5692759 1

ደረጃ 1. የፕሮግራም ቋንቋ ይምረጡ።

ሁሉም የፕሮግራም ቋንቋዎች የተለያዩ ናቸው ፣ ስለሆነም ጨዋታዎን ለመፃፍ የትኛውን እንደሚጠቀሙ መወሰን አለብዎት። እያንዳንዱ ዋና የፕሮግራም ቋንቋ የጽሑፍ ግብዓት ፣ የጽሑፍ ውፅዓት እና ግንባታዎች (ለቀላል ጽሑፍ-ተኮር ጨዋታ የሚያስፈልጉዎት ዋና ዋና ነገሮች) ይደግፋል ፣ ስለዚህ አማራጮቹን ያስሱ እና የትኛው ምቾት እንደሚሰማዎት እና ለትምህርት የወሰኑ እንደሆኑ ይወስኑ። ሊታሰብባቸው የሚገቡ አንዳንድ ምክንያቶች እዚህ አሉ

  • ቋንቋው በአብዛኛው ጥቅም ላይ የሚውለው ለምንድነው?

    እንደ ጃቫስክሪፕት ያሉ አንዳንድ የፕሮግራም ቋንቋዎች ለድር ጥቅም ላይ እንዲውሉ የተቀየሱ ሲሆን ሌሎቹ ደግሞ እንደ Python ፣ C ወይም C ++ ያሉ የኮምፒተር ፕሮግራሞችን ለማሄድ የተነደፉ ናቸው። ለጨዋታዎ ፣ እንደ Python ፣ C ፣ C ++ ፣ ወይም የመሳሰሉትን ሰፋ ያለ የአጠቃቀም ክልል ላለው ቋንቋ ይፈልጉ ጃቫስክሪፕት.

  • ለመማር ምን ያህል ከባድ ነው?

    ምንም እንኳን በማንኛውም መደበኛ የፕሮግራም ቋንቋ (አንዳንድ እንደ ማልቦልጌ ግራ የሚያጋባ ተብሎ የተነደፈ አይደለም) አንድ ፕሮግራም መፃፍ በቂ ቀላል መሆን አለበት ፣ አንዳንዶቹ ከሌሎቹ ይልቅ ለጀማሪዎች ተስማሚ ናቸው። ለምሳሌ ጃቫ እና ሲ ይበልጥ ተደራሽ እና ቀጥታ ወደ ፊት ባለው አገባብ ከሚታወቀው እንደ Python ከሚለው የበለጠ ጥልቅ የፕሮግራም ፅንሰ ሀሳቦችን እንዲረዱ ይጠይቅዎታል።

  • የት ልጠቀምበት እችላለሁ?

    ምናልባት እንደ ሊኑክስ ፣ ማክ ወይም ዊንዶውስ ባሉ በተለያዩ ስርዓቶች ላይ ያሉ ሰዎች ጨዋታዎን እንዲጫወቱ ይፈልጉ ይሆናል። ስለዚህ በዊንዶውስ ላይ ብቻ የሚደገፍ እንደ Visual Basic ባሉ በጥቂት ስርዓቶች ላይ ብቻ የሚደገፍ ቋንቋን መጠቀም የለብዎትም።

ይህ ጽሑፍ በጽሑፍ ላይ የተመሠረተ ጨዋታ ምሳሌዎችን Python ይጠቀማል ፣ ግን ፅንሰ-ሀሳቦቹ በሌላ በማንኛውም የፕሮግራም ቋንቋ እንዴት እንደሚከናወኑ ማየት ይችላሉ።

5692759 2
5692759 2

ደረጃ 2. ኮምፒተርዎን ያዘጋጁ።

የሚያስፈልጓቸው ሁለት ዋና ዋና ክፍሎች የጽሑፍ አርታዒ ፣ ኮድዎን የሚጽፉበት እና ወደ ጨዋታ ለመቀየር የሚጠቀሙበት አጠናቃሪ ናቸው። በዚህ ጽሑፍ ውስጥ ምሳሌውን መከተል ከፈለጉ Python ን መጫን እና ፕሮግራሞችን እንዴት እንደሚሠሩ መማር አለብዎት። ከፈለጉ ፣ ወደ አንድ ፕሮግራም አርትዖት ፣ ማጠናቀር እና ማረም የሚያዋህደው አይዲኢ (የተቀናጀ ዴስክቶፕ አካባቢ) ማቀናበር ይችላሉ። የ Python IDE IDLE ይባላል። ግን እርስዎ እንዲሁ እንደ ማስታወሻ ደብተር ለዊንዶውስ ፣ TextEdit ለ macOS ፣ ወይም ቪም ለሊኑክስ ያለ ግልፅ ጽሑፍን የሚደግፍ ማንኛውንም የጽሑፍ አርታኢ መጠቀም ይችላሉ።

5692759 3
5692759 3

ደረጃ 3. ለተጫዋቹ ሰላምታ ለመስጠት አንዳንድ ኮድ ይፃፉ።

ተጫዋቹ ምን እየሆነ እንዳለ እና ምን ማድረግ እንዳለባቸው ማወቅ ይፈልጋል ፣ ስለዚህ ለእነሱ የተወሰነ ጽሑፍ ማተም አለብዎት።

  • ይህ የሚከናወነው በፒቶን ውስጥ ባለው የህትመት () ተግባር ነው። እሱን ለመሞከር ከ.py ቅጥያው ጋር አዲስ ፋይል ይክፈቱ ፣ የሚከተለውን ኮድ ያስገቡ ፣ ያስቀምጡ እና ያሂዱ።

    ማተም ("ወደ የቁጥር ግምት ጨዋታ እንኳን በደህና መጡ!") ህትመት ("በ 1 እና በ 1000 መካከል ያለውን ሙሉ ቁጥር ያስገቡ")

5692759 4
5692759 4

ደረጃ 4. የዘፈቀደ ቁጥር ይፍጠሩ።

ተጫዋቹ ትክክለኛውን ቁጥር እንዲገምት የሚጠይቅ ጽሑፍ ላይ የተመሠረተ ጨዋታ እናድርግ። እኛ ማድረግ ያለብን የመጀመሪያው ነገር በጨዋታው መጀመሪያ ላይ የዘፈቀደ ቁጥር ማመንጨት ነው ስለዚህ ተጫዋቹ ሁል ጊዜ አንድ አይነት ቁጥር እንዳይገምተው ነው። በፕሮግራሙ ውስጥ ቁጥሩ ተመሳሳይ ሆኖ ስለሚቆይ ፣ የዘፈቀደ ቁጥሩን በተለዋዋጭ ውስጥ ማከማቸት ይፈልጋሉ።

  • ፓይዘን አብሮ የተሰራ የዘፈቀደ የቁጥር ተግባር የለውም ፣ ግን እሱ መደበኛ ቤተ-መጽሐፍት አለው (ይህ ማለት ተጠቃሚው ተጨማሪ ነገር መጫን የለበትም ማለት ነው)። ስለዚህ ወደ ኮድዎ መጀመሪያ (ከህትመት () ተግባራት በፊት) ይሂዱ እና የመስመር ማስመጫውን በዘፈቀደ ይተይቡ።
  • የዘፈቀደ ተግባርን ይጠቀሙ። እሱ ራንዲንት () ተብሎ ይጠራል ፣ እርስዎ ባስገቡት በዘፈቀደ ቤተ -መጽሐፍት ውስጥ ነው ፣ እና ቁጥሩ እንደ ክርክር ሊኖረው የሚችለውን አነስተኛውን እና ከፍተኛውን እሴት ይወስዳል። ስለዚህ ወደ ኮድዎ መጨረሻ ይመለሱ እና የሚከተለውን መስመር ያስገቡ

    rightNum = random.randint (0, 1000)

5692759 5
5692759 5

ደረጃ 5. ግብይቱን ከአጫዋቹ ያግኙ።

በጨዋታ ውስጥ ተጫዋቹ አንድ ነገር ማድረግ ወይም ከአንድ ነገር ጋር መገናኘት ይፈልጋል። በጽሑፍ ላይ የተመሠረተ ጨዋታ ውስጥ ይህ ጽሑፍ በመግባት ይቻላል። አሁን የዘፈቀደ ቁጥር ስላለን ቀጣዩ የኮድ መስመሮቻችን ተጫዋቹ ምርጥ ግምታቸውን እንዲያስገባ መጠየቅ አለባቸው።

  • ያስገቡት ኮድ ቁጥርን ወደ ተጫዋቹ ለማስገባት መመሪያውን ስለሚያተም ፣ እነሱ ያስገቡትን ቁጥርም ማንበብ አለበት። ይህ የሚከናወነው በግብዓት () በ Python 3 ፣ እና ጥሬ_ኢንዴት () በ Python 2. ፓይዘን 2 በቅርቡ ጊዜ ያለፈበት ስለሚሆን በ Python 3 ውስጥ መጻፍ አለብዎት። የተጫዋቹን ግብዓት በተለወጠ ቁጥር ውስጥ ለማከማቸት የሚከተለውን መስመር ወደ ኮድዎ ያክሉ።

    userNum = ግብዓት ()

5692759 6
5692759 6

ደረጃ 6. የተጫዋቹን ግብዓት ወደ ጥቅም ላይ የሚውል የውሂብ ዓይነት ይለውጡት።

ተጫዋቹ ቁጥር አስገብቷል-አሁን ምን?

  • የተጫዋቹን ግብዓት ቁጥር ያድርጉት። አሁን ፣ እነሱ አንድ ቁጥር ስለገቡ ይህ ግራ የሚያጋባ ሊመስል ይችላል። ግን ጥሩ ምክንያት አለ - Python በፕሮግራም ውስጥ እንደሚጠራው ሁሉም ግቤት ጽሑፍ ወይም “ሕብረቁምፊ” ነው ብሎ ያስባል። ይህ ጽሑፍ ሊያገኙት የሚፈልጉትን ቁጥር ይ containsል። ፓይዘን አንድ ቁጥር ብቻ የያዘውን ሕብረቁምፊ ወደ ውስጠኛው ቁጥር የሚቀይር ተግባር አለው። ዓይነት

    userNum = int (userNum)

5692759 7
5692759 7

ደረጃ 7. የተጫዋቹን ቁጥር ከትክክለኛው ቁጥር ጋር ያወዳድሩ።

ተጫዋቹ አንዴ ቁጥራቸውን ካስገቡ ፣ በዘፈቀደ ከተፈጠረው ጋር ማወዳደር ያስፈልግዎታል። ቁጥሮቹ ተመሳሳይ ካልሆኑ የእርስዎ ጨዋታ ተጫዋቹ ሌላ ቁጥር እንዲሞክር ሊያደርግ ይችላል። ቁጥሮቹ የሚዛመዱ ከሆነ ፣ በትክክል ለገመቱት ተጫዋች መንገር እና ፕሮግራሙን መተው ይችላሉ። ይህ የሚከናወነው በሚከተለው ኮድ ነው

userNum እያለ! = rightNum: userNum = int (ግቤት ())

5692759 8
5692759 8

ደረጃ 8. ለተጫዋቹ ግብረመልስ ይስጡ።

እርስዎ አስቀድመው የእነሱን ግብዓት ሲያካሂዱ ፣ ተጫዋቹ ይህንን አያይም። ምን እየሆነ እንዳለ እንዲረዱ ውጤቱን በእውነቱ ለተጫዋቹ ማተም ያስፈልግዎታል።

  • በእርግጥ ቁጥራቸው ትክክል ወይም ስህተት መሆኑን ለተጫዋቹ መንገር ይችላሉ። ግን በዚህ አቀራረብ ተጫዋቹ በጣም በከፋ ሁኔታ 1000 ጊዜ መገመት ሊኖርበት ይችላል ፣ ይህም በጣም አሰልቺ ይሆናል።
  • ስለዚህ ቁጥራቸው በጣም ትንሽ ወይም በጣም ትልቅ መሆኑን ለተጫዋቹ ይንገሩት። ይህ የእነሱን ግምቶች ብዛት በእጅጉ ይቀንሳል። ለምሳሌ ፣ ተጫዋቹ መጀመሪያ 500 ገምቶ ፣ እና ጨዋታው “በጣም ትልቅ ነው። እንደገና ይሞክሩ” የሚል መልስ ከሰጠ ፣ ከ 1000 ይልቅ 500 ሊሆኑ የሚችሉ ቁጥሮች ብቻ ይኖራሉ። ይህ የሚከናወነው በ-ግንባታዎች ከሆነ ፣ ስለዚህ ህትመቱን ይተኩ (“ስህተት። እንደገና ይሞክሩ።”) ከአንድ ጋር።
  • ሁለት ቁጥሮች ተመሳሳይ መሆናቸውን ማረጋገጥ በ == እንጂ በ = አለመደረጉን ልብ ይበሉ። = ለሱ ተለዋዋጭ ግራ እሴቱ የቀኝ እሴቱን ይመድባል!
  • userNum <rightNum: print ("በጣም ትንሽ። እንደገና ይሞክሩ") userNum> rightNum: print ("በጣም ትልቅ። እንደገና ይሞክሩ")

5692759 9
5692759 9

ደረጃ 9. ኮድዎን ይፈትሹ።

እንደ ፕሮግራም አውጪ ፣ ኮድዎ እንደተጠናቀቀ ከማሰብዎ በፊት እንደሚሰራ እርግጠኛ መሆን አለብዎት።

  • በፓይዘን ውስጥ በሚዘጋጁበት ጊዜ ፣ አመላካቾቹ ትክክለኛ መሆናቸውን ማረጋገጥዎን ያረጋግጡ። የእርስዎ ኮድ እንደዚህ መሆን አለበት

    የዘፈቀደ ህትመት ያስመጡ ("ወደ የቁጥር ግምት ጨዋታ እንኳን ደህና መጡ!") ህትመት ("በ 1 እና በ 1000 መካከል ያለውን ሙሉ ቁጥር ያስገቡ") rightNum = random.randint (0, 1000) userNum = input () userNum = int (userNum) userNum! በትክክል።”)

5692759 10
5692759 10

ደረጃ 10. ግቤቱን ያረጋግጡ።

ተጫዋቹ በቀላሉ የተሳሳተ ነገር በመግባት ጨዋታዎን መስበር መቻል የለበትም። “ግቤቱን ማረጋገጥ” ማለት ተጫዋቹ ከማስተናገዱ በፊት ትክክለኛውን ነገር መግባቱን ማረጋገጥ ነው።

  • ጨዋታውን እንደገና ይክፈቱ እና ቁጥር ያልሆነ ማንኛውንም ነገር ለማስገባት ይሞክሩ። ጨዋታው በ ValueError ይወጣል። ይህንን ለማስቀረት ግብዓቱ ቁጥር ስለመሆኑ የሚፈትሹበትን መንገድ መተግበር ይችላሉ።
  • አንድ ተግባር ይግለጹ። ግቤቱን ማረጋገጥ በጣም ረጅም ስለሆነ እና ብዙ ጊዜ ማድረግ ስለሚኖርብዎት አንድ ተግባር መግለፅ አለብዎት። ምንም ክርክር አይወስድም እና ቁጥር ይመልሳል። በመጀመሪያ ፣ def numInput () ን ይፃፉ - በኮድዎ አናት ላይ ፣ በቀጥታ ከውጭ በማስመጣት ስር።
  • የተጫዋቹን ግብዓት አንዴ ያግኙ። የግቤት () ተግባሩን ይጠቀሙ እና ውጤቱን ለተለዋዋጭ ግቤት ይመድቡ።
  • የተጫዋቹ ግብዓት ቁጥር ካልሆነ ቁጥር እንዲያስገቡ ይጠይቋቸው። ሕብረቁምፊ ቁጥር መሆኑን ለመፈተሽ ፣ ሙሉውን ቁጥር ብቻ የሚፈቅድውን የ isdigit () ተግባሮችን ይጠቀሙ ፣ ስለዚህ ያንን ለብቻው መፈተሽ የለብዎትም።
  • ግብዓቱ ቁጥር ከሆነ ፣ ከሕብረቁምፊ ወደ ቁጥር ይለውጡት እና ውጤቱን ይመልሱ። ሕብረቁምፊውን ወደ ኢንቲጀር ለመለወጥ የ int () ተግባርን ይጠቀሙ። ይህ በዋናው ኮድ ውስጥ ያለውን መለወጥ አላስፈላጊ ያደርገዋል ፣ እና ከዚያ ሊያስወግዱት ይገባል።
  • በዋናው ኮድ ውስጥ ሁሉንም ጥሪዎች ወደ ግብዓት () ወደ numInput () ጥሪዎች ይተኩ።
  • የ numInput () ተግባር ኮድ እንደዚህ ይመስላል
  • def numInput (): inp = input () inp.isdigit (): አትም ("አንድ ሙሉ ቁጥር አስገቡ ተባሉ! ሙሉ ቁጥር ያስገቡ") inp = input () int int (inp)

5692759 11
5692759 11

ደረጃ 11. ጨዋታውን እንደገና ይፈትሹ።

የሚሆነውን ለማየት ሆን ብለው የተሳሳቱ ነገሮችን ያስገቡ ፣ እና ሲመጡ ማንኛውንም ስህተቶች ያስተካክሉ።

ፕሮግራሙ አንድ ቁጥር ሲጠይቅዎት የተወሰነ ጽሑፍ ለማስገባት ይሞክሩ። አሁን ፣ በስህተት መልእክት ከመውጣት ይልቅ ፕሮግራሙ እንደገና ቁጥር ይጠይቅዎታል።

5692759 12
5692759 12

ደረጃ 12. ጨዋታው ሲጠናቀቅ እንደገና እንዲጀመር ሀሳብ ይስጡ።

በዚህ መንገድ ተጫዋቹ ያለማቋረጥ እንደገና ማስጀመር ሳያስፈልግዎት ጨዋታዎን ረዘም ላለ ጊዜ መጫወት ይችላል።

  • ከውጪ ማስመጣት እና ከተግባሩ ትርጓሜ በስተቀር ሁሉንም ኮዶች ወደ ጊዜያዊ-ዙር ያስገቡ። እንደ ሁኔታው እውነት ያዘጋጁ - ይህ ሁል ጊዜ እውነት ይሆናል ፣ ስለዚህ ምልልሱ ለዘላለም ይቀጥላል።
  • ቁጥሩን በትክክል ከገመቱ በኋላ እንደገና መጫወት ይፈልጉ እንደሆነ ተጫዋቹን ይጠይቁ። የህትመት () ተግባርን ይጠቀሙ።
  • እነሱ “አይ” ብለው ከመለሱ ፣ ከእይታ ይውጡ። ሌላ መልስ ከሰጡ ይቀጥሉ። ከሉፕ ማላቀቅ በእረፍቱ መግለጫ ይከናወናል።
  • “ወደ የቁጥር ግምት ጨዋታ እንኳን በደህና መጡ” ከሚለው ዑደት ውጭ ይውሰዱ። ተጫዋቹ ጨዋታውን በተጫወቱ ቁጥር እንኳን ደህና መጡ አይፈልግም። የመማሪያ ህትመቱን ያንቀሳቅሱ (“ወደ የቁጥር ግምት ጨዋታ እንኳን በደህና መጡ!”) እውነት ከሆነ ፣ ስለዚህ ተጠቃሚው የመጀመሪያውን ጨዋታ ሲጀምር አንድ ጊዜ ብቻ ይታተማል።
5692759 13
5692759 13

ደረጃ 13. ጨዋታውን ይፈትሹ።

አዲስ ባህሪን በተገበሩ ቁጥር ጨዋታዎን መሞከር ያስፈልግዎታል።

  • ሁለቱም አማራጮች መስራታቸውን ለማረጋገጥ ቢያንስ አንድ ጊዜ “አዎ” እና “አይ” የሚለውን መልስ መስጠትዎን ያረጋግጡ። የእርስዎ ኮድ ምን መምሰል እንዳለበት እነሆ -

    inp.isdigit (): inp.isdigit () ባይሆንም የዘፈቀደ def numInput (): inp = input () ጠቅላላ ቁጥር ያስገቡ (ሙሉ ቁጥር ያስገቡ!)) inp = input () int (inp) print ("ወደ የመገመት ቁጥር ጨዋታ እንኳን በደህና መጡ!") እውነት ሆኖ ሳለ - ማተም ("በ 1 እና 1000 መካከል ያለውን ሙሉ ቁጥር ያስገቡ") rightNum = random.randint (0, 1000) userNum = numInput () userNum! = RightNum: if userNum <rightNum: print ("በጣም ትንሽ። እንደገና ይሞክሩ") userNum> rightNum: print ("በጣም ትልቅ። እንደገና ይሞክሩ") userNum = numInput () ህትመት ("በትክክል ገምተዋል") ህትመት (" እንደገና መጫወት ይፈልጋሉ? ለማቆም አይ ያስገቡ። ") ግቤት ከሆነ () ==" አይ ": እረፍት

5692759 14
5692759 14

ደረጃ 14. ሌሎች በጽሑፍ ላይ የተመሠረቱ ጨዋታዎችን ይጻፉ።

ቀጥሎ የጽሑፍ ጀብዱ ለመጻፍ እንዴት? ወይስ የፈተና ጥያቄ ጨዋታ? ፈጠራ ይሁኑ።

ጠቃሚ ምክር: አንድ ነገር እንዴት እንደተከናወነ ወይም አንድ ተግባር እንዴት እንደሚሠራ እርግጠኛ ካልሆኑ በሰነዶቹ ውስጥ መመልከት አንዳንድ ጊዜ ጠቃሚ ነው። የ Python 3 ሰነድ በ https://docs.python.org/3/ ላይ ይገኛል። አንዳንድ ጊዜ በበይነመረብ ላይ ማድረግ የሚፈልጉትን ሁሉ መፈለግ እንዲሁ ጥሩ ውጤቶችን ይመልሳል።

የ 2 ክፍል 3 - ጨዋታ በ 2 ዲ ግራፊክስ

5692759 15
5692759 15

ደረጃ 1. የግራፊክስ ቤተ -መጽሐፍት ይምረጡ።

ግራፊክስ መስራት በጣም የተወሳሰበ ነው ፣ እና አብዛኛዎቹ የፕሮግራም ቋንቋዎች (ፓይዘን ፣ ሲ ++ ፣ ሲ ፣ ጃቫስክሪፕትን ጨምሮ) በዋናው ወይም በመደበኛ ቤተ -መጽሐፍት ውስጥ ላሉ ግራፊክስ ድጋፍን ብቻ ይሰጣሉ። ስለዚህ ግራፊክስን ለመሥራት ፣ ለምሳሌ ፒጋሜ ለፓይቶን (ውጫዊ) ቤተ -መጽሐፍትን መጠቀም ይኖርብዎታል።

በግራፊክስ ቤተ -መጽሐፍት እንኳን ፣ ምናሌን እንዴት እንደሚያሳዩ ፣ ተጫዋቹ ጠቅ ያደረገውን እንዴት እንደሚፈትሹ ፣ ሰቆች እንዴት እንደሚታዩ ፣ ወዘተ የመሳሰሉትን መጨነቅ ይኖርብዎታል። ትክክለኛውን ጨዋታ በማዳበር ላይ ማተኮር ከፈለጉ ፣ እነዚህን ነገሮች በቀላሉ የሚያስፈጽም እንደ አንድነት የመሰለ የጨዋታ ሞተር ቤተ -መጽሐፍት መጠቀም ይችላሉ።

ይህ ጽሑፍ ቀለል ያለ የ 2 ዲ የመሣሪያ ስርዓት እንዴት እንደሚሠራ ለማሳየት ፓይዘን ከኮኮኮ 2 ዲ ጋር ይጠቀማል። አንዳንድ የተጠቀሱት ጽንሰ -ሐሳቦች በሌሎች የጨዋታ ሞተሮች ውስጥ ላይኖሩ ይችላሉ። ለተጨማሪ መረጃ ሰነዶቻቸውን ይመልከቱ።

5692759 16
5692759 16

ደረጃ 2. እርስዎ የመረጧቸውን የግራፊክስ ቤተ -መጽሐፍት ይጫኑ።

Cocos2D ለ Python ለመጫን ቀላል ነው። ከ https://python.cocos2d.org/index.html ወይም ሊኑክስን የሚጠቀሙ ከሆነ sudo pip3 ን 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. ይህ የሚከናወነው ከንዑስ ሞዱል ስም ማስመጣት *ነው ፣ ንዑስ ሞዱል ስም እርስዎ ሊያስገቡት የሚፈልጉት ንዑስ ሞዱል ነው። ከ… ማስመጣት * እና ከውጭ ማስመጣት መካከል ያለው ልዩነት የሞጁሉን ስም ከዚህ ሞጁል በሚጠቀሙት ነገር ሁሉ ከቀድሞው ጋር ማስቀመጥ የለብዎትም።
  • የ ColorLayer ንዑስ ክፍል MainMenuBgr ን ይግለጹ። ይህ ማለት እርስዎ የሚፈጥሩት ማንኛውም ዋና ምናሌ ዳራ እርስዎ ካደረጓቸው አንዳንድ ለውጦች ጋር እንደ ቀለም ንብርብር ይሆናሉ ማለት ነው።
  • የኮኮስ ዳይሬክተሩን ይጀምሩ። ይህ አዲስ መስኮት ይሰጥዎታል። መግለጫ ጽሑፍ ካላዘጋጁ ፣ መስኮቱ እንደ ፋይል ስም (main.py) ተመሳሳይ መግለጫ ጽሑፍ ይኖረዋል ፣ እሱም ሙያዊ አይመስልም። እንደገና ወደ እውነት ለመለወጥ በማቀናበር መስኮቱ መጠኑ እንዲቀየር ይፍቀዱ።
  • የተግባር ትርዒት MainMenu ን ይግለጹ። ዋናውን ምናሌ ወደ ተግባር ለማሳየት ኮዱን ማስገባት አለብዎት ምክንያቱም ይህ ተግባሩን እንደገና በመደወል በቀላሉ ወደ ዋናው ምናሌ እንዲመለሱ ያስችልዎታል።
  • ትዕይንት ይፍጠሩ። ትዕይንት እርስዎ አሁን የገለፁት የ MainMenuBgr ክፍል ነገር የሆነውን አንድ ንብርብርን ያቀፈ ነው።
  • ይህንን ትዕይንት በመስኮቱ ውስጥ ያሂዱ።
  • ከኮኮስ.ዳይሬክተር ማስመጣት * ከኮኮስ.ሲሲን ማስመጣት * ከኮኮ.ላየር ማስመጣት * ክፍል MainMenuBgr (ColorLayer): def _init _ (self): super (MainMenu, self)._ init _ (0, 200, 255, 255) def showMainMenu (): menuSc = ትዕይንት (MainMenuBgr ()) director.run (menuSc) director.init (መግለጫ ፅሁፍ = "IcyPlat - ቀላል የመድረክ" ፣ ዳግም ሊለወጥ የሚችል = እውነተኛ) ትርኢትMainMenu ()

5692759 20
5692759 20

ደረጃ 6. በመስኮቱ ላይ አንድ ዋና ምናሌ ያክሉ።

ከእውነተኛው ጨዋታ በተጨማሪ ተጫዋቹ መስኮቱን ለመዝጋት የሚጠቀምበትን ምናሌ ማከል ያስፈልግዎታል ፣ በኋላ ላይ ሊያክሏቸው ከሚችሏቸው ሌሎች አካላት መካከል።

  • Cocos.menu (ከትምህርቱ እንደገና) እና pyglet.app (በዚህ ጊዜ ከውጭ በማስመጣት) ያስመጡ።
  • MainMenu ን እንደ ምናሌ ንዑስ ክፍል ይግለጹ።
  • የዋናውን ምናሌ አሰላለፍ ያዘጋጁ። ቀጥ ያለ እና አግድም አሰላለፍ በተናጠል ማዘጋጀት አለብዎት።
  • የምናሌ ንጥሎች ዝርዝር ይፍጠሩ እና ወደ ምናሌው ያክሏቸው። የምናሌ ንጥሎች “ጨዋታ ጀምር” እና “አቁም” ቢያንስ ሊኖርዎት ይገባል። እያንዳንዱ የምናሌ ንጥል በቅንፍ ውስጥ መቀመጥ አለበት። እያንዳንዱ ንጥል ተጫዋቹ ጠቅ ሲያደርግ ምን እንደሚሆን የሚወስን መለያ እና የመደወያ ተግባር ሊኖረው ይገባል። ለ “ጀምር ጨዋታ” ንጥል ፣ የ StartGame ተግባሩን ይጠቀሙ (በቅርቡ ይጽፉታል) ፣ ለ “ተወው” ንጥል ፣ “pyglet.app.exit” (ቀድሞውኑ አለ) ይጠቀሙ። ራስን.create_menu (menuItems) በመደወል ትክክለኛውን ምናሌ ይፍጠሩ።
  • የመነሻ ጨዋታን () ይግለጹ። ለአሁኑ ወደ ፍቺው ይግቡ ፣ ትክክለኛውን ጨዋታ ሲጽፉ ያንን ይተካሉ።
  • የምናሌ ኤስሲ ትዕይንት ወደፈጠሩበት በኮድዎ ውስጥ ወዳለው ቦታ ይሂዱ እና የ MainMenu ነገር ይጨምሩበት።
  • የእርስዎ አጠቃላይ ኮድ አሁን እንደሚከተለው መታየት አለበት

    ከ cocos.director ማስመጣት * ከኮኮ.መንቱ ማስመጣት * ከኮኮስ.ሲሲን ማስመጣት * ከኮኮስ.layer ማስመጣት * አስመጪ pyglet.app ክፍል MainMenuBgr (ColorLayer): def _init _ (ራስን): ሱፐር (MainMenuBgr, self)._ init _ (0 ፣ 200 ፣ 255 ፣ 255) ክፍል MainMenu (ምናሌ): def _init _ (ራስን): ሱፐር (MainMenu ፣ ራስን) "፣ startGame)) ፣ (MenuItem (" ተወው "፣ pyglet.app.exit))] self.create_menu (menuItems) def startGame (): pass def showMainMenu (): menuSc = ትዕይንት (MainMenuBgr ()) menuSc.add (MainMenu ()) director.run (menuSc) director.init (መግለጫ ጽሑፍ = "IcyPlat - ቀላል የመሣሪያ ስርዓት" ፣ እንደገና ሊስተካከል የሚችል = እውነት) ትርኢን ማይን ሚኑን ()

5692759 21
5692759 21

ደረጃ 7. ኮድዎን ይፈትሹ።

አሁንም አጭር እና በአንጻራዊነት ቀላል ሆኖ ኮዱን ቀደም ብለው ይፈትኑት። ከዚያ ነገሮች በጣም የተወሳሰቡ ከመሆናቸው በፊት በመሠረታዊ መዋቅር ውስጥ ማንኛውንም ስህተቶች መለየት እና ማረም ይችላሉ።

ከመመሪያዎቹ ውስጥ ያለው ኮድ “IcyPlat - ቀላል የመሣሪያ ስርዓት” የሚል ጽሑፍ ያለው መስኮት መክፈት አለበት። ጀርባው ሰማያዊ ነው እና መስኮቱን መጠኑን መለወጥ ይችላሉ። በምናሌው ላይ “ጨዋታ ጀምር” ን ጠቅ ሲያደርጉ ምንም ነገር መከሰት የለበትም (ገና)። «ተወው» ን ጠቅ ሲያደርጉ መስኮቱ ይዘጋል።

5692759 22
5692759 22

ደረጃ 8. ስፕሪት ይፍጠሩ።

ስፕሪት “የጨዋታ ነገር” ወይም ባለ 2-ልኬት ምስል ነው። ስፕሪቶች በጨዋታ ውስጥ ያሉ ነገሮች ፣ አዶዎች ፣ የበስተጀርባ ማስጌጫዎች ፣ ገጸ-ባህሪዎች እና በጨዋታው ውስጥ ከምስል ጋር የሚወክሉት ሌላ ማንኛውም ነገር ሊሆኑ ይችላሉ። ተጫዋቹ ሊገናኝበት ለሚችል ገጸ -ባህሪ ስፕራይትን በመፍጠር እንጀምራለን።

  • ከውጪ-አገላለጽ ጋር cocos.sprite ንዑስ ሞዱሉን ያስመጡ።
  • ስፕሪቱን የሚወክል ምስል ያግኙ። ለእሱ ስዕል ከሌለዎት ስፕሬትን ማሳየት አይችሉም። አንዱን መሳል ይችላሉ ፣ ወይም ከበይነመረቡ ሊያገኙት ይችላሉ (ምንም እንኳን ጨዋታዎን ለማተም ካሰቡ ፈቃዶቹን ይመልከቱ)። ለዚህ ምሳሌ ፣ ወደ https://opengameart.org/content/tux-classic-hero-style ይሂዱ እና ፔንግዊኖችን የማስኬድ የ-p.webp" />
  • የ ScrollableLayer ክፍል እንደ አዲስ ነገር አንድ ንብርብር ይፍጠሩ። ከዚያ ፣ ስፓይተሩን እንደ ስፕሪት ነገር ይፍጠሩ እና ቦታውን ወደ (8 ፣ 250) ያዘጋጁ። ለማጣቀሻ ነጥቡ (0 ፣ 0) በታችኛው ግራ ጥግ ላይ ነው። ይህ በጣም ከፍ ያለ ነው ፣ ግን ፔንግዊን በበረዶ ውስጥ እንዳይጣበቅ ያረጋግጣል።
  • ስፕራይቱን ወደ ስፕሬቲንግ ንብርብር ያክሉ።
  • ከስፕሬቱ ንብርብር አዲስ ትዕይንት ይፍጠሩ እና ያሂዱ።
  • def startGame (): figLayer = ScrollableLayer () fig = Sprite ('pingu.png') fig.position = (75, 100) figLayer.add (fig) # gameSc = ትዕይንት (figLayer) director.run (gameSc)

  • ኮዱን ያሂዱ። ጠቅ ካደረጉ በኋላ በጥቁር ዳራ ላይ ትንሽ የፔንግዊን አኃዝ (ወይም ማንኛውንም የሳሉ) ማየት አለብዎት ጨዋታ ጀምር.
5692759 23
5692759 23

ደረጃ 9. የመሬት ገጽታዎን ሕልም ያዩ።

በአብዛኛዎቹ ጨዋታዎች ውስጥ የእርስዎ ስፔሪዎች ባዶነት ውስጥ ብቻ መንሳፈፍ የለባቸውም። እነሱ በአካባቢያቸው የሆነ ነገር ይዘው በተወሰነ ወለል ላይ መቆም አለባቸው። በ 2 ዲ ጨዋታዎች ውስጥ ይህ ብዙውን ጊዜ በሰድር ስብስብ እና በሰድር ካርታ ይከናወናል። የሰድር ስብስብ በመሠረቱ ምን ዓይነት የወለል ካሬዎች እና የጀርባ ካሬዎች እንደሚኖሩ እና ምን እንደሚመስሉ ይናገራል።

  • የሰድር ስብስብ ይፍጠሩ።ለዚህ ጨዋታ የሰድር ስብስብ በጣም መሠረታዊ ይሆናል -አንድ ንጣፍ ለበረዶ እና አንድ ንጣፍ ለሰማይ። በዚህ ምሳሌ ውስጥ ጥቅም ላይ የዋለው የበረዶ ንጣፍ ከዚህ ነው ፣ በ CC-BY-SA 3.0 ስር።
  • የሰድር ስብስብ ስዕል ይፍጠሩ። ያ የሁሉም ሰቆች ስዕል ነው ፣ ሁሉም ተመሳሳይ መጠን ያላቸው (ከሌሉ ያርትዑዋቸው) እና በጨዋታው ውስጥ ማየት የሚፈልጉትን መጠን ፣ እርስ በእርስ አጠገብ። ስዕልዎን እንደ icyTiles-p.webp" />
  • የሰድር ስብስብ መግለጫን ይፍጠሩ። ያ የኤክስኤምኤል ፋይል ነው። የኤክስኤምኤል ፋይል በሰድር ስብስብ ስዕል ውስጥ ያሉት ሰቆች ምን ያህል ትልቅ እንደሆኑ ፣ የትኛው ስዕል እንደሚጠቀም እና የትኛውን ሰድር እዚያ እንደሚገኝ መረጃ ይ containsል። ከዚህ በታች ባለው ኮድ icyTiles.xml የሚባል የኤክስኤምኤል ፋይል ይፍጠሩ

         
    
5692759 24
5692759 24

ደረጃ 10. ለመሬት ገጽታዎ የሰድር ካርታ ያዘጋጁ።

የሰድር ካርታ በደረጃዎ ውስጥ በየትኛው ሰድር ላይ እንደሚገኝ የሚገልጽ ካርታ ነው። በምሳሌው ውስጥ የሰድር ካርታዎችን በእጅ መሥራት በጣም አድካሚ ስለሆነ የሰድር ካርታዎችን ለማመንጨት አንድ ተግባር መግለፅ አለብዎት። በጣም የላቀ ጨዋታ ብዙውን ጊዜ አንድ ዓይነት የደረጃ አርታኢ ይኖረዋል ፣ ግን ከ 2 ዲ የጨዋታ ልማት ጋር ለመተዋወቅ ስልተ ቀመር ጥሩ ደረጃዎችን ሊሰጥ ይችላል።

  • ምን ያህል ረድፎች እና ዓምዶች እንደሚያስፈልጉ ይወቁ። ለዚህም ፣ የማያ ገጹን መጠን በሰድር መጠን በሁለቱም በአግድም (ዓምዶች) እና በአቀባዊ (ረድፎች) ይከፋፍሉ። ቁጥሩን ወደ ላይ ያዙሩ; ለዚያ የሂሳብ ሞጁል ተግባር ያስፈልግዎታል ፣ ስለዚህ ከሂሳብ ማስመጣት ጣሪያ ወደ ኮዱዎ አናት ላይ ወደሚያስገቡት ያክሉ።
  • ለመፃፍ ፋይል ይክፈቱ። ይህ ሁሉንም የቀደመውን የፋይሉን ይዘት ያጠፋል ፣ ስለዚህ በማውጫው ውስጥ ምንም ፋይል የሌለውን ስም ይምረጡ ፣ ልክ እንደ levelMap.xml።
  • የመክፈቻ መለያዎችን በፋይሉ ውስጥ ይፃፉ።
  • በአልጎሪዝም መሠረት የሰድር ካርታ ይፍጠሩ። ከዚህ በታች ባለው ኮድ ውስጥ ያለውን ይጠቀሙ ወይም በራስዎ አንድ ይዘው መምጣት ይችላሉ። የዘፈቀደ ተግባርን ከሞዱሉ በዘፈቀደ ማስመጣትዎን ያረጋግጡ - ከዚህ በታች ያለው ኮድ እንዲሠራ ይፈለጋል ፣ እና ያመጣዎት ማንኛውም ነገር እንዲሁ የዘፈቀደ ኢንቲጀሮች ያስፈልጉ ይሆናል። እንዲሁም የሰማይ ንጣፎችን እና የበረዶ ንጣፎችን በተለያዩ ንብርብሮች ውስጥ ማስቀመጥዎን ያረጋግጡ -በረዶ ጠንካራ ነው ፣ ሰማይ አይደለም።
  • የመዝጊያ መለያዎችን ወደ ፋይሉ ይፃፉ እና ፋይሉን ይዝጉ።
  • def generatedTilemap (): colAmount = ceil (800/16) * 3 # (የማያ ስፋት / የሰድር መጠን) * 3 ረድፍAmount = ጣሪያ (600/16) # የማያ ቁመት / የሰድር መጠን tile w ") tileFile.write ('\ n / n / n') iceHeight = randint (1, 10) ለ እኔ በክልል (0, colAmount): tileFile.write ('') makeHole = randint (0, 50)) == 10 እና እኔ! = 0: # በስፔን ነጥብ makeHole = በክልል ውስጥ ለ j እውነት (0 ፣ rowAmount) እውነት ነው -makeHole ከሆነ tileFile.write ('\ n') ሌላ ፦ j <= iceHeight: tileFile.write ('\ n') ሌላ ፦ tileFile.write ('\ n') iceHeight = randint (iceHeight-5 ፣ iceHeight+5) በረዶ ከሆነ <0: # ሰቆች በጣም ዝቅተኛ በረዶ እንዳይሄዱ ይገድቡHeight = randint (1 ፣ 5) ከሆነ በረዶ ከፍታ> የረድፍ ከፍታ ፦ # ሰቆች በጣም ከፍተኛ በረዶ እንዳይሄዱ ይገድቡ ቁመት = ራንዲንት (int (rowAmount/2) -5 ፣ int (rowAmount/2) +5) tileFile.write ('\ n') tileFile.write ('\ n / n') ለ እኔ በክልል (0, colAmount): tileFile.write ('') ለ j ውስጥ በክልል (0, rowAmount): tileFile.write ('\ n') tileFile.write ('\ n ') tileFile.write (' / n / n ') tileFile.close ()

5692759 25
5692759 25

ደረጃ 11. የሰድር ካርታውን ያሳዩ።

ሁሉንም ከኮኮ.ቲሎች ያስመጡ እና ከዚያ ወደ መጀመሪያው የጨዋታ ተግባር ይሂዱ።

  • በጀምር ጨዋታ ተግባርዎ መጀመሪያ ላይ ለዚያ የገለፁትን ተግባር በመጠቀም የሰድር ካርታ ይፍጠሩ።
  • አዲስ የማሸብለል አስተዳዳሪ ይፍጠሩ። ስፓይተሩን ወደ ንብርብር በሚጨምሩበት መስመር ስር ይህንን በቀጥታ ያድርጉት።
  • ከተፈጠረው ደረጃMap.xml የሰድር ካርታ የእርስዎ የማመንጨት Tilemap ተግባር ከተፈጠረ የሚጫነው ሰድሮችን የያዘ አዲስ ንብርብር ይፍጠሩ።
  • በዚህ ቅደም ተከተል ውስጥ ጠንካራ ያልሆነውን ንብርብር ፣ ጠንካራውን ንብርብር እና የስፕሪት ንብርብርን ወደ ማሸብለል ሥራ አስኪያጅ ያክሉ። ከፈለጉ የ z- አቀማመጥ ማከል ይችላሉ።
  • ትዕይንቱን ከስፕራይተሩ ንብርብር ከመፍጠር ይልቅ ከማሸብለል ሥራ አስኪያጅ ይፍጠሩ።
  • የእርስዎ የጀምር ጨዋታ ተግባር አሁን እንደዚህ መሆን አለበት -

    def startGame (): generatedTilemap () # 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 = ትዕይንት (scrMang) director.run (gameSc)

5692759 26
5692759 26

ደረጃ 12. ኮድዎን ይፈትሹ።

እርስዎ ያስገቧቸው አዲስ ባህሪዎች በትክክል መሥራታቸውን ለማረጋገጥ ኮድዎን ብዙ ጊዜ መሞከር አለብዎት።

በምሳሌው ውስጥ ያለው ኮድ አሁን ከፔንግዊን በስተጀርባ አንዳንድ የበረዶ አከባቢን ማሳየት አለበት። ፔንግዊን በበረዶው ላይ በጣም የሚያንዣብብ መስሎ ከታየ ምንም ስህተት አልሠራህም ፣ እና በሚቀጥለው ደረጃ ይስተካከላል።

5692759 27
5692759 27

ደረጃ 13. መቆጣጠሪያዎቹን ያክሉ።

ተጫዋቹ ከጽሑፍ-ተኮር ጨዋታ ይልቅ በ 2 ዲ ጨዋታ ውስጥ ከፕሮግራሙ ጋር የሚገናኙባቸው ብዙ መንገዶች አሉት። አንድ የተለመደው ትክክለኛው ቁልፍ ሲጫን ቁጥራቸውን ማንቀሳቀስን ያካትታል።

  • ሁሉንም ከኮኮስ.ማፖሊላይደሮች እና ከኮኮኮስ ድርጊቶች ያስመጡ። እንዲሁም ከ pyglet.window ቁልፍን ያስመጡ።
  • አንዳንድ ዓለም አቀፍ ተለዋዋጮችን “ያውጁ”። ዓለም አቀፍ ተለዋዋጮች በተግባሮች መካከል ይጋራሉ። በ Python ውስጥ ተለዋዋጮችን በእውነቱ ማወጅ አይችሉም ፣ ግን ከመጠቀምዎ በፊት ዓለም አቀፍ ተለዋዋጭ በዋናው ኮድ ውስጥ አለ ማለት አለብዎት። አንድ ተግባር ትክክለኛውን እሴት በኋላ ለመመደብ ስለሚንከባከብ 0 እንደ እሴቱ ሊመድቡት ይችላሉ። ስለዚህ በማስመጣት መግለጫዎች ስር ያክሉ-

    # “ማወጅ” ዓለም አቀፍ ተለዋዋጮች ቁልፍ ሰሌዳ = 0 scrMang = 0

  • የመነሻ ጨዋታ ተግባርዎን ያስተካክሉ ፦

    • ዓለም አቀፍ ተለዋዋጮች ቁልፍ ሰሌዳውን እና scrMang ን ይጠቀማሉ ብለው ይናገሩ። በተግባሩ አናት ላይ scrMang ን ዓለም አቀፍ ቁልፍ ሰሌዳ በመፃፍ ይህንን ያድርጉ።
    • የቁልፍ ሰሌዳ ክስተቶችን መስኮቱን እንዲያዳምጥ ያድርጉ።
    • በ PlatformerController ላይ በመመስረት አሃዙ እንዲሰራ ይንገሩት። ያንን PlatformerController በቅርቡ ተግባራዊ ያደርጋሉ።
    • በጠንካራ ሰቆች እና በስዕሉ መካከል ግጭቶችን ለማስተናገድ የካርታ ግጭት ይፍጠሩ።

    def startGame (): ዓለም አቀፍ ቁልፍ ሰሌዳ ፣ scrMang generatedTilemap () # fig = Sprite ('pingu.png') fig.position = (8, 250) figLayer = ScrollableLayer () figLayer.add (fig) # tileLayer = load ('levelMap.xml ') solidTiles = tileLayer [' solid '] nsoliTiles = tileLayer [' not_solid '] # keyboard = key. KeyStateHandler () director.window.push_handlers (ቁልፍ ሰሌዳ) # fig.do (PlatformerController ()) mapcollider = RectMapCollider_ (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 = ትዕይንት (scrMang) director.run (gameSc)

  • የመድረክ መቆጣጠሪያን ይፍጠሩ። በቁልፍ መጫኛዎችዎ መሠረት አኃዙን የሚያንቀሳቅሰው ይህ ነው።

    • የመድረክ መቆጣጠሪያውን እንደ የድርጊት ንዑስ ክፍል ይግለጹ።
    • የእንቅስቃሴውን ፍጥነት ፣ የመዝለል ፍጥነት እና የስበት ኃይልን ይግለጹ።
    • የመነሻውን ተግባር ይግለጹ። የመሣሪያ ስርዓቱ ተቆጣጣሪ ከስዕሉ ጋር ሲገናኝ ይህ ተግባር አንድ ጊዜ ይባላል። ፍጥነቱን በ x እና በ y አቅጣጫ ወደ 0 ማዘጋጀት አለበት።
    • የእርምጃውን ተግባር ይግለጹ። ትዕይንት እየሮጠ እያለ ይደገማል።
    • ዓለም አቀፍ ተለዋዋጮች ቁልፍ ሰሌዳውን እና scrMang ን ለመጠቀም የእርምጃውን ተግባር ይንገሩ።
    • ፍጥነቱን ያግኙ እና ይለውጡ። በተለየ ተለዋዋጮች ውስጥ የ x እና y ፍጥነትን ያስቀምጡ። የ x ፍጥነቱን ወደ 1 ወይም -1 (የግራ ወይም የቀኝ ቁልፍ ተጭኖ እንደሆነ) በእንቅስቃሴ ፍጥነት ተባዝቷል። በ y ፍጥነት ላይ የስበት ኃይልን ይጨምሩ። በዝቅተኛ መሣሪያዎች ላይ በተመሳሳይ መንገድ እንዲሠራ በማቆሚያ ጊዜ ያባዙት። የቦታው ቁልፍ ተጭኖ እና አኃዙ መሬት ላይ ቆሞ ከሆነ ፣ y ፍጥነትን ወደ መዝለል ፍጥነት በመለወጥ ይዝለሉ።
    • ስዕሉ ወደሚንቀሳቀስበት ቦታ ያሰሉ። ከዚያ የግጭቱ ተቆጣጣሪ በጠንካራ ሰድር ውስጥ ከሆነ ያንን ቦታ ያስተካክለው። በመጨረሻም ስዕሉን ወደ አዲሱ የተስተካከለ ቦታ ያንቀሳቅሱት።
    • በስዕሉ ላይ የማሸብለል ሥራ አስኪያጁን ትኩረት ያዘጋጁ። ይህ አኃዙ በሚንቀሳቀስበት ጊዜ ካሜራው ምክንያታዊ በሆነ መንገድ እንዲንቀሳቀስ ያደርገዋል።

    ክፍል PlatformerController (Action): ዓለም አቀፍ ቁልፍ ሰሌዳ ፣ scrMang on_ground = True MOVE_SPEED = 300 JUMP_SPEED = 500 GRAVITY = -1200 def start (self): self.target.velocity = (0, 0) def step (self, dt): global keyboard, scroller ከሆነ dt> 0.1: # ወደ ትልቅ መመለሻ vx ፣ vy = self.target.velocity vx = (የቁልፍ ሰሌዳ [ቁልፍ. RIGHT] - ቁልፍ ሰሌዳ [ቁልፍ ።LEFT]) * ራስን ።MOVE_SPEED vy + = ራስን.x += dx new.y += dy self.target.velocity = self.target.collision_handler (የመጨረሻ ፣ አዲስ ፣ 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 በታች ከሆነ ፣ ጨዋታው ጨዋታው () (በኋላ ይጽፉታል) እንደ “ክርክር” አድርገው ይደውሉ። የ x ቦታው ከማያ ገጹ መጠን በ 3 ከተባዛ (ከዚያ በፊት እንደ ደረጃ መጠን አድርገውታል)።

    posX ፣ posY = self.target.position posY ከሆነ <0: finishGame (“Game Over”) posX> 800*3: # ደረጃ መጠን ጨርስ ጨዋታ (“ደረጃ ተጠናቅቋል”) ከተመለሰ

  • የክፍል ማጠናቀቂያ ምናሌን ይግለጹ። ከዚህ ቀደም እርስዎ እንደገለፁት እንደ ዋናው ምናሌ ክፍል መሆን አለበት ፣ ግን እንደ ባዶ ባዶ ሕብረቁምፊ ከመሆን ይልቅ የ _init_ ተግባር እንደ ክርክር የሚወስደውን ተለዋዋጭ ጽሑፍ መጠቀም አለበት። የምናሌ ንጥሎቹ አሁን “እንደገና ይሞክሩ” እና “ተወው” የሚል መለያ ሊሰጣቸው ይገባል ፣ ነገር ግን የሚጠሩዋቸው ተግባራት አንድ ናቸው።

    ክፍል FinishMenu (ምናሌ): def _init _ (ራስ ፣ ጽሑፍ): ሱፐር (FinishMenu ፣ self) (MenuItem ("ተወው" ፣ pyglet.app.exit))] self.create_menu (የምናሌ ዕቃዎች)

  • የተጠናቀቀውን ጨዋታ () ተግባር ይግለጹ። ጽሑፍን እንደ ክርክር መውሰድ አለበት። ከዋናው ምናሌ ዳራ አንድ ትዕይንት ማድረግ አለበት ፣ የጽሑፍ ክርክር ወደዚህ ምናሌ ይተላለፋል። ከዚያ ይህንን ትዕይንት ማስኬድ አለበት።

    def finishGame (ጽሑፍ): menuSc = ትዕይንት (MainMenuBgr ()) ምናሌSc.add (FinishMenu (ጽሑፍ)) director.run (menuSc)

5692759 30
5692759 30

ደረጃ 16. ክሬዲቶችን ያክሉ።

ለአስደናቂ ኮድዎ ክሬዲት የሚወስዱበት ፣ እንዲሁም በመንገድ ላይ ለረዳዎት ለሌላ ማንኛውም ሰው ክሬዲት የሚሰጥበት ይህ ነው። ከሌላ ድር ጣቢያ ምስል (በፍቃድ) ከተጠቀሙ ያንን ምስል ለፈጣሪው መሰጠቱን ያረጋግጡ።

  • ፋይል ክሬዲት ይፍጠሩ እና ሁሉንም ክሬዲቶችዎን እዚያ ያስገቡ ፣ ልክ እንደዚህ

    ፔንግዊን-ኬልቪን ሻዴዊንግ ፣ በ CC0 አይስ ብሎክ ስር-ሚካł ሙዝ አሃዝ 1024 በ opengameart.org በ CC-BY-SA 3.0 ስር

  • ወደ የእርስዎ Python ኮድ ይመለሱ እና መለያውን ከ cocos.text ያስመጡ።
  • የንብርብር ንዑስ ክፍል ክሬዲቶችን ይግለጹ። በ _init_ ተግባሩ ውስጥ ፣ የ CREDITS ፋይልን ያንብቡ እና በውስጡ ካለው እያንዳንዱ መስመር በትክክለኛው ቦታ ላይ የጽሑፍ መለያ ያድርጉ።

    የክሬዲት ክሬዲት (ንብርብር): def _init _ (ራስ): ሱፐር (ክሬዲት ፣ ራስ) ") ለ እኔ በክልል (0 ፣ ሌን (ክሬዲት)) ፦ credLabel = መሰየሚያ (ክሬዲቶች ፣ font_size = 32 ፣ መልህቅ_x =" ግራ "፣ መልህቅ_ይ =" ከላይ ") credLabel.position = 25, 500- (i +1)*40 ራስ ።አድግ (ክሬዲት ላቤል)

  • ወደ ዋናው ምናሌ ክፍልዎ ይሂዱ እና ጠቅ ሲያደርጉ የተግባር showCredits ብሎ የሚጠራውን “ክሬዲት” የሚል ምናሌ ንጥል ያክሉ።
  • የምናሌ ንዑስ ክፍል BackToMainMenuButton ን ይግለጹ። የ ShowMainMenu ተግባርን የሚጠራው “ተመለስ” ተብሎ በተሰየመ አንድ ንጥል ይህንን ምናሌ ያድርጉት። የበለጠ እንደ አዝራር የሆነው ይህ “ምናሌ” በአቀባዊ ወደ ታች እና በአግድም ወደ ላይ መስተካከል አለበት።

    ክፍል BackToMainMenuButton (ምናሌ): def _init _ (ራስ): ሱፐር (BackToMainMenuButton, self)._ init _ ("") self.menu_valign = BOTTOM self.menu_halign = LEFT menuItems = [(MenuItem ("ተመለስ", showMainMenu)) create_menu (የምናሌ ንጥሎች)

  • የተግባር ትርኢት ነጥቦችን ይግለጹ። ከ MainMenuBgr ንብርብር እና ክሬዲት ንብርብር አንድ ትዕይንት መስራት እና ያንን ትዕይንት ማስኬድ አለበት።

    def showCredits (): credSc = ትዕይንት (MainMenuBgr ()) credSc.add (Credits ()) credSc.add (BackToMainMenuButton ()) director.run (credSc)

5692759 31
5692759 31

ደረጃ 17. ኮድዎን ይፈትሹ።

ኮድዎን እንደጨረሱ ሲያስቡ ሁሉንም እንደገና ማየት አለብዎት። ይህ አንድ ነገር ማመቻቸት ይችል እንደሆነ ፣ ወይም ለመሰረዝ የረሱት አንዳንድ አላስፈላጊ መስመሮች መኖራቸውን እንዲያስተውሉ ይረዳዎታል። ምሳሌውን ከተከተሉ ፣ የእርስዎ አጠቃላይ ኮድ አሁን እንደሚከተለው መታየት አለበት

    ከኮኮ. ዳይሬክተር ማስመጣት * ከኮኮ.ሜኑ ማስመጣት * ከኮኮስ.ሲሲን ማስመጣት * ከኮኮስ.layer ማስመጣት * ከኮኮ.sprite ማስመጣት * ከኮኮስ.tiles ማስመጣት * ከኮኮ..text ማስመጣት የመለያ ማስመጣት pyglet.app ከ pyglet.window ማስመጫ ቁልፍ ከሂሳብ ማስመጣት ጣሪያ ከዘፈቀደ ማስመጣት ራንዲንት # ዓለም አቀፍ ተለዋዋጮች የቁልፍ ሰሌዳ \u003c \u003c 0 scrMang = 0 ክፍል MainMenuBgr (ColorLayer): def _init _ (self): super (MainMenuBgr, ራስን)._ init _ (0 ፣ 200 ፣ 255 ፣ 255) ክፍል MainMenu (ምናሌ) def _init _ (ራስ) ሱፐር (MainMenu ፣ ራስን) (MenuItem ("ጀምር ጨዋታ" ፣ ጅማሬ ጨዋታ)) ፣ (MenuItem ("ክሬዲቶች" ፣ showCredits)) ፣ (MenuItem ("ተወው" ፣ pyglet.app.exit))] ራስን። def _init _ (ራስን): ሱፐር (ክሬዲት ፣ ራስ) (0 ፣ ሌን (ክሬዲት)): credLabel = መሰየሚያ (ክሬዲቶች ፣ font_size = 32 ፣ መልህቅ_ክስ = "ግራ" ፣ መልህቅ_ይ = "ከላይ") credLabel.position = 25, 500- (i+1)*40 self.add (credLabel) ክፍል BackToMainMenuButton (ምናሌ): def _init _ (ራስን): ሱፐር (BackToMainMenuButton ፣ ራስ) ራስን ፣ ጽሑፍ): ሱፐር (FinishMenu ፣ ራስን) ።_ init _ (ጽሑፍ) self.menu_valign = CENTER self.menu_halign = CENTER menuItems = [(MenuItem ("እንደገና ይሞክሩ" ፣ ጨዋታ ጀምር)) ፣ (MenuItem ("ተወው" ፣ ፒግሌት)። app.exit))] ራስን። 0) def step (self, dt): ዓለም አቀፋዊ ቁልፍ ሰሌዳ ፣ dt> 0.1: scroller dime ከሆነ በጣም ትልቅ መመለሻ vx ፣ vy = self.target.velocity vx = (የቁልፍ ሰሌዳ [ቁልፍ. RIGHT] - ቁልፍ ሰሌዳ [key. LEFT]) * self. MOVE_SPEED vy += self. GRAVITY * dt self.on ከሆነ _የመሬት እና የቁልፍ ሰሌዳ [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. new.center) posX ፣ posY = self.target.position posY <0: finishGame (“Game Over”) posX> 800*3: # level size finishGame (“Level Completed”) return def finishGame (ጽሑፍ) menuSc = ትዕይንት (MainMenuBgr ()) menuSc.add (FinishMenu (ጽሑፍ)) director.run (menuSc) def showCredits (): credSc = ትዕይንት (MainMenuBgr ()) credSc.add (Credits ()) credSc.add (BackToMainMenuButton ()) director.run (credSc) def generatedTilemap (): colAmount = ጣሪያ (800/16) * 3 # (የማያ ስፋት / የሰድር መጠን) * 3 ረድፍ ከፍታ = ጣሪያ (600/16) # የማያ ገጽ ቁመት / የሰድር መጠን tileFile = ክፍት ("levelMap.xml", "w") tileFile.write ('\ n / n / n') iceHeight = randint (1, 10) ለ እኔ በክልል (0, colAmount): tileFile.write ('') makeHole = ራንድ ከሆነ ውሸት int (0, 50) == 10 እና እኔ! = 0: # በስፔን ነጥብ makeHole ላይ ቀዳዳዎች አይፍቀዱ = በክልል ውስጥ ለ j እውነት (0 ፣ rowAmount) ፦ makeHole ከሆነ tileFile.write ('\ n') ሌላ: j <= iceHeight: tileFile.write ('\ n') ሌላ ፦ tileFile.write ('\ n') iceHeight = randint (iceHeight-5 ፣ iceHeight+5) ከሆነ በረዶ ከፍታ <0: # ሰቆች እንዲሁ እንዳይሄዱ ይገድቡ። ዝቅተኛ iceHeight = randint (1 ፣ 5) ከሆነ የበረዶ ከፍታ> ረድፍ ከፍታ ፦ # ሰቆች በጣም ከፍተኛ በረዶ እንዳይሄዱ ይገድቡHight = 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 ') tileFile. ጻፍ ('\ n') tileFile.write ('\ n / n') tileFile.close () def startGame (): ዓለምአቀፍ ቁልፍ ሰሌዳ ፣ scrMang generatedTilemap () # fig = Sprite ('pingu.png') fig.position = (8, 250) figLayer = ScrollableLayer () figLayer.add (fig) # tileLayer = load ('levelMap.xml') solidTiles = tileLayer ['solid'] nsoliTiles = tileLayer ['not_solid'] # keyboard = key. KeyStateHandler () ዳይሬክተር። መስኮት። push_handlers (keybo ard) # fig.do (PlatformerController ()) mapcollider = RectMapCollider (velocity_on_bump = 'slide') fig.collision_handler = make_collision_handler (mapcollider, solidTiles) # scrMang = ScrollingManager () scrMang.add (nsoliTirs) አክል (solidTiles, z = 0) scrMang.add (figLayer, z = 1) # gameSc = ትዕይንት (scrMang) director.run (gameSc) def showMainMenu (): menuSc = ትዕይንት (MainMenuBgr ()) menuSc.add (MainMenu ()) ዳይሬክተር.

  • ኮዱን ብቻ ቢቆጥሩት ያ ሙሉ በሙሉ 168 መስመሮች እና 152 መስመሮች ናቸው። ይህ ብዙ ይመስላል ፣ ግን ለእንደዚህ ዓይነቱ ውስብስብ ጨዋታ ይህ በእውነቱ አነስተኛ መጠን ነው።
5692759 32
5692759 32

ደረጃ 18. ተጠናቀቀ።

አሁን ጨዋታውን ይፈትሹ። የሆነ ነገር ሲያቀናብሩ አዲስ ነገር ተግባራዊ ባደረጉ ቁጥር እንደሚሰራ ማረጋገጥ አለብዎት። እንዲሁም ፣ የፃፉትን ጨዋታ ለተወሰነ ጊዜ መጫወት ይወዱ ይሆናል።

የ 3 ክፍል 3 - ጨዋታ ማተም

5692759 52
5692759 52

ደረጃ 1. ጥገኖቹን ይፃፉ።

ሌላ ኮምፒተር የሚጠቀም ማንኛውም ሰው ከእርስዎ ጋር ተመሳሳይ ሶፍትዌር እና ቤተመጽሐፍት አይጫኑም። ስለዚህ ፣ ጨዋታዎን የሚጭኑ ሁሉ እሱን ለማሄድ ምን እንደሚፈልጉ በትክክል ማወቅዎን ማረጋገጥ ያስፈልግዎታል። የሁሉንም ጥገኞች እና የመሳሰሉትን የሁሉንም ጥገኞች ሁሉንም ጥገኝነት መፃፍ የለብዎትም ፣ ግን ቢያንስ የጥቅሎችዎን ጥገኝነት እና ጥገኖቻቸውን መፃፍ አለብዎት።

5692759 53
5692759 53

ደረጃ 2. ሁሉንም ሚዲያ ለመጠቀም ፈቃድ እንዳለዎት ያረጋግጡ።

ይህ ለጨዋታዎ የተጠቀሙባቸውን 3 ዲ አምሳያዎች ፣ ሙዚቃ ፣ ውይይት ፣ ሙዚቃ ፣ ቤተመፃህፍት እና ማዕቀፎችን ጨምሮ ለሁሉም ግራፊክስ ይመለከታል። እርስዎ ያልፃፉት ማንኛውም ነገር።

  • ብዙውን ጊዜ አንዳንድ ሁኔታዎች አሉ ፣ ለምሳሌ ለደራሲው ክብር መስጠት ወይም በተመሳሳይ ፈቃድ ስር የሚዲያ ማሻሻያዎችን ማካፈል። ለጨዋታው እስካልከፈሉ ድረስ አንዳንድ ጊዜ ለፈጣሪዎች ሳይገልጹ ግራፊክስን መጠቀም ይችላሉ። ለደራሲው ምስጋና መስጠት ካለብዎት በጨዋታዎ ውስጥ እንደ “ክሬዲት” ትር ባሉ በደንብ በሚታይ ቦታ ያድርጉት።
  • እንዲሁም በቅጂ መብት የተጠየቀ እና ፈቃድ ያልተገለጸ ሚዲያ አለ ፣ አንዳንድ ጊዜ እንደ “ሁሉም መብቶች የተጠበቁ ናቸው” የሚል ጽሑፍ አለ።እንደዚያ ከሆነ በጨዋታዎ ውስጥ ከማካተትዎ በፊት ከደራሲው ግልፅ ፈቃድ ማግኘት አለብዎት።
  • ቤተመጻሕፍት አብዛኛውን ጊዜ እንደ ቤተመጽሐፍት እንዲጠቀሙ በሚያስችላቸው ፈቃዶች ይለቀቃሉ። አንድ ለየት ያለ ሁኔታ ልዩነትን ሳያገናኝ GPL ነው - እንዲህ ዓይነቱ ፈቃድ የተወሰኑ ፈቃዶች ባለው ፕሮግራም ውስጥ ብቻ እንዲጠቀም ያስችለዋል። እና በሚዲያ ወይም በቤተመጽሐፍት የሚያደርጉት ማንኛውም ነገር የተፈቀደ መሆኑን ለማረጋገጥ ሁል ጊዜ ቢያንስ የፍቃዱን መሠረታዊ ነጥቦች ማንበብ አለብዎት።

ማስጠንቀቂያ ፦ በሚያሳትሙት ጨዋታ ውስጥ ፈቃዱ በማይፈቅድበት መንገድ ሚዲያዎችን ወይም ቤተመፃሕፍትን መጠቀም ወደ ከባድ የሕግ ችግር ውስጥ ሊገባዎት ይችላል። ስለዚህ አጠቃቀሙ ይፈቀድ እንደሆነ እርግጠኛ ካልሆኑ ደራሲውን ይጠይቁ ወይም የሚዲያውን ክፍል ሙሉ በሙሉ ያስወግዱ።

5692759 54
5692759 54

ደረጃ 3. ጨዋታዎን ለማተም በሚፈልጉባቸው ሁኔታዎች ላይ ይወስኑ።

ጨዋታዎን ይሸጣሉ? ሌሎች ምስሎችዎን እና ሀሳቦችዎን እንዲጠቀሙ መፍቀድ ይፈልጋሉ? በፕሮጀክትዎ ውስጥ ስለሚጠቀሙት ሚዲያ መጠንቀቅ ሲኖርብዎት ፣ አብዛኛውን ጊዜ ሌሎች ጨዋታዎን እንዲጠቀሙ እንዴት መፍቀድ እንደሚፈልጉ መወሰን ይችላሉ። ጨዋታዎን በይፋዊ ጎራ ውስጥ ለመልቀቅ የ Creative Commons CC0 ፍቃድን መጠቀም ይችላሉ። አንዳንድ መብቶችን በሚይዙበት ጊዜ በአንዳንድ ሁኔታዎች ስርጭትን እና ማሻሻልን ለመፍቀድ የ Gnu አጠቃላይ የህዝብ ፈቃድ (GPL) ወይም የበርክሌይ ሶፍትዌር ስርጭት (ቢኤስኤስዲ) ፈቃድን ይሞክሩ። ወይም ፣ ያለ እርስዎ ፈቃድ ማንም ሰው እንዲያሰራጭ ወይም እንዲያስተካክለው የማይፈቀድለት ማለት የእርስዎን ሶፍትዌር የባለቤትነት ባለቤት ማድረግ ይችላሉ።

ምንም እንኳን ጨዋታዎችን በመሸጥ ገንዘብ ማግኘት ቢቻልም ፣ ብዙውን ጊዜ ጥቂት ባህሪዎች እና ምንም ልዩ ነገር የሌለውን የመጀመሪያውን ጨዋታዎን ሰዎች ይገዛሉ ማለት አይቻልም። እንዲሁም ፣ ነፃ ፕሮግራም ካልሰራ ፣ ያወረዱት ሰዎች ያዝናሉ። እነሱ ከከፈሉ ግን ገንዘባቸውን መልሰው ይጠይቃሉ ፣ ይህም ለእርስዎ እና ለተጠቃሚዎች የበለጠ ችግር ይፈጥራል። ስለዚህ የመጀመሪያዎቹ ጥቂት ፕሮግራሞችዎን በነጻ እንዲገኙ ያስቡበት።

5692759 55
5692759 55

ደረጃ 4. ጨዋታዎን እንዴት ማተም እንደሚፈልጉ ይወስኑ።

እያንዳንዱ ዘዴ አንዳንድ ጥቅሞች እና ጉዳቶች አሉት ፣ ስለዚህ እራስዎን መወሰን አለብዎት።

  • በድር ጣቢያ ላይ ማተም -

    ድር ጣቢያ ካለዎት ለማውረድ የሚገኝ እንዲሆን ጨዋታዎን መስቀል ይችላሉ። ሶፍትዌሩን እንዴት እንደሚጫኑ ፣ እንዲሁም ሁሉንም አስፈላጊ ጥገኞች በተመለከተ ግልፅ መመሪያዎችን መስጠትዎን ያረጋግጡ። የዚህ መጎዳቱ ተጫዋቾች ጥገኝነትን በእጅ መጫን አለባቸው ፣ ይህም ለአንዳንድ ሰዎች ከባድ ሊሆን ይችላል።

  • ለአንድ የጥቅል አስተዳዳሪ ጥቅል ማዘጋጀት ፦

    ሰዎች በሊኑክስ እና ሊኑክስ ላይ በተመሠረቱ አካባቢዎች ውስጥ መተግበሪያዎችን እንዲጭኑ የሚያደርጋቸው እንደ አፕት ፣ ዩም እና ሆምብሬው ያሉ የተለያዩ የጥቅል አስተዳዳሪዎች አሉ። ሁሉም የተለያዩ የጥቅል ቅርፀቶች አሏቸው። ስለ ጥቅሎች ጥሩው ነገር ሁሉንም ጥገኛዎች በራስ -ሰር የሚጭኑ (በትክክል ካዋቀሯቸው) ነው። ስለዚህ ተጫዋቹ ጥቅልዎን ብቻ መጫን እና ከዚያ ጨዋታውን መጫወት ይችላል። ችግሩ በተለያዩ የመሣሪያ ስርዓቶች ላይ ብዙ የተለያዩ የጥቅል አስተዳዳሪዎች አሉ ፣ ስለሆነም በጣም ለተለመዱት ሁሉ ፓኬጆችን በማቅረብ አንዳንድ ሥራዎችን ማከናወን ይኖርብዎታል።

5692759 56
5692759 56

ደረጃ 5. ለፕሮግራምዎ ቀጥተኛ ትኩረት ይስጡ።

ቀላል ጭነቶችን ለመፍቀድ እንደ ኡቡንቱ እና ደቢያን እንደሚንከባከቡት ላሉት ፕሮግራም ወደ ትልቅ የጥቅል ማከማቻ መስቀልን ያስቡበት። እንዲሁም እንደ GameDev ፕሮጀክቶች ክፍል ወይም የ tigSource አንድ ክፍል ባሉ ተገቢ መድረኮች ውስጥ ይለጥፉ። ግን የመጀመሪያዎቹ ጨዋታዎችዎ ታዋቂ ካልሆኑ አይቆጩ። ብዙ ሰዎች የሚወዱት ሀሳብ ካለዎት ጨዋታዎ በደንብ ሊታወቅ ይችላል።

ጠቃሚ ምክሮች

  • ታጋሽ እና ለመማር ፈቃደኛ ይሁኑ። ፕሮግራሚንግ አንዳንድ ጊዜ ተስፋ አስቆራጭ ሊሆን ይችላል!
  • በሌላ ጨዋታ ውስጥ አንድ ነገር እንዴት እንደሚደረግ ካሰቡ ፣ እና ጨዋታው ክፍት ምንጭ ከሆነ ፣ የምንጭ ኮዱን መመልከት ይችላሉ።
  • ሚዲያ ሲፈልጉ ፣ በይፋዊ ጎራ ውስጥ ያለውን ይዘት ለማግኘት ይሞክሩ። «Creative Commons» ወይም «Public Domain» ምስሎችን እና ሙዚቃን ይፈልጉ እና እንደ https://opengameart.org ወይም https://publicdomainpictures.net ያሉ ድር ጣቢያዎችን ይጠቀሙ።
  • ፈቃዱን ሳይፈትሹ ዋና ዋና የኮድ ቁርጥራጮችን አይቅዱ። ብዙውን ጊዜ የተከለከለ ነው ፣ እና ካልሆነ ፣ ብዙውን ጊዜ ባህሪን ይፈልጋል።
  • ጨዋታዎን ሲያስተዋውቁ አይፈለጌ መልዕክት አያድርጉ ወይም ተገቢ ባልሆኑ ቦታዎች ላይ አይለጥፉ። ይህ ከገጹ ሊያግድዎት ይችላል ፣ በቀላሉ የሚያበሳጭ እና ዝናዎን ያበላሸዋል።

የሚመከር: