ძირითადი მასალა
კომპიუტერული პროგრამირება
კურსი: კომპიუტერული პროგრამირება > თემა 5
გაკვეთილი 8: ნაწილაკთა სისტემები- შესავალი ნაწილაკთა სისტემებში
- მხოლოდ ერთი ნაწილაკი
- გამოწვევა: დაცვენილი ფოთლები
- ნაწილაკთა სისტემა
- გამოწვევა: თევზის ბუშტუკები
- ნაწილაკთა სისტემების სისტემები
- გამოწვევა: ცეცხლის წამკიდებელი
- ნაწილაკთა ტიპები
- გამოწვევა: ჯადოსნური ქვაბი
- ნაწილაკთა სისტემები და ძალები
- გამოწვევა: მდინარის ქვები
- პროექტი: არსებათა კოლონიები
© 2023 Khan Academyგამოყენების პირობებიკონფიდენციალურობის პოლიტიკაშენიშვნა ქუქი-ჩანაწერებზე
ნაწილაკთა სისტემების სისტემები
მოდით, მიმოვიხილოთ, სად ვართ. ვიცით, როგორ ვილაპარაკოთ ცალკეული Particle ობიექტის შესახებ. აგრეთვე ვიცით, როგორ ვილაპარაკოთ
Particle
ობიექტების სისტემაზე და მას „ნაწილაკების სისტემას" ვუწოდებთ. ჩვენ განვსაზღვრეთ ნაწილაკების სისტემა დამოუკიდებელი ობიექტების კოლექციად. მაგრამ თვითონ ნაწილაკების სისტემა განა ობიექტი არ არის? თუ ასეა (და ასეა), მაშინ შეგვიძლია, გვქონდეს ნაწილაკების ბევრი სისტემის კოლექცია, ანუ, სისტემების სისტემა.ამგვარმა ფიქრმა შეიძლება, ჩვენ კიდევ უფრო შორს წაგვიყვანოს და თქვენ შეიძლება, ოთახში ჩაიკეტოთ დღეებით და ქმნიდეთ დიაგრამებს სისტემების სისტემების სისტემების სისტემების სისტემების სისტემებზე. სამყაროში ასე ხდება. ორგანო არის უჯრედების სისტემა, ადამიანის ორგანიზმი არის ორგანოების სისტემა, სამეზობლო არის ადამიანთა სხეულების სისტემა, ქალაქი არის სამეზობლოების სისტემა და ა.შ. მართალია, ეს საინტერესო გზაა, მაგრამ ის ახლა ჩვენს საჭიროებებს მიღმაა. მიუხედავად ამისა, საკმაოდ გამოსადეგია ისეთი პროგრამის წერის ცოდნა, რომელიც თვალ-ყურს ადევნებს ნაწილაკების ბევრ სისტემას, რომელთაგან თითოეული ბევრ ნაწილაკს ადევნებს თვალ-ყურს. განვიხილოთ შემდეგი სიტუაცია:
- იწყებთ ცარიელი ეკრანით.
- აწკაპუნებთ მაუსზე და ქმნით ნაწილაკების სისტემას მაუსის მდებარეობის ადგილზე.
- ყოველ ჯერზე, როცა მაუსზე აწკაპუნებთ, იქმნება ახალი ნაწილაკების სისტემა მაუსის ადგილმდებარეობაზე.
თვითონ სცადეთ:
როგორ მივაღწევდით ამას კოდში? წინა პარაგრაფში ჩვენ შევინახეთ ერთი მიმთითებელი
ParticleSystem
ობიექტზე ცვლადში ps
.var ps = new ParticleSystem(new PVector(width/2, 50));
draw = function() {
background(50, 50, 50);
ps.addParticle();
ps.run();
};
ახლა გვაქვს მრავალი სისტემა, პოტენციურად მუდამ ზრდადი რიცხვი. ჩვენ არ გვსურს მათი ცაკლეულ ცვლადებში შენახვა. ამის ნაცვლად, გამოვიყენებთ მასივს ყველა სისტემისათვის თვალყურის სადევნებლად. პროგრამის დასაწყისში ის ცარიელი იქნება:
var systems = [];
როდესაც მომხმარებელი მაუსს დააჭერს, ახალი
ParticleSystem
იქმნება და ემატება მასივს:mousePressed = function() {
systems.push(new ParticleSystem(new PVector(mouseX, mouseY)));
};
და
draw()
-ში კონკრეტულ ParticleSystem
ობიექტზე მიმართვის ნაცვლად ჩვენ ახლა გადავუყვებით მასივში არსებულ ყველა სისტემას და ვიძახებთ run()
-ს თითოეულ მათგანზე.draw = function() {
background(50, 50, 50);
for(var i = 0; i < systems.length; i++){
systems[i].addParticle();
systems[i].run();
}
};
სცადეთ ეს თქვენით კიდევ ერთხელ ახლა უკვე კოდით, რომელიც ჩვენ დავწერეთ:
გსურთ, შეუერთდეთ დისკუსიას?
პოსტები ჯერ არ არის.