Monday, April 27, 2015

Lesson 16 : Making a Game using Scratch






presentation mode ലേക്ക് മാറി (full screen ആക്കിയതിനുശേഷം) green ബട്ടണില്‍ click ചെയ്യുന്നതോടെ ഗെയിം ആരംഭിക്കും. Red കളറില്‍ കാണുന്ന Bricks കളില്‍ Ball (Green കളറില്‍ കാണുന്ന വൃത്തം) വന്നു തട്ടുമ്പോള്‍ അവ അപ്രത്യക്ഷമാകും.   Ball താഴേക്ക് വരുമ്പോള്‍ Yellow  കളറില്‍ കാണുന്ന പ്രതലത്തില്‍ (Ground) തട്ടുന്നതിനു മുമ്പ് Blue  കളറില്‍ കാണുന്ന ബാറ്റുകൊണ്ട്  കീ ബോര്‍ഡിലെ ആരോ കീ കളുപയോഗിച്ച്  Ball നെ തടയണം.   Ball Yellow  കളറില്‍ കാണുന്ന പ്രതലത്തില്‍ തട്ടിയാല്‍ നിങ്ങള്‍ കളിയില്‍ പരാജയപ്പെട്ടു.    Red കളറില്‍ കാണുന്ന എല്ലാ Bricks കളേയും അപ്രത്യക്ഷമാക്കിയാല്‍ നിങ്ങള്‍ കളിയില്‍ ജയിച്ചു.

    ഈ ഗെയിം Scratch സോഫ്‌റ്റ്‌വെയര്‍ ഉപയോഗിച്ച്  തയ്യാറാക്കുന്ന തെങ്ങനെയെന്ന് നോക്കാം.

Section 1:




Step1. Scratch സോഫ്റ്റ്‌വെയര്‍ തുറന്ന് Stage ല്‍ കാണുന്ന Sprite1 നെ delete ചെയ്യാം.(Right click on Sprite1 --> delete)


Step2.  Paint new sprite സെലക്‌ട് ചെയ്താല്‍ ചിത്രങ്ങള്‍ വരയ്ക്കുന്നതിനുള്ള Paint Editor ജാലകം തുറന്നുവരും. 


Rectangle ടൂള്‍ സെലക്‌ട് ചെയ്ത് ഒരു ചതുരം വരച്ച് OK ബട്ടണില്‍ ക്ലിക്ക് ചെയ്താല്‍ sprite1 എന്ന പേരോടുകൂടിയ ചതുരം സ്റ്റേജില്‍ വന്നിട്ടുണ്ടാകും.    ഇതുപോലെ നമുക്കാവശ്യമായ ഒബ്‌ജക്‌ടുകള്‍ സ്‌റ്റേജില്‍ ഒരുക്കി വയ്ക്കാം.  ഇവയ്ക്ക് അനുയോജ്യമായ പേരുകളും നല്‍കാം.

sprite 1 :  Yellow colour rectangle : Ground
sprite 2 :  Blue colour rectangle     : Bat
sprite 3 :  Green colour circle         : Ball
sprite 4 :  Red colour rectangle       : Brick 1




Step 3.  Block Palette --> Variables -->  Make a variable --> Variable name (speed) --> OK


Key Board ലെ ആരോ കീ കള്‍ (Left and Right arrow keys)  Press ചെയ്യുമ്പോള്‍ Bat (sprite 2 : Blue colour rectangle ) എന്ന ചതുരമാണ് ഇടത്തോട്ടും വലത്തോട്ടും നീങ്ങേണ്ടത്.  അതിനുള്ള പ്രോഗ്രമാണ് തയ്യാറാക്കേണ്ടത്.


Step 4.  sprite 2 സെലക്‌ട് ചെയ്തതിനു ശേഷം Block Palette ലെ Control ബ്ലോക്ക് സെലക്ട് ചെയ്‌ത് when clicked ബ്ലോക്കിനെ Script Editor ജാലകത്തിലേക്ക് വലിച്ചിടുക. (ഏത് sprite നേയാണ് സെലക്‌ട് ചെയ്തിരിക്കുന്നതെന്ന് സ്റ്റോജിനു താഴെയുള്ള ജാലകത്തില്‍ നിന്നും വ്യക്തമാകും)
Variables ബ്ലോക്ക് സെലക്ട് ചെയ്‌ത്  set speed to 0 ബ്ലോക്കിനേയും താഴെ കാണിച്ചിരിക്കുന്ന രീതിയില്‍ ക്രമീകരിക്കുക.


Step 5. control ബ്ലോക്കില്‍  നിന്നും forever, if else, if എന്നീ ബ്ലോക്കുകള്‍ script വിന്‍ഡോയിലേക്ക് drag ചെയ്ത് , forever ബ്ലോക്കിനുള്ളില്‍‌ if else ബ്ലോക്കും, if else ലെ  else നുള്ളിലായി  if ബ്ലോക്കും ക്രമീകരിക്കുക.


Step 6.  Sensing ബ്ലോക്കില്‍  നിന്നും key space pressed നെ drag ചെയ്ത് if else ലെ if നു നേരെയുള്ള ബോക്സില്‍ വെച്ചതിനുശേഷം space എന്നതിനു പകരം right  arrow സെലക്‌ട് ചെയ്യുക.

Step7.  Variables ബ്ലോക്കില്‍  നിന്നും change speed by 1 നെ drag ചെയ്ത് ചിത്രത്തില്‍ കാണുന്ന രീതിയില്‍ ക്രമീകരിക്കുക.

Step 8.  Operators ബ്ലോക്കില്‍  നിന്നും > (greater than) ബ്ലോക്ക് സെലക്‌ട് ചെയ്‌ത്  അതില്‍ speed > 0 എന്ന് നല്‍കിയ ശേഷം രണ്ടാമത്തെ if നു നേരെയുള്ള ബോക്സില്‍ വെക്കുക (speed എന്നതിനെ Variables ബ്ലോക്കില്‍ നിന്നും drag ചെയ്തെടുക്കണം).  താഴെ change speed by -1 നല്‍കുക.
Step 9.  Control ബ്ലോക്കില്‍ നിന്നും wait 2 secs നേയും ഉള്‍പ്പെടുത്തുക.



Step 10.  Control ബ്ലോക്കില്‍ നിന്നും when clicked, forever എന്നിവ ഒരു തവണ കൂടി ഉള്‍പ്പെടുത്തി, forever എന്നതില്‍ Motion ബ്ലോക്കില്‍ നിന്നും change x by 10 ഉള്‍പ്പെടുത്തി , 10 നു പകരം Variables ലെ speed നെ ഉള്‍പ്പെടുത്തുക.


Step 11.  Stage നു മുകളിലുള്ള  green flag ല്‍ ക്ലിക്കു ചെയ്തതിനുശേഷം കീ ബോര്‍ഡിലെ Right arrow key പ്രസ്സ് ചെയ്തു നോക്കൂ.  Sprite1       (ചതുരം) വലത്തുട്ടു നീങ്ങുന്നില്ലേ. Left arrow key പ്രസ്സ് ചെയ്യുമ്പോള്‍ Sprite1(ചതുരം) ഇടത്തോട്ടു നീങ്ങാന്‍ ആദ്യം തയ്യാറാക്കിയ scripts കളുടെ duplicate എടുത്ത് അതിലെ വിലകള്‍ മാറ്റിയാല്‍ മതി.




Section 2:

Step 1.   Sprite 3 (Green colour circle: Ball) നെ സെലക്‌ട് ചെയ്‌തതിനുശേഷം,  Control ബ്ലോക്കില്‍ നിന്നും when clicked; Motion  ബ്ലോക്കില്‍ നിന്നും point in direction,  go to x:   y: എന്നിവ ഉള്‍പ്പെടുത്തുക.

Step 2.  Operators ബ്ലോക്കില്‍ നിന്നും pick random 1 to 10  drag ചെയ്‌ത് മുകളിലെ  x വിലയ്ക്കു നല്‍കുക.  ഇതില്‍ 1 to 10 എന്നതിനു പകരം -150 to 150 ഉം y വില15ഉം നല്‍കുക.

Step 3.  Control ബ്ലോക്കില്‍ നിന്നും wait 1 secs, forever എന്നിവ ഉള്‍പ്പെടുത്തി, forever എന്നതില്‍ Motion  ബ്ലോക്കില്‍ നിന്നും move 10 steps, if on edge bounce എന്നിവ കൂടി ഉള്‍പ്പെടുത്തിയതിനു ശേഷം Stage നു മുകളിലുള്ള  green flag ല്‍ ക്ലിക്കു ചെയ്തുനോക്കൂ.



ഇപ്പോള്‍ വൃത്തം (Sprite3 : Ball) എല്ലാ അരികിലും വന്ന് bounce ചെയ്‌തു പോകുന്നതായി കാണാം. എന്നാല്‍ നമ്മള്‍ ആദ്യം തയ്യാറാക്കിയ ചതുരത്തെ സ്പര്‍ശിക്കുന്നതായി കാണുന്നില്ല.

Step 4.  Control ബ്ലോക്കില്‍ നിന്നും when clicked, forever, if ഉള്‍പ്പെടുത്തുക.  Sensing ബ്ലോക്കില്‍ നിന്നും touching ഡ്രാഗ് ചെയ്‌ത് if  നു നേരെയുള്ള ബോക്സില്‍ ഉള്‍പ്പെടുത്തി അതില്‍ Bat (sprite2) നെ ഉള്‍പ്പെടുത്തുക.  Motion ബ്ലോക്കില്‍ നിന്നും point in direction ഡ്രാഗ് ചെയ്‌ത് if  നു താഴെ വയ്ക്കുക.  Operators ബ്ലോക്കില്‍ നിന്നും *, + (Multiplication, Addition) എന്നിവ ഡ്രാഗ് ചെയ്‌ത് അതില്‍ direction * -1 + 180 എന്ന് ഉള്‍പ്പടുത്തിയതിനു ശേഷം  point in direction ന്റെ വിലയായി നല്‍കുക.(ഇവിടെ direction എന്നത് Motion ബ്ലോക്കില്‍ നിന്നും സെലക്‌ട് ചെയ്യണം.).  


green flag ല്‍ ക്ലിക്കു ചെയ്‌ചതുനോക്കൂ.

Section 3:

Step 1.  Variables -->  Make a variable --> Variable name (score) --> OK

Step 2.  Sprite 4 (Red colour rectangle : Brick 1) നെ സെലക്‌ട് ചെയ്‌തതിനുശേഷം,  Control ബ്ലോക്കില്‍ നിന്നും when clicked; Looks ബ്ലോക്കില്‍ നിന്നും show എന്നിവ ഉള്‍പ്പെടുത്തുക. 

Step 3.  Control ബ്ലോക്കില്‍ നിന്നും forever, if എന്നിവ ഉള്‍പ്പെടുത്തിയതിനുശേഷം, Sensing ബ്ലോക്കില്‍ നിന്നും touching ഡ്രാഗ് ചെയ്‌ത് if  നു നേരെയുള്ള ബോക്സില്‍ ഉള്‍പ്പെടുത്തി അതില്‍ Ball നെ ഉള്‍പ്പെടുത്തുക. 

Step 4.  തുടര്‍ന്ന് Looks ബ്ലോക്കില്‍ നിന്ന് hide ഉം Variables ബ്ലോക്കില്‍ നിന്ന് chabge score by 1 ഉം ക്രമീകരിക്കുക.


Step 5.   Sprite 4 (Red colour rectangle : Brick 1) ന്റെ ധാരാളം ഡ്യൂപ്ലിക്കേറ്റുകള്‍ എടുക്കാം. ( Right click on Sprite 4 --> duplicate).  ഇവിടെ 9 ഡ്യൂപ്ലിക്കേറ്റുകള്‍ എടുത്തിട്ടുണ്ട്. ആകെ 10 കട്ടകള്‍ (Bricks)

Step 6. Sprite 2 (Bat) സെലക്‌ട് ചെയ്തതിനുശേഷം  താഴെ കൊടുത്ത സ്‌ക്രിപ്‌റ്റുുകള്‍ കൂടി നല്‍കുക.




Step 7.  Ground (sprite 1 :  Yellow colour rectangle) സെലക്‌ട് ചെയ്‌തതിനുശേഷം താഴെ കൊടുത്ത സ്‌ക്രിപ്‌റ്റുകള്‍ കൂടി നല്‍കുക.



Step 8.   Paint new sprite --> Text tool --> Type the text (You wins !!!!!  ) --> OK  (Sprite10)

Step 9.   Paint new sprite --> Text tool --> Type the text (You Failed.  Try Again....  ) --> OK   (Sprite11)

ഇപ്പോള്‍ സ്‌റ്റേജില്‍ പുതിയ രണ്ട് sprite കള്‍ (Sprite10, sprite11 : Text ) വന്നിട്ടുണ്ടാകും.


Step 10.  Select Sprite11 (You Wins  Text)  സെലക്‌ട് ചെയ്തതിനുശേഷം  താഴെ കൊടുത്ത സ്‌ക്രിപ്‌റ്റുകള്‍ കൂടി നല്‍കുക.


Step 11.  Select Sprite12 (You Failed  Text)  സെലക്‌ട് ചെയ്തതിനുശേഷം  താഴെ കൊടുത്ത സ്‌ക്രിപ്‌റ്റുകള്‍ കൂടി നല്‍കുക.

ഇതോടെ നമ്മുടെ  scratch ഗെയിം നിര്‍മ്മാണം പൂര്‍ത്തിയായി. presentation mode ലേക്ക് മാറി green ബട്ടണില്‍ click ചെയ്ത് ഗയിം പ്രവര്‍ത്തിപ്പിച്ചു നോക്കൂ.