ዝርዝር ሁኔታ:

በአርዲኖ ተቆጣጣሪዎች አማካኝነት ባለብዙ ተጫዋች ጨዋታ እንዴት እንደሚደረግ -6 ደረጃዎች
በአርዲኖ ተቆጣጣሪዎች አማካኝነት ባለብዙ ተጫዋች ጨዋታ እንዴት እንደሚደረግ -6 ደረጃዎች

ቪዲዮ: በአርዲኖ ተቆጣጣሪዎች አማካኝነት ባለብዙ ተጫዋች ጨዋታ እንዴት እንደሚደረግ -6 ደረጃዎች

ቪዲዮ: በአርዲኖ ተቆጣጣሪዎች አማካኝነት ባለብዙ ተጫዋች ጨዋታ እንዴት እንደሚደረግ -6 ደረጃዎች
ቪዲዮ: Arduino Traffic Light Controller with code|በአርዲኖ የተሰራ የትራፊክ መብራት መቆጣጠሪያ ለዩኒቨርሲቲ ተማሪዎቸእና ለፈጠራ ባለሞያዎች 2024, ሀምሌ
Anonim
ከ Arduino መቆጣጠሪያዎች ጋር ባለብዙ ተጫዋች ጨዋታ እንዴት እንደሚደረግ
ከ Arduino መቆጣጠሪያዎች ጋር ባለብዙ ተጫዋች ጨዋታ እንዴት እንደሚደረግ

የጨዋታ ገንቢዎች በዓለም ዙሪያ ሰዎች መጫወት የሚያስደስታቸው አስገራሚ ጨዋታዎችን እንዴት እንደሚፈጥሩ አስበው ያውቃሉ? ደህና ፣ እኔ እርስዎም በሚያደርጉት በአርዱዲኖ ተቆጣጣሪ የሚቆጣጠረውን አነስተኛ ባለብዙ ተጫዋች ጨዋታ በማድረግ ዛሬ ስለ እሱ ትንሽ ፍንጭ እሰጥዎታለሁ። ስለዚህ ፣ እንጀምር።

አቅርቦቶች

ያስፈልግዎታል:

  • ላፕቶፕ
  • የአንድነት ሞተር
  • እንደ ምስላዊ ስቱዲዮ ወይም አቶም ካሉ ከአንድነት ጋር የሚሰራ C# IDE። (የእይታ ስቱዲዮ ኮድ እጠቀማለሁ)
  • 2X አርዱዲኖ ናኖ
  • 2X ትልቅ ዳቦ ሰሌዳ
  • 2X አነስተኛ ዳቦ ሰሌዳ
  • 4X የመቀየሪያ መቀየሪያ (የግፋ አዝራር)
  • 4X 200Ω ተከላካይ
  • 12X ወንድ ወደ ወንድ ዝላይ ሽቦዎች
  • አርዱዲኖ አይዲኢ

አንድነትን ስለመጠቀም መሰረታዊ ግንዛቤ ቢኖርዎት ጠቃሚ ይሆናል ፣ ሆኖም ጨዋታውን በሚሰሩበት ጊዜ እርስዎ ስለሚያውቁት እድገትዎን አይጎዳውም።

የአንድነት ሞተርን ለማውረድ አገናኝ

store.unity.com/download-nuo

የእይታ ስቱዲዮ ኮድ IDE ን ለማውረድ አገናኝ

code.visualstudio.com/download

Arduino IDE ን ለማውረድ አገናኝ

www.arduino.cc/en/Main/Software

ደረጃ 1 የጨዋታውን ድንበሮች ያዘጋጁ

የጨዋታውን ድንበሮች ያዘጋጁ
የጨዋታውን ድንበሮች ያዘጋጁ
የጨዋታውን ድንበሮች ያዘጋጁ
የጨዋታውን ድንበሮች ያዘጋጁ
የጨዋታውን ድንበሮች ያዘጋጁ
የጨዋታውን ድንበሮች ያዘጋጁ

በመጀመሪያ ደረጃ አንድነትን ማውረድ ያስፈልግዎታል

አንዴ ከተጠናቀቀ የጨዋታዎን እይታ ማዘጋጀት መጀመር ይችላሉ።

አዲስ የአንድነት ፕሮጀክት ይክፈቱ ፣ ይሰይሙት እና 2 ዲ ጨዋታ ይምረጡ።

ፕሮጀክቱ ሲከፈት ፣ የተጠሩ 3 ዋና ክፍሎች እንዳሉ ልብ ይበሉ

  • ተዋረድ (ሁሉም የእርስዎ የጨዋታ ዕቃዎች እና ዝርዝሮች የሚጨመሩበት ይህ ነው)።
  • ትዕይንት (የጨዋታውን እይታ ያዋቀሩበት)።
  • ጨዋታ (እውነተኛው ጨዋታ እንዴት እንደሚሄድ መሞከር የሚችሉበት)።

በደረጃው ስር የእርስዎ ትዕይንት እንዳለ እና በትዕይንቱ ስር “ዋና ካሜራ” እንዳለ ልብ ይበሉ። ካሜራውን ከተዋረድ ሲመርጡ በቦታው ላይ ይመረጣል

(በዚህ ካሜራ ድንበሮች ውስጥ ያለ ማንኛውም ነገር በእውነተኛው ጨዋታ ውስጥ ይታያል)።

ምስል 1 ይመልከቱ

የእኛ ጨዋታ ሁለት ቦርዶችን ፣ የሚንቀሳቀስ ኳስ እና የቦርዶችን እና የኳሱን እንቅስቃሴ የሚገድቡ ድንበሮችን ያቀፈ ነው።

ድንበሮችን በመፍጠር እንጀምር።

  1. አዲስ የጨዋታ ነገር ለመፍጠር ፣ ንብረቶችን ይምረጡ> ፍጠር> ስፕሪቶች> ካሬ (“የቀኝ እና የግራ ድንበሮች” ብለው ይሰይሙት) ሥዕል 2 ይመልከቱ
  2. የቀኝ እና የግራ ድንበሮችን ወደ ተዋረድ ይጎትቱ እና ይጣሉ እና አንድ ካሬ በቦታው ላይ ይታያል።
  3. የ x ዘንግ ቦታውን ወደ (5) “የቀኝ እና የግራ ድንበሮች”> ተቆጣጣሪ> መለወጥ> አቀማመጥ> X ያስተካክሉ። ስዕል 3 ይመልከቱ
  4. ከዚያ የካሜራውን ድንበሮች ለመሸፈን በቂ እንዲሆን መጠኑን ያስተካክሉ (ለመዘርጋት የካሬውን የላይኛው እና የታችኛውን ጎኖች ይጎትቱ)።
  5. ቀለሙን “ከቀኝ እና ከግራ ድንበሮች”> ኢንስፔክተር> የስፕሪንግ ማቅረቢያ> ቀለም ያስተካክሉ። ስዕል 3 ይመልከቱ
  6. በተቆጣጣሪው ውስጥ ወደ ታች ይሸብልሉ እና የመደመር ክፍልን ይምረጡ እና Rigidbody2D ን ይተይቡ እና አስገባን ይጫኑ ፣ ይህ ብዙ ፣ ስበት እና የግጭት ማወቂያን ስለሚሰጥ ይህ በመሠረቱ በጨዋታዎ ነገር ላይ ፊዚክስን ያክላል። ሆኖም በጨዋታችን ውስጥ የስበት ኃይል አያስፈልገንም ስለዚህ በምትኩ የስበት ኃይልን 0 ያድርጉት 1. ድንበሩ በሚጋጭበት ጊዜ እንዳይንቀሳቀስ ቦታውን እና ሽክርክሪቱን ማሰር ያስፈልግዎታል። ስዕል 4 ይመልከቱ
  7. የመደመር አካልን ይምረጡ እና ከዚያ ሳጥን Collider 2D ን ይተይቡ እና ይህንን ይጫኑ ግጭቶች ሊገኙበት በሚችሉበት በጨዋታው ነገር ዙሪያ አካባቢ ያክላል። ስዕል 4 ይመልከቱ
  8. አሁን የቀኝ እና የግራ ድንበሮችን ይምረጡ እና ለማባዛት (ctrl+d) ይጫኑ።
  9. “የግራ ድንበር” ብለው እንደገና ይሰይሙት እና የመጀመሪያውን (“የቀኝ ድንበር”) ይለውጡት።
  10. የግራ ድንበርን ይምረጡ እና የእርሱን x ዘንግ አቀማመጥ ወደ (-5) በተመሳሳይ መንገድ በደረጃ 3. አሁን የቀኝ እና የግራ ድንበሮች አለዎት።

ከላይ እና ታች ድንበሮች ጋር ቀዳሚዎቹን 10 ደረጃዎች ይድገሙ እና ከ x አቀማመጥ ይልቅ የካሬውን y ቦታ ይለውጡ። የመጨረሻው ቅድመ -እይታ በሥዕሉ ላይ ካለው ጋር የሚመሳሰል ነገር መሆን አለበት።

ምስል 5 ን ይመልከቱ

ደረጃ 2 ቦርዶችን ማከል እና ተቆጣጣሪዎችን መስራት

ቦርዶችን መጨመር እና ተቆጣጣሪዎች መስራት
ቦርዶችን መጨመር እና ተቆጣጣሪዎች መስራት
ቦርዶችን መጨመር እና ተቆጣጣሪዎች መስራት
ቦርዶችን መጨመር እና ተቆጣጣሪዎች መስራት
ቦርዶችን መጨመር እና ተቆጣጣሪዎች መስራት
ቦርዶችን መጨመር እና ተቆጣጣሪዎች መስራት

ሰሌዳዎችን ማከል

አዲስ የጨዋታ ነገር ያዘጋጁ እና ተጫዋች 1 ብለው ይሰይሙት።

አስተካክል ፦

  • ልኬት - X (1.2) ፣ Y (0.15) ፣ Z (1)
  • አቀማመጥ: X (0), Y (-3.6), z (0)
  • BoxCollider2D ን ያክሉ
  • Rigidbody 2D ን ያክሉ እና የ y እና z መጥረቢያዎችን ያቀዘቅዙ።

ያባዙ (ctrl+d) እና የቅጂ ማጫወቻውን 2 እንደገና ይሰይሙ።

አስተካክል ፦

  • ልኬት - X (1.2) ፣ Y (0.15) ፣ Z (1)
  • አቀማመጥ ፦ X (0) ፣ ያ (3.6) ፣ z (0)
  • BoxCollider ቀድሞውኑ እዚያ ይሆናል።
  • Rigidbody 2D ቀድሞውኑ እዚያ ይሆናል እና የ y እና z መጥረቢያዎች ቀድሞውኑ በረዶ ይሆናሉ።

ምስል 1 ይመልከቱ

ተቆጣጣሪዎች ማድረግ

ያስፈልግዎታል:

  • 2X አርዱዲኖ ናኖ
  • 2X ትልቅ ዳቦ ሰሌዳ
  • 2X አነስተኛ ዳቦ ሰሌዳ
  • 4X የመቀየሪያ መቀየሪያ (የግፋ አዝራር)
  • 4X Resistor
  • 12X ወንድ ወደ ወንድ ዝላይ ሽቦዎች

አሁን የደስታ ማስታወሻዎችን ለመሰብሰብ የዳቦ ሰሌዳ ፎቶዎችን እና ካርታውን ይመልከቱ።

  1. ከትንሽ የዳቦ ሰሌዳ ጋር አንድ አርዱዲኖ ናኖ ቺፕ ያያይዙ።
  2. በሥዕሉ ላይ እንደሚታየው በትልቁ የዳቦ ሰሌዳ ላይ 2 የታክ መቀያየሪያዎችን ያያይዙ። ይህ የጆይስቲክን የተሻለ እንዲመስል ስለሚያደርግ የዳቦ ሰሌዳው የቀኝ ጎን አንድ ሲመሳሰል በግራ በኩል አንድ ለማድረግ ይሞክሩ። መስመር)
  3. የግራ አዝራሩን ከላይ-ግራ ፒን በአርዱዲኖ ውስጥ ካለው 5V ፒን ጋር በትንሽ ዳቦ ሰሌዳ ላይ ያገናኙ (በእንጀራ ሰሌዳ ውስጥ ካለው ተመሳሳይ አምድ ጋር የተገናኙ ነገሮች እርስ በእርስ የተገናኙ ናቸው)።
  4. በአርዱዲኖ ውስጥ ባለ 5 ቪ ፒን የቀኝ አዝራሩን የላይኛው ቀኝ ጥግ ያገናኙ።
  5. ተከላካዩን በመጠቀም በ 31 ኛው አምድ ላይ ካለው ነጥብ ጋር የግራ አዝራሩን ታች-ቀኝ ፒን ያገናኙ።
  6. ተከላካዩን በመጠቀም በ 29 ኛው አምድ ላይ ካለው ነጥብ ጋር የቀኝ አዝራሩን ታች-ግራ ፒን ያገናኙ።
  7. በአርዲኖ ውስጥ ካለው የ GND ፒን ጋር ተቃዋሚዎችን ያገናኙ።
  8. በአርዱዲኖ ውስጥ ካለው የ D3 ፒን ጋር የግራ አዝራሩን የላይኛው ቀኝ ጥግ ያገናኙ።
  9. በአርዱዲኖ ውስጥ ካለው የ D9 ፒን ጋር የቀኝ አዝራሩን የላይ-ግራ ፒን ያገናኙ።
  10. አሁን እነዚህን እርምጃዎች ይድገሙ እና ሁለተኛውን ተቆጣጣሪ ያድርጉ።

ደረጃ 3: አርዱዲኖን ከሲሪያል ወደብ ጋር በማገናኘት ላይ

አርዱዲኖን ወደ ተከታታይ ወደብ በማገናኘት ላይ
አርዱዲኖን ወደ ተከታታይ ወደብ በማገናኘት ላይ
አርዱዲኖን ወደ ተከታታይ ወደብ በማገናኘት ላይ
አርዱዲኖን ወደ ተከታታይ ወደብ በማገናኘት ላይ
አርዱዲኖን ወደ ተከታታይ ወደብ በማገናኘት ላይ
አርዱዲኖን ወደ ተከታታይ ወደብ በማገናኘት ላይ
አርዱዲኖን ወደ ተከታታይ ወደብ በማገናኘት ላይ
አርዱዲኖን ወደ ተከታታይ ወደብ በማገናኘት ላይ

በመጀመሪያ የ Arduino IDE ን መጫን ያስፈልግዎታል።

አንዴ ከተጫኑ ፣ ከአዝራሮቹ ግብዓቶችን የሚቀበል እና በ Serial port (COM port) ውስጥ የሚያከማቸውን የአርዱዲኖ ፕሮግራም በማዘጋጀት መጀመር ይችላሉ። የአርዱዲኖ ቦርድ ከእርስዎ ላፕቶፕ ጋር ሲገናኝ ፣ ስርዓተ ክወናው ቦርዱን እንደ ሰር ወደብ በራስ -ሰር ያውቀዋል ፣ የትኞቹ ፕሮግራሞች ሊሰቀሉ ይችላሉ። በተከታታይ ወደብ ውስጥ የተከማቹ እሴቶች የአንድነት ሞተርን ከተከታታይ ወደብ ጋር ስናገናኝ በሚቀጥለው ደረጃ ላይ ሊያገለግሉ ይችላሉ።

አሁን አርዱዲኖን ከሲሪያል ወደብ ጋር እናገናኘው።

ምስሎቹን ተመልከት

  1. አርዱዲኖን ከእርስዎ ላፕቶፕ ጋር ያገናኙ
  2. መሣሪያዎች> ቦርድ> አርዱዲኖ ናኖ
  3. የእርስዎ የአርዲኖ ቺፕ የቅርብ ጊዜ (2018-2020) መሣሪያዎች> ፕሮሰሰር> ATmega328P (የድሮ ቡት ጫኝ) ከሆነ።
  4. የእርስዎ Arduino ቺፕ የቅርብ ጊዜ ካልሆነ (ከ 2018 በፊት) መሣሪያዎች> ፕሮሰሰር> ATmega328P
  5. መሣሪያዎች> ወደብ> COM (ቁጥሩ ምንም ቢታይ በእኔ ሁኔታ 10 ነው)። * ይህ እሴቶች የሚቀመጡበት ተከታታይ ወደብ ነው።
  6. ኮዱን ይቅዱ እና በአርዱዲኖ አይዲኢ ውስጥ ይለጥፉት እና ፕሮግራሙን ለመስቀል ctrl+u ን ይጫኑ።
  7. በሁለተኛው አርዱinoኖ ይድገሙት። (ደረጃ 5 በሚሰሩበት ጊዜ ሁለቱም ተቆጣጣሪዎች ከአንድ ተመሳሳይ ወደብ ጋር እንዳይገናኙ ሌላ COM ወደብ መምረጥዎን ያረጋግጡ)።

ኮድ ፦

ባዶነት ማዋቀር () {

Serial.begin (9600); pinMode (3 ፣ ግቤት); // አርዱinoኖን ከፒን D3 pinMode (9 ፣ ግቤት) ግብዓት እንዲቀበል መንገር ፤ // ግብአቱን ከፒን D9} ባዶነት loop () እንዲያገኝ አርዱinoኖን መንገር {ከሆነ (digitalRead (3) == 1) { /* አርዱinoኖ የ 1 Serial.write (1) ግብዓት ከተቀበለ። ከፒን 3 የ 1 እሴት ወደ ተከታታይ ወደብ Serial.flush (); */ መዘግየት (2); } ከሆነ (digitalRead (9) == 1) { /* አርዱinoኖ የ 1 Serial.write (2) ግብዓት ከተቀበለ። ከፒን 9 የ 2 እሴት ወደ ተከታታይ ወደብ Serial.flush (); */ መዘግየት (2); }}

የፕሮግራሙ ማብራሪያ -

ይህ ኮድ በቀላሉ ከአዝራሮቹ ጋር የተገናኙት በአርዲኖ ውስጥ ከ D3 ፒን እና ከ D9 ፒን ግብዓት ይወስዳል። ቁልፎቹ ተጭነው ወይም አልተጫኑም ፣ ይህም ማለት ከእነሱ የተወሰዱ ንባቦች 1 (ተጭነው) ወይም 0 (ያልተጫኑ) ናቸው ማለት ነው። ከትክክለኛው አዝራር (ከ D9) ያለው ግብዓት 1 (የተጫነ) ከሆነ በ 1 ወደብ በሴሪያል ወደብ ውስጥ ያከማቻል። ከግራ አዝራር (ከ D3) ያለው ግብዓት 1 (ተጭኖ) በሴሪያ ወደብ ውስጥ የ 2 እሴት ያከማቻል።

ደረጃ 4: አንድነትን ከሲሪያል ወደብ ጋር ማገናኘት

አንድነትን ከሲሪያል ወደብ ጋር ማገናኘት
አንድነትን ከሲሪያል ወደብ ጋር ማገናኘት
አንድነትን ከሲሪያል ወደብ ጋር ማገናኘት
አንድነትን ከሲሪያል ወደብ ጋር ማገናኘት

አዝራሮቹ ሲጫኑ ግብዓቶችን ከአርዱዲኖ መቀበል እንዲችል ለዚህ ደረጃ እኛ በአንድነት ውስጥ ያለውን ተከታታይ ወደብ እንለቃለን። በላፕቶፕዎ ላይ የእይታ ስቱዲዮ ኮድ ይጫኑ። ከዚያ ወደ አንድነት ይሂዱ ፣ ከተጫዋቹ ተጫዋች 1 ን ይምረጡ ፣ ወደ ታች ይሸብልሉ እና ክፍል ይጨምሩ እና ተጫዋች 1_ሞሽን ይተይቡ ከዚያም አስገባን ይጫኑ። ምስል 1 ይመልከቱ

በተቆጣጣሪው ውስጥ የ C# ስክሪፕት ይፈጠራል ፣ በላዩ ላይ በቀኝ ጠቅ ያድርጉ እና የአርትዕ ስክሪፕት ይምረጡ ፣ የእይታ ስቱዲዮ ኮድ መከፈት አለበት እና ስዕል 2 የሚመስል ነባሪ ኮድ ያሳያል።

የሚከተለውን ኮድ ይቅዱ እና ከዚያ “SerialPort sp = new SerialPort (“COM10”፣ 9600) ን ይቀይሩ ፤” በ SerialPort sp = አዲስ SerialPort (“የእርስዎ አርዱኢኖ የተገናኘበት COM ወደብ” ፣ 9600); ወደ አርዱዲኖ ኮድዎ በመመለስ እና በመሳሪያ መሳሪያዎች> ወደብ> COM (ማንኛውም ቁጥር ቢታይ) የእርሱን ማግኘት ይችላሉ።

ኮድ ፦

ስርዓትን በመጠቀም ስብስቦችን;

System. Collections. Generic ን በመጠቀም። UnityEngine ን በመጠቀም; System. IO. Ports ን በመጠቀም; የሕዝብ ክፍል ተጫዋች1_ሞሽን ሞኖባህሪዩ {ተንሳፋፊ ፍጥነት = 8; የግል ተንሳፋፊ መጠን SerialPort sp = አዲስ SerialPort ("COM10" ፣ 9600); // መጀመሪያ ክፈፍ ከማዘመን ባዶ (ጀምር) መጀመሪያ () {sp. Open (); sp. ReadTimeout = 1; } // ዝማኔ በአንድ ክፈፍ ባዶነት አንድ ጊዜ ይባላል ዝማኔ () {amounttomove = speed*0.01f; ከሆነ (sp. IsOpen) {ይሞክሩ {moveObject (sp. ReadByte ()); ማተም (sp. ReadByte ()); } ያዝ (System. Exception) {}}} ባዶ moveObject (int አቅጣጫ) {ከሆነ (አቅጣጫ == 1) {transform. Translate (Vector3.left*amounttomove ፣ Space. World) ፤ } ከሆነ (አቅጣጫ == 2) {transform. Translate (Vector3.right*amounttomove ፣ Space. World) ፤ }}}

የኮድ ማብራሪያ;

ይህ ኮድ ከተከታታይ ወደብ (COM 10) ግብዓቶችን ለመቀበል አንድነትን ይነግረዋል። የግራ አዝራሩ ሲጫን አርዱinoኖ 1 ወደ እሴቱ ወደብ ይልካል ፣ አንድነት ከተከታታይ ወደብ 1 ከተቀበለ ፣ በግራ በኩል ወደ ጨዋታው ነገር “ተጫዋች 1” ፍጥነት ይጨምራል። ትክክለኛው አዝራር ሲጫን አርዱዲኖ የ 2 እሴት ወደ ተከታታይ ወደብ ይልካል ፣ አንድነት ከተከታታይ ወደብ 2 ከተቀበለ ፣ በጨዋታው ነገር “ተጫዋች 1” በትክክለኛው አቅጣጫ ላይ ፍጥነት ይጨምራል። ተከታታይ ወደብ ከተከታዩ ወደብ እሴት ካልተቀበለ ፣ በሁለቱም አቅጣጫዎች ምንም ፍጥነት አይጨምርም ፣ ስለዚህ ቦርዱ ቋሚ ሆኖ ይቆያል።

ኮዱን ከገለበጡ በኋላ ኮዱን ለመገንባት እና ለማሄድ F5 ን ይጫኑ። ወደ አንድነት ይመለሱ እና የመጫወቻ ቁልፍን ይጫኑ ፣ ተጫዋች 1 ግራን ሲጫኑ ቀኝ እና ግራ ሲጫኑ ወደ ቀኝ መንቀሳቀስ አለበት።

አሁን ፣ ተመሳሳይ እርምጃዎችን አንድ ጊዜ እንደገና ያድርጉ ፣ ግን በአጫዋች 2 እና በ player1_motion ምትክ በ ‹ክፍል አክል› ተጫዋች2_ሞሽን ውስጥ መጻፍዎን ያረጋግጡ እና ሁለተኛው ተቆጣጣሪ የተገናኘበትን ሁለተኛውን የ COM ወደብ ለመለየት ፣ ተመሳሳይ ተከታታይ ወደብ አይደለም።

እንዲሁም በኮድ ራሱ ውስጥ “የሕዝብ ክፍል ተጫዋች1_እንቅስቃሴ ሞኖባህሪዮርን” ወደ “የህዝብ ክፍል ተጫዋች 2_ሞሽን ሞኖባህሪየር” መቀየር ያስፈልግዎታል።

ደረጃ 5 ኳሱን ማከል

ኳሱን ማከል
ኳሱን ማከል
ኳሱን ማከል
ኳሱን ማከል
ኳሱን ማከል
ኳሱን ማከል
  1. አዲስ የጨዋታ ነገር ያክሉ ፣ ግን በዚህ ጊዜ ከካሬ ይልቅ ክበብ ይምረጡ።
  2. “ኳስ” ብለው እንደገና ይሰይሙት።
  3. ይጎትቱ እና በተዋረድ ውስጥ ይጣሉ።
  4. ልኬቱን ያስተካክሉ (X: 0.2 - Y: 0.2 - Z: 0.2)።
  5. Rigidbody 2D ን ይጨምሩ እና የ Z ዘንግን ብቻ ያቀዘቅዙ።
  6. ክብደቱን ወደ 0.0001 ይለውጡ
  7. የስበት ደረጃን ወደ 0 ይለውጡ።
  8. የሳጥን መጋጠሚያ 2 ዲ ያክሉ።
  9. ወደ ንብረቶች> ፍጠር> የፊዚክስ ቁሳቁስ ይሂዱ 2D ስዕል 1 ን ይመልከቱ
  10. ስሙን ወደ “መነሳት” ይለውጡ
  11. ግጭቱን ከተቆጣጣሪው ወደ ዜሮ ይለውጡ
  12. ከተቆጣጣሪው ወደ ጎበዝነት ወደ 1 ይለውጡ
  13. ይጎትቱ እና ወደ “Rigidbody 2D> ቁሳዊ” ስዕል 2 ይመልከቱ
  14. ከተዋረድ ውስጥ እንደገና “ኳስ” ን ይምረጡ እና አካል ለማከል ይሂዱ እና የ Ball_movement ን ይተይቡ ከዚያም አስገባን ይጫኑ።
  15. በስክሪፕቱ ላይ በቀኝ ጠቅ ያድርጉ እና የአርትዕ ስክሪፕት ይምረጡ።
  16. ከዚህ በታች ያለውን ኮድ ይቅዱ እና ለመገንባት እና ለማስኬድ F5 ን ይጫኑ።

ኮድ ፦

ስርዓትን በመጠቀም ስብስቦችን;

System. Collections. Generic ን በመጠቀም። UnityEngine ን በመጠቀም; የህዝብ ክፍል Ball_movement: MonoBehaviour {// ጅምር ከመጀመሪያው ክፈፍ ዝመና የግል ተንሳፋፊ ኃይል = 2 በፊት ይጠራል። ባዶነት ጀምር () {StartCoroutine (አንቀሳቅስ ()); } የአሃዛዊ እንቅስቃሴ () {ምርት ተመላሽ አዲስ WaitForSeconds (2) ፤ GetComponent () AddForce (አዲስ Vector2 (1f ፣ 0.5f)*0.02f*ኃይል); }}

ኮድ 'ማብራሪያ

ይህ ኮድ ኳሱን በሁለቱም አቅጣጫዎች የ X አቅጣጫውን እና የ Y አቅጣጫውን በተመሳሳይ መጠን ይሰጣል ፣ ይህም ኳሱ በ 45 ° አንግል እንዲንቀሳቀስ ያደርገዋል። በደረጃ 8 ውስጥ የፊዚክስ ቁሳቁስ ወደ ኳሱ አክለናል እና የእሷን ጎበዝነት ቀይረናል ፣ ይህ የኳሱን እንቅስቃሴ ከጨዋታው ውጭ ያቆያል።

ደረጃ 6: ጨዋታውን ማጠናቀቅ

ጨዋታውን ማጠናቀቅ
ጨዋታውን ማጠናቀቅ
ጨዋታውን ማጠናቀቅ
ጨዋታውን ማጠናቀቅ
ጨዋታውን ማጠናቀቅ
ጨዋታውን ማጠናቀቅ
ጨዋታውን ማጠናቀቅ
ጨዋታውን ማጠናቀቅ

አሁን ሽንፈትን ማምጣት እንፈልጋለን ፣ ጨዋታውን ከሮጡ ኳሱ ተጫዋች 1 ወይም ተጫዋች 2 ሲያልፍ ልክ ከድንበር እንደሚወጣ እና በእኛ ጨዋታ ውስጥ የምንፈልገው በትክክል እንዳልሆነ ያስተውላሉ። ይልቁንም ኳሱ ከላይ ወይም ታች ድንበሮች ጋር በሚጋጭበት እያንዳንዱ ጊዜ ውጤቱን የሚቆጥር የውጤት ቆጣሪ ማድረግ እና የኳሱን አቀማመጥ እንደገና ማስጀመር እንፈልጋለን።

  1. ኳሱን ከተዋረድ ወደ ፕሮጀክት ይጎትቱ እና ይጣሉ ፣ በኋላ እንዲጠቀሙበት የኳሱን ቅድመ -ዝግጅት አድርገዋል።
  2. በደረጃው ላይ በቀኝ ጠቅ ያድርጉ እና ባዶ ይፍጠሩ የሚለውን ይምረጡ። ባዶ ነገር ይታያል ፣ እንደገና ወደ ኳስ እንደገና ይለውጡት እና ቦታውን ከኳሱ አቀማመጥ ጋር ተመሳሳይ ያደርገዋል።
  3. በተዋረድ ላይ በቀኝ ጠቅ ያድርጉ እና በይነገጽ >> ጽሑፍን ይምረጡ። ጽሑፉ ከሸራ ጋር አብሮ እንደሚሄድ ልብ ይበሉ በጨዋታው ውስጥ ያለው የጽሑፍ አቀማመጥ በጨዋታችን ድንበሮች ላይ ሳይሆን በሸራ ውስጥ ባለው የጽሑፍ አቀማመጥ ላይ የተመሠረተ ነው። (ምስል 1 ን ይመልከቱ)።
  4. የጽሑፉን አቀማመጥ ወደሚፈልጉበት ቦታ ይለውጡ።
  5. ለሁለተኛው ተጫዋች ውጤት ደረጃ 3 እና 4 ን እንደገና ይድገሙ።
  6. የመጀመሪያውን ጽሑፍ “ተጫዋች 1 ውጤት 0” ን ይተይቡ እና በሁለተኛው ጽሑፍ ውስጥ “ተጫዋች 2 ነጥብ 0” ብለው ይተይቡ። (ሥዕል 2 ን ይመልከቱ)።
  7. ከላይ ባለው ድንበር ውስጥ p1wins ተብሎ የሚጠራ ስክሪፕት ይፍጠሩ እና የሚከተለውን ኮድ ይቅዱ።

ኮድ ፦

ስርዓትን በመጠቀም ስብስቦችን;

System. Collections. Generic ን በመጠቀም። UnityEngine ን በመጠቀም; UnityEngine. SceneManagement ን በመጠቀም; UnityEngine. UI ን በመጠቀም; የሕዝብ ክፍል p1 ያሸንፋል ሞኖባህሪዩ {የሕዝብ ጽሑፍ ውጤት ፤ የህዝብ ትራንስፎርሜሽን ኳስ_አድስ; የህዝብ GameObject ኳስ; የግል int p1 = 0; // የመጀመሪያው ፍሬም ዝመና ባዶ ከመሆኑ በፊት ጅምር ይባላል () {} // ዝማኔ በአንድ ፍሬም ባዶ (ዝማኔ) አንድ ጊዜ ተዘምኗል () {score.text = "Player 1 Score:" + p1; } ባዶነት OnCollisionEnter2D (Collision2D ሌላ) {ከሆነ (other.gameObject.tag == "ኳስ") {አጥፋ (ሌላ.gameObject); p1 ++; Instantiate (ኳስ ፣ ኳስ_respawn.position ፣ ball_respawn.rotation); }}}

8. የቅድመ ዝግጅት ኳሱን ከፕሮጀክቱ በደረጃ 1 ወደ ኳስ ልኬት ይጎትቱ እና ይጣሉ። (ምስል 3 ይመልከቱ)

9. የተመለሰውን ኳስ ከተዋረድ ወደ ኳስ-ዳግም ማወዳደሪያ መለኪያ ይጎትቱ እና ይጣሉ። (ምስል 3 ይመልከቱ)

10. የተጫዋች 1 ውጤት ከተዋረድ ወደ የውጤት ልኬት ይጎትቱ እና ይጣሉ። (ምስል 3 ይመልከቱ)

የኮድ ማብራሪያ;

ኳሱ ከላይኛው ድንበር ጋር ሲጋጭ ያጠፋል እና በደረጃ 2 ላይ በተመደብነው የኳስ -ቦታው ቦታ ላይ እንደገና ያድሳል። ኳሱን ቀዳሚ የማድረግ ዓላማ ኳሱን ከተጠቀምን በሁሉም ባህሪያቱ እንደገና ማስመለስ መቻል ነው። ከተዋረድ እንደገና ያድሳል ግን አይንቀሳቀስም። እንዲሁም ኳሱ ከላይኛው ድንበር ጋር ሲጋጭ p1 ተብሎ የሚጠራው እሴት በ 1 ይጨምራል በ 1. ይህ እሴት እንደ ጽሑፍ ይታያል ስለዚህ ኳሱ ከላይኛው ድንበር ጋር ሲጋጭ የተጫዋች 1 ውጤት በ 1 ይጨምራል።

አሁን ለታችኛው ድንበር ደረጃ 7 ፣ 8 ፣ 9 እና 10 ያድርጉ

ለደረጃ 7 p2wins የተባለ ስክሪፕት ይፍጠሩ እና በምትኩ የሚከተለውን ኮድ ይቅዱ።

ለደረጃ 10 ፣ ተጫዋች 2 ነጥብን ከተዋረድ ወደ የውጤት ልኬት ይጎትቱ እና ይጣሉ።

ኮድ ፦

ስርዓትን በመጠቀም ስብስቦችን;

System. Collections. Generic ን በመጠቀም። UnityEngine ን በመጠቀም; UnityEngine. SceneManagement ን በመጠቀም; UnityEngine. UI ን በመጠቀም; የሕዝብ ክፍል p2 ያሸንፋል ሞኖባህሪዩ {የሕዝብ ጽሑፍ ውጤት ፤ የህዝብ ትራንስፎርሜሽን ኳስ_አድስ; የህዝብ GameObject ኳስ; የግል int p2 = 0; // ጅምር የሚጠራው የመጀመሪያው የክፈፍ ዝመና ባዶ ከመሆኑ በፊት () {} // ዝማኔ በአንድ ፍሬም ባዶ (ዝማኔ) አንድ ጊዜ ይባላል () {score.text = "Player 2 Score:" + p2; } ባዶነት OnCollisionEnter2D (Collision2D ሌላ) {ከሆነ (ሌላ.gameObject.tag == "ኳስ") {አጥፋ (ሌላ.gameObject); p2 ++; ፈጣን (ኳስ ፣ ኳስ_respawn.position ፣ ball_respawn.rotation); }}}

የሚመከር: