9Nov

რევოლუციონერი: ფრთხილად! დე ბლობი

ყოველ სამშაბათს მაიკ სილვესტერი მოგყავს რევოლუციონერი, გადახედეთ Wii-ს შესაძლებლობების ფართო სამყაროს.

დე ბლობი ბევრს იღებდა გაშუქება აქ ამ ბოლო დროს, რადგან ეს იყო გამოაცხადა რომ უფასო კომპიუტერის თამაში გზას გაივლის ჩვენს საყვარელ კონსოლში. პირველად გავიგე თამაშის შესახებ რამდენიმე თვის წინ და მეჩვენებოდა, რომ მას შეეძლო ჩემი Wiimote-ისთვის საინტერესო თამაშის აღწერა კატამარი. მე მივხვდი, რომ ეს კვირა ხელსაყრელი დრო იქნებოდა დასრულებისთვის სკრიპტირება პროექტი, რომელიც მაშინ დავიწყე და წარმოვადგინე ტექნიკოლორის ამ ჟელატინის ბურთის სცენარი.

თავდაპირველად ჩაფიქრებული იყო უტრეხტის ხელოვნების სკოლისა და უტრეხტის უნივერსიტეტის სტუდენტების მიერ, დე ბლობი იყო განვითარებული სულ რაღაც ოთხ თვეში 9 კაციანი გუნდი თავისუფალ საათებში. პროექტი დაიწყო როგორც კომისია, რათა ეჩვენებინა, როგორი შეიძლება გამოიყურებოდეს უტრეხტის სადგურის რეგიონი მიმდინარე გაახალგაზრდავების პროცესის დასრულების შემდეგ. ამ სრული თამაშით შეგიძლიათ ისიამოვნოთ საათობით და თავისუფლად არის ხელმისაწვდომი ჩამოტვირთვა. ინსტალერი იწონის მხოლოდ 99 მბ-ს, მაშინ როცა თანამედროვე 1 დონის დემოს უმეტესობა ასობით მიგები და მეგები უფრო დიდი.

ეს არის უდანაშაულო (თუ შეგიძლიათ პასიური ხალხმრავალის ასიმილაციას თქვენს ამორფულ მასაში "უდანაშაულო" უწოდოთ) სავარჯიშო თამაში, რომელიც ხანდახან ცოტა ოსტატობას მოითხოვს. თქვენ ტრიალდებით, შთანთქავთ ადამიანების ფერად არსს და გადასცემთ მას შენობებზე, ხეებსა და მანქანებზე, რომლებთანაც შეხდებით. თქვენ გააუმჯობესებთ თქვენს პლატფორმის უნარებს, რათა შეეცადოთ მიაღწიოთ ზოგიერთ სამიზნესა და მონეტას მაღალსართულიან შენობებზე. ხანდახან დაგჭირდებათ სიზუსტე I.N.K.T-ის გადასასვლელად. აგენტები, ან იმისთვის, რომ არ ჩავარდეთ წყალში და არ ჩამოირეცხოთ ის ელფერი, რომელიც თქვენ შეიძინეთ უბედურ მოქალაქეებზე გადახვევის შედეგად.

მე მქონდა წინასწარ წარმოდგენა იმის შესახებ, თუ როგორ იყო Wii პორტი დე ბლობი გამოიყურებოდა და ითამაშებდა, მაგრამ მხოლოდ პირველი ვიდეოს გამოქვეყნებამდე მივხვდი, რამდენად შორს ვიყავი. The კომპიუტერი და Wii თამაშის ვერსიები ფუნდამენტურად განსხვავებულია, რაც მშვენიერია, რადგან, მიუხედავად იმისა, რომ პერსონალური კომპიუტერზე თამაშია, შეუძლებელი იქნება Wii თამაშების სტანდარტული ტემპით გაყიდვა. გარდა ამისა, ჩვენ გვექნება გამორჩეული გამოცდილება Wiimote-ით გაფორმებული კომპიუტერის ვერსიისა და ოფიციალური Wii ვერსიის თამაშისას. ჩვენ ვართ Wii Fanboys, რადგან გვჯერა ამის მეტი რაგაც განსხვავებული უკეთესია, ვიდრე მეტი Theიგივე.

შემდეგი კოდი გამოიყენება თამაშში მენიუებისა და პარამეტრების გასავლელად. თამაში ასევე პასუხობს მენიუში მაუსის შეყვანას, ასე რომ თქვენ ასევე შეძლებთ კონტროლერის დახრილობას მენიუს არჩევისთვის, თუმცა D-pad არ დააბრუნებს თქვენს Blob-ს თამაშის დროს.

Გასაღები. გაქცევა = Wiimote. მთავარი//მენიუ უკან, ქალაქის რუკა
მაუსი. LeftButton = Wiimote. ორი ან Wiimote. ზევით//ირჩევს მარცხენა ვარიანტს, Blob jump
მაუსი. RightButton = Wiimote. ერთი ან Wiimote. ქვემოთ//ირჩევს სწორ ვარიანტს, ქალაქის რუკას
ზემოთ = Wiimote. უფლება//მენიუ
ქვემოთ = Wiimote. მარცხენა//მენიუ ქვემოთ


ვინაიდან ეს სკრიპტი იკავებს თქვენს მაუსის მაჩვენებელს, შეიძლება ცოტა რთული იყოს თამაშის დაწყება ან სკრიპტის შეჩერება მისი გაშვების შემდეგ. ჩვენ გამოვიყენებთ მალსახმობებს ორივე ფუნქციის დასამუშავებლად და საქმეს ცოტათი გაადვილებთ. მათი მინიჭება "დაწკაპუნებით" პლუს და მინუს ღილაკებზე ხელს უშლის ამ მალსახმობების შემთხვევით გააქტიურებას.

Shift + P + I + E = Wiimote. მინუს//აჩერებს სკრიპტს
Ctrl + Alt + E = Wiimote. პლუს//სტარტს დე ბლობ

ეს არ არის განსაკუთრებით ლამაზი, მაგრამ კოდის ეს პატარა ხაზი განათებს LED- ებს ისე, რომ ისინი ჩვეულებრივ სკრიპტის გაშვების მიღმა არ გამოირჩეოდნენ. გირჩევთ ჩააგდოთ მსგავსი რამ, თუ თქვენ აპირებთ გამოიყენოთ თქვენი სკრიპტის დემო ჩაწერას. მიმაჩნია, რომ ეს მეხმარება მსმენელების გაჩუმებაში.

ვიიმოტი. LED-ები = 9

ახლა ჩვენ ვაპირებთ შევქმნათ ცვლადები ფიქსირებული რიცხვებისთვის, რადგან ეს რიცხვები გამოყენებული იქნება მთელ სკრიპტში. იმის ნაცვლად, რომ შევცვალოთ ეს რიცხვი სკრიპტის ყველა ადგილას, ჩვენ ნებას ვაძლევთ პროგრამას ამის გაკეთება ჩვენთვის ცვლადის მინიჭებით.

ვარ. Xres = 1776 წ//შეცვალეთ ეს რიცხვი ეკრანის ჰორიზონტალურ გარჩევადობაზე
ვარ. Yres = 1000//შეცვალეთ ეს რიცხვი ეკრანის ვერტიკალურ გარჩევადობაზე

იმისათვის, რომ დისტანციური მართვის დახრილობა გადაითარგმნოს მაუსის მოძრაობებად, რომელსაც თამაში ეძებს, უნდა ვუთხრათ GlovePIE-ს, რომ "მაუსი = Wiimote". მაგრამ ჩვენ ვიყენებთ რუქის დიაპაზონი ფუნქციასთან ერთად გლუვი ფუნქცია Wiimote-ის ბრუნვის შედარებით დაბალი დინამიური დიაპაზონის შესაყვანად, რომელიც შეუფერხებლად არის ინტერპრეტირებული, როგორც ზედაპირზე მოძრავი თაგვის მაღალი დინამიური დიაპაზონი.

თუ Wiimote. მოედანი < -1 ან > 1//Wiimote-ს "NES-style"-ის ჩატარებისას, მარცხნივ ან მარჯვნივ დახრილობა იწვევს შემდეგს:
მაუსი. DirectInputX = MapRange (გლუვი (მაუსი. DirectInputX + Wiimote. მოედანი), -90 გრადუსი, 90 გრადუსი, 0, ვარ. Xres)
Დაასრულე თუ//ამთავრებს განცხადებას

თუ Wiimote. რულეტი < -1 ან > 1 //Wiimote "NES-style"-ის ტარებისას, წინ ან უკან დახრილობა იწვევს შემდეგს:
მაუსი. DirectInputY = MapRange (გლუვი (მაუსი. DirectInputY + Wiimote. რულონი), 45 გრადუსი, -45 გრადუსი, 0, ვარ. დიახ)
Დაასრულე თუ
//ამთავრებს განცხადებას

შემდეგი კოდის გარეშე, პროგრამა შეწყვეტს რეაგირებას, როგორც კი 45 გრადუსს გადახრით წინ ან უკან, და თქვენი Blob თავის გზაზე გაჩერდება. ეს იწვევს თქვენ უნდა გააფართოვოს კონტროლერი, რათა შეინარჩუნოს თქვენი Blob მოძრავი. მიუხედავად იმისა, რომ ეს არის უნიკალური სახის გართობა, როგორც ხედავთ ზემოთ მოცემულ ვიდეოში, ეს ცოტა მეტი აქტივობაა, ვიდრე ის, რისკენაც ჩვენ ვზრუნავთ. რა თქმა უნდა, თუ ასე გამოიყურება თქვენი იდეა კარგი დროის შესახებ, შეგიძლიათ დატოვოთ კოდი ისე, როგორც არის და დახატოთ ქალაქი!

ჩვენ დავამატებთ რამდენიმე ცვლადს, რათა შევცვალოთ საზღვრები, რომლებზეც მაუსის გამომავალი იქნება. იმის ნაცვლად, რომ მივიდეთ რიცხვამდე და გავაჩეროთ, ის გაგრძელდება, ასე რომ, ჩვენ მოგვიწევს შევცვალოთ კოდის რამდენიმე ხაზი, რომელიც ახლახან დავწერეთ, სანამ გავაგრძელებთ.

თუ Wiimote. მოედანი < -1 ან > 1//Wiimote-ს "NES-style"-ის ჩატარებისას, მარცხნივ ან მარჯვნივ დახრილობა იწვევს შემდეგს:
მაუსი. DirectInputX = MapRange (გლუვი (მაუსი. DirectInputX + Wiimote. მოედანი), -45 გრადუსი, 45 გრადუსი, ვარ. XMinus, var. XPlus)
Დაასრულე თუ
//ამთავრებს განცხადებას

თუ Wiimote. რულეტი < -1 ან > 1 //Wiimote "NES-style"-ის ტარებისას, წინ ან უკან დახრილობა იწვევს შემდეგს:
მაუსი. DirectInputY = MapRange (გლუვი (მაუსი. DirectInputY + Wiimote. რულონი), 25 გრადუსი, -25 გრადუსი, ვარ. YMinus, var. YPlus)
Დაასრულე თუ//ამთავრებს განცხადებას

ჩვენ ასევე შევამცირეთ დიაპაზონი, რომლის ფარგლებშიც ხდება ხელახალი რუქას გამოყენება, ისე, რომ არ მოგვიწიოს შორს დახრილობა, რომ ავტომატური გორგოლაჭის ჩართვა მოხდეს.

თუ Wiimote. სიმაღლე > 45//ამოწმებს არის თუ არა Wiimote დახრილი 45 გრადუსზე მეტი მარჯვნივ
ვარ. XPlus = (var. XPlus + 10) % var. Xres
//იზრდება 10-ით, სანამ არ მიაღწევს ჩვენს მიერ დაყენებულ ჰორიზონტალურ რეზოლუციას, შემდეგ გადადის 0-ზე
სხვა //თუ Wiimote არ არის დახრილი 45 გრადუსზე მეტი მარჯვნივ
ვარ. XPlus = var. Xres //ეს ცვლადი დაყენდება ისე, რომ ტოლი იყოს ჩვენ მიერ დაყენებული ჰორიზონტალური გარჩევადობა
Დაასრულე თუ//ამთავრებს განცხადებას

თუ Wiimote. მოედანი < -45 //ამოწმებს არის თუ არა Wiimote დახრილი მარცხნივ 45 გრადუსზე მეტი
ვარ. Xმინუს = (ვარ. Xმინუს - 10) % ვარ. Xres//მცირდება 10-ით, სანამ არ მიაღწევს ჩვენ მიერ დაყენებულ ჰორიზონტალურ რეზოლუციას, შემდეგ გადავა 0-ზე
სხვა //თუ Wiimote არ არის დახრილი 45 გრადუსზე მეტი მარცხნივ
ვარ. Xმინუს = 0 //ეს ცვლადი დაყენდება 0-ზე
Დაასრულე თუ//ამთავრებს განცხადებას

თუ Wiimote. რულონი > 25 //ამოწმებს არის თუ არა Wiimote 25 გრადუსზე მეტი წინ გადახრილი
ვარ. YPlus = (var. YPlus + (var. YPlus * .2)) % var. ირეს//იზრდება 20%-ით, სანამ არ მიაღწევს ჩვენ მიერ დაყენებულ ვერტიკალურ გარჩევადობას, შემდეგ გადადის 0-ზე
სხვა//თუ Wiimote არ არის დახრილი 25 გრადუსზე მეტი წინ
ვარ. YPlus = var. ირეს //ეს ცვლადი დაყენდება ისე, რომ ტოლი იყოს ჩვენ მიერ დაყენებული ვერტიკალური გარჩევადობა
Დაასრულე თუ
//ამთავრებს განცხადებას

თუ Wiimote. რულეტი < -25 //ამოწმებს, არის თუ არა Wiimote 25 გრადუსზე მეტი დახრილი უკან
ვარ. YMinus = (ვარ. YMinus - (ვარ. YMinus * .2)) % var. ირეს
//მცირდება 20%-ით, სანამ არ მიაღწევს ჩვენ მიერ დაყენებულ ვერტიკალურ გარჩევადობას, შემდეგ გადავა 0-ზე
სხვა
//თუ Wiimote არ არის დახრილი 45 გრადუსზე მეტი უკან
ვარ. YMinus = 0
//ეს ცვლადი დაყენდება 0-ზე
Დაასრულე თუ
//ამთავრებს განცხადებას

ახლა ჩვენ გვაქვს კრუიზ კონტროლი! ამ ეტაპზე, სკრიპტს ბევრი ადგილი აქვს გასაუმჯობესებლად. თავისუფლად სცადეთ ის, მიეცით კოდი თქვენი პირადი შეხება და გააზიარეთ თქვენი სკრიპტები კომენტარებში.