Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ Π·Π° ΠΌΠΎΡ Π»ΠΈΡΠ΅Π½ ΠΎΠΏΠΈΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ°Π»ΠΊΠ° ΠΈΠ³ΡΠ° Π² Rust. Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΡΠ° Π²Π΅ΡΡΠΈΡ ΠΎΡΠ½Π΅ ΠΎΠΊΠΎΠ»ΠΎ 24 ΡΠ°ΡΠ° (ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ°Π±ΠΎΡΠ΅Ρ
Π²Π΅ΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π· ΠΏΠΎΡΠΈΠ²Π½ΠΈΡΠ΅ Π΄Π½ΠΈ). ΠΠ³ΡΠ°ΡΠ° Π΄Π°Π»Π΅Ρ Π½Π΅ Π΅ Π·Π°Π²ΡΡΡΠ΅Π½Π°, Π½ΠΎ ΠΌΠΈΡΠ»Ρ, ΡΠ΅ ΠΎΠΏΠΈΡΡΡ ΡΠ΅ Π±ΡΠ΄Π΅ Π²ΡΠ·Π½Π°Π³ΡΠ°ΠΆΠ΄Π°Π²Π°Ρ. Π©Π΅ ΡΠΏΠΎΠ΄Π΅Π»Ρ ΠΊΠ°ΠΊΠ²ΠΎ Π½Π°ΡΡΠΈΡ
ΠΈ Π½ΡΠΊΠΎΠΈ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡ
, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΡΠ·Π΄Π°Π²Π°Ρ
ΠΈΠ³ΡΠ°ΡΠ° ΠΎΡ Π½ΡΠ»Π°ΡΠ°.
Skillbox ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°: ΠΠ²ΡΠ³ΠΎΠ΄ΠΈΡΠ΅Π½ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΡΡΡ
βΠΠ· ΡΡΠΌ PRO ΡΠ΅Π± ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊβ .ΠΠ°ΠΏΠΎΠΌΠ½ΡΠΌΠ΅ Π²ΠΈ: Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ Π½Π° "Habr" - ΠΎΡΡΡΡΠΏΠΊΠ° ΠΎΡ 10 000 ΡΡΠ±Π»ΠΈ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΠΊΡΡΡ Skillbox, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΡΠΎΠΌΠΎΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° "Habr".
ΠΠ°ΡΠΎ Rust?
ΠΠ·Π±ΡΠ°Ρ ΡΠΎΠ·ΠΈ Π΅Π·ΠΈΠΊ, Π·Π°ΡΠΎΡΠΎ ΡΡΠΌ ΡΡΠ²Π°Π» ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠΈ Π½Π΅ΡΠ° Π·Π° Π½Π΅Π³ΠΎ ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌ, ΡΠ΅ ΡΡΠ°Π²Π° Π²ΡΠ΅ ΠΏΠΎ-ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΈΠ³ΡΠΈ. ΠΡΠ΅Π΄ΠΈ Π΄Π° Π½Π°ΠΏΠΈΡΠ° ΠΈΠ³ΡΠ°ΡΠ°, ΠΈΠΌΠ°Ρ ΠΌΠ°Π»ΠΊΠΎ ΠΎΠΏΠΈΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Rust. Π’ΠΎΠ²Π° Π±Π΅ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ, Π·Π° Π΄Π° ΠΌΠΈ Π΄Π°Π΄Π΅ ΡΡΠ΅ΡΠ°Π½Π΅ Π·Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π°, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΏΠΈΡΠ° ΠΈΠ³ΡΠ°ΡΠ°.
ΠΠ°ΡΠΎ ΠΈΠ³ΡΠ°ΡΠ° ΠΈ ΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ ΠΈΠ³ΡΠ°?
Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ³ΡΠΈ Π΅ Π·Π°Π±Π°Π²Π½ΠΎ! ΠΡΠΊΠ° ΠΌΠΈ ΡΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½ΠΈ, Π½ΠΎ Π·Π° βΠ΄ΠΎΠΌΠ°ΡΠ½ΠΈβ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΈΠ·Π±ΠΈΡΠ°ΠΌ ΡΠ΅ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΡΠ²ΡΡΠ΄Π΅ ΡΡΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΎΠ±ΠΈΡΠ°ΠΉΠ½Π°ΡΠ° ΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°. ΠΊΠ°ΠΊΠ²Π° ΠΈΠ³ΡΠ° Π΅ ΡΠΎΠ²Π° ΠΡΠΊΠ°Ρ Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ ΡΠ΅Π½ΠΈΡ ΡΠΈΠΌΡΠ»Π°ΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° Cities Skylines, Zoo Tycoon, Prison Architect ΠΈ ΡΠ°ΠΌΠΈΡ ΡΠ΅Π½ΠΈΡ. ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π° ΠΈΠ³ΡΠ° Π·Π° ΡΠ΅Π½ΠΈΡ Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡ, ΠΊΡΠ΄Π΅ΡΠΎ Ρ ΠΎΡΠ°ΡΠ° ΠΈΠ΄Π²Π°Ρ Π΄Π° ΠΈΠ³ΡΠ°ΡΡ.
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠΊΠ°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Rust, Π½ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ° ΡΠ΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°, Π·Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π°. ΠΠ΅ ΠΈΡΠΊΠ°Ρ Π΄Π° ΠΏΠΈΡΠ° ΠΏΠΈΠΊΡΠ΅Π»Π½ΠΈ ΡΠ΅ΠΉΠ΄ΡΡΠΈ ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ drag-n-drop, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΡΡΡΠ΅Ρ Π½Π°ΠΉ-Π³ΡΠ²ΠΊΠ°Π²ΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΌΠ΅ΡΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠΏΠΎΠ΄Π΅Π»ΡΠΌ Ρ Π²Π°Ρ:
ΠΠ³ΡΠ°Π΅ΠΌ Π»ΠΈ Π²Π΅ΡΠ΅ β ΡΠΏΠΈΡΡΠΊ Ρ Rust Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΈΠ³ΡΠ°ΡΠ°;Subreddit Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° ΠΈΠ³ΡΠΈ Rust; ΠΠ΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΊΡΡΡΠ²ΠΎ.
ΠΡΠΎΡΡΠΈΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠ³ΡΠ°Π»Π½ΠΈ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ Π½Π° Rust, ΠΊΠ°ΡΠΎ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΠΈΠ·Π±ΡΠ°Ρ Piston ΠΈ ggez. ΠΠΎΠΏΠ°Π΄Π½Π°Ρ Π½Π° ΡΡΡ , Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ°Π±ΠΎΡΠ΅Ρ ΠΏΠΎ ΠΏΡΠ΅Π΄ΠΈΡΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ. Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΠΈΠ·Π±ΡΠ°Ρ ggez, Π·Π°ΡΠΎΡΠΎ ΠΌΠΈ ΡΠ΅ ΡΡΠΎΡΠΈ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ°Π»ΠΊΠ° 2D ΠΈΠ³ΡΠ°. ΠΠΎΠ΄ΡΠ»Π½Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° Π½Π° Piston Π΅ ΡΠ²ΡΡΠ΄Π΅ ΡΠ»ΠΎΠΆΠ½Π° Π·Π° Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ (ΠΈΠ»ΠΈ Π½ΡΠΊΠΎΠΉ, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Ρ Rust Π·Π° ΠΏΡΡΠ²ΠΈ ΠΏΡΡ).
Π‘ΡΡΡΠΊΡΡΡΠ° Π½Π° ΠΈΠ³ΡΠ°ΡΠ°
ΠΡΠ΅ΠΊΠ°ΡΠ°Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π² ΠΎΠ±ΠΌΠΈΡΠ»ΡΠ½Π΅ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΡΠ²Π°ΡΠ° ΡΡΡΠΏΠΊΠ° Π΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ "Π·Π΅ΠΌΡ", Ρ ΠΎΡΠ° ΠΈ ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΡΠΎΠ²Π΅. Π₯ΠΎΡΠ°ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π΄Π²ΠΈΠΆΠ°Ρ ΠΈΠ· ΡΡΠ΄ΠΈΠ»ΠΈΡΠ°ΡΠ° ΠΈ Π΄Π° ΡΠ°ΠΊΠ°Ρ. ΠΠ³ΡΠ°ΡΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ°Ρ ΡΠΌΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Ρ Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π½ΠΎΠ²ΠΈ Ρ ΠΎΡΠ° ΠΈ ΡΡΠ΄ΠΈΠ»ΠΈΡΠ°, Π½ΠΎ ΡΠΎΠ²Π° Π²Π΅ΡΠ΅ Π½Π΅ Π΅ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ.
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΎΠ±ΠΌΠΈΡΠ»ΠΈΡ Π²ΡΠΈΡΠΊΠΎ, ΡΠ΅ Π·Π°Ρ Π²Π°Π½Π°Ρ Π·Π° ΡΠ°Π±ΠΎΡΠ°.
Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ³ΡΠ°
ΠΠ°ΡΠ°Π»ΠΎ: ΠΡΡΠ³ΠΎΠ²Π΅ ΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ
ΠΠ·Π΅Ρ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡ ggez ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΊΡΡΠ³ Π½Π° Π΅ΠΊΡΠ°Π½Π°. ΡΡΠ΄Π΅ΡΠ½ΠΎ! Π‘Π΅Π³Π° ΠΌΠ°Π»ΠΊΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ. ΠΠΈΡΠ»Π΅Ρ , ΡΠ΅ Π±ΠΈ Π±ΠΈΠ»ΠΎ Ρ ΡΠ±Π°Π²ΠΎ Π΄Π° ΡΠ΅ Π°Π±ΡΡΡΠ°Ρ ΠΈΡΠ°ΠΌ ΠΎΡ ΠΈΠ΄Π΅ΡΡΠ° Π·Π° ΠΎΠ±Π΅ΠΊΡ Π½Π° ΠΈΠ³ΡΠ°. ΠΡΠ΅ΠΊΠΈ ΠΎΠ±Π΅ΠΊΡ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°Π·Π΅Π½ ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½, ΠΊΠ°ΠΊΡΠΎ Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎ ΡΡΠΊ:
// the game object trait
trait GameObject {
fn update(&mut self, _ctx: &mut Context) -> GameResult<()>;
fn draw(&mut self, ctx: &mut Context) -> GameResult<()>;
}
// a specific game object - Circle
struct Circle {
position: Point2,
}
impl Circle {
fn new(position: Point2) -> Circle {
Circle { position }
}
}
impl GameObject for Circle {
fn update(&mut self, _ctx: &mut Context) -> GameResult<()> {
Ok(())
}
fn draw(&mut self, ctx: &mut Context) -> GameResult<()> {
let circle =
graphics::Mesh::new_circle(ctx, graphics::DrawMode::Fill, self.position, 100.0, 2.0)?;
graphics::draw(ctx, &circle, na::Point2::new(0.0, 0.0), 0.0)?;
Ok(())
}
}
Π’Π°Π·ΠΈ ΡΠ°ΡΡ ΠΎΡ ΠΊΠΎΠ΄Π° ΠΌΠΈ Π΄Π°Π΄Π΅ Ρ ΡΠ±Π°Π² ΡΠΏΠΈΡΡΠΊ Ρ ΠΎΠ±Π΅ΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π° Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°Π·Ρ Π² ΡΡΡΠΎ ΡΠΎΠ»ΠΊΠΎΠ²Π° Ρ ΡΠ±Π°Π² ΡΠΈΠΊΡΠ».
mpl event::EventHandler for MainState {
fn update(&mut self, context: &mut Context) -> GameResult<()> {
// Update all objects
for object in self.objects.iter_mut() {
object.update(context)?;
}
Ok(())
}
fn draw(&mut self, context: &mut Context) -> GameResult<()> {
graphics::clear(context);
// Draw all objects
for object in self.objects.iter_mut() {
object.draw(context)?;
}
graphics::present(context);
Ok(())
}
}
main.rs Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ, Π·Π°ΡΠΎΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ ΠΊΠΎΠ΄. ΠΡΠ΄Π΅Π»ΠΈΡ
ΠΌΠ°Π»ΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ°. ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π°:
ΡΠ΅ΡΡΡΡΠΈ -> ΡΡΠΊ ΡΠ° Π²ΡΠΈΡΠΊΠΈ Π°ΠΊΡΠΈΠ²ΠΈ (ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ)
SRC
- ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½ΠΈΡ
β game_object.rs
β ΠΊΡΡΠ³.rs
β main.rs -> ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΡΠΈΠΊΡΠ»
Π₯ΠΎΡΠ°, ΠΏΠΎΠ΄ΠΎΠ²Π΅ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
Π‘Π»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΡΠΏΠΊΠ° Π΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΎΠ±Π΅ΠΊΡ Π·Π° ΠΈΠ³ΡΠ° Person ΠΈ Π΄Π° Π·Π°ΡΠ΅Π΄ΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈΡΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΎ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠ»ΠΎΡΠΊΠΈ 32*32.
Π’Π΅Π½ΠΈΡ ΠΊΠΎΡΡΠΎΠ²Π΅
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΡΠΎΡΡΠΈΡ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΡΠΎΠ²Π΅ΡΠ΅, ΡΠ΅ΡΠΈΡ Π΄Π° Π³ΠΈ Π½Π°ΠΏΡΠ°Π²Ρ ΠΎΡ ΠΏΠ»ΠΎΡΠΊΠΈ 4*2. ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π±Π΅ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°ΠΊΡΠ² ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠ»ΠΈ Π΄Π° ΡΠ΅ ΡΠ³Π»ΠΎΠ±ΡΡ 8 ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΠ»ΠΎΡΠΊΠΈ. ΠΠΎ ΡΠΎΠ³Π°Π²Π° ΡΠ°Π·Π±ΡΠ°Ρ , ΡΠ΅ ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΡΠ°ΠΌΠΎ Π΄Π²Π΅ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΈ ΠΏΠ»ΠΎΡΠΊΠΈ ΠΈ Π΅ΡΠΎ Π·Π°ΡΠΎ.
ΠΠ±ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π΄Π²Π΅ ΡΠ°ΠΊΠΈΠ²Π° ΠΏΠ»ΠΎΡΠΊΠΈ: 1 ΠΈ 2.
ΠΡΡΠΊΠ° ΡΠ΅ΠΊΡΠΈΡ Π½Π° ΠΈΠ³ΡΠΈΡΠ΅ΡΠΎ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΠΏΠ»ΠΎΡΠΊΠ° 1 ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡΠΊΠ° 2. Π’Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π½ΠΎΡΠΌΠ°Π»Π½ΠΎ ΠΈΠ»ΠΈ ΠΎΠ±ΡΡΠ½Π°ΡΠΈ Π½Π° 180 Π³ΡΠ°Π΄ΡΡΠ°.
ΠΡΠ½ΠΎΠ²Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠ°Π½Π΅ (ΠΌΠΎΠ½ΡΠ°ΠΆ).
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΡΠΏΡΡ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΡΠΎΠ²Π΅, Ρ ΠΎΡΠ° ΠΈ ΠΊΠ°ΡΡΠΈ, ΠΎΡΡΠ·Π½Π°Ρ , ΡΠ΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΈ ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅. Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π³ΠΎ ΡΠ°ΠΊΠ°: ΠΏΡΠΈ Π½Π°ΡΠΈΡΠΊΠ°Π½Π΅ Π½Π° Π±ΡΡΠΎΠ½Π° ΠΎΠ±Π΅ΠΊΡΡΡ ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ° ΠΈ ΡΡΠ°ΠΊΠ²Π°Π½Π΅ΡΠΎ Π³ΠΎ ΠΏΠΎΡΡΠ°Π²Ρ Π½Π° ΠΆΠ΅Π»Π°Π½ΠΎΡΠΎ ΠΌΡΡΡΠΎ. Π ΡΠ°ΠΊΠ°, Π±ΡΡΠΎΠ½ 1 Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΡΡ, Π° Π±ΡΡΠΎΠ½ 2 Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΈΠ³ΡΠ°Ρ.
ΠΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π°Ρ 1 ΠΈ 2, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ ΡΠ΅Π»Π΅Π½Π° ΡΠ°ΠΌΠΊΠ°, Π·Π° Π΄Π° ΡΡΠ°Π½Π΅ ΡΡΠ½ΠΎ ΠΊΠΎΠΉ ΠΎΠ±Π΅ΠΊΡ Π΅ ΠΈΠ·Π±ΡΠ°Π½. ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°.
ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ Π²ΡΠΏΡΠΎΡΠΈ Π·Π° ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³
Π‘Π΅Π³Π° ΠΈΠΌΠ°ΠΌ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΎΠ±Π΅ΠΊΡΠ° Π·Π° ΠΈΠ³ΡΠ°: Ρ ΠΎΡΠ°, ΠΊΠΎΡΡΠΎΠ²Π΅ ΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅. ΠΠΎ Π·Π° Π΄Π° ΡΠ°Π±ΠΎΡΡΡ ΡΠ΅Π»Π΅Π½ΠΈΡΠ΅ ΡΠ°ΠΌΠΊΠΈ, Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΠ±Π΅ΠΊΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΊΠ°ΠΆΠ΅ Π΄Π°Π»ΠΈ ΡΠ°ΠΌΠΈΡΠ΅ ΠΎΠ±Π΅ΠΊΡΠΈ ΡΠ° Π² Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΊΠ°ΡΠ° ΠΏΡΠΎΡΡΠΎ Π΅ Π½Π°ΡΠ΅ΡΡΠ°Π½Π°. Π’ΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ.
Π‘ΡΡΡΠ²Π°ΡΠ΅ ΠΌΠΈ ΡΠ΅, ΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΎΡΠΌΠΈΡΠ»Π΅Π½Π° ΠΏΠΎ Π½Π°ΡΠΈΠ½, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π·ΠΊΡΠΈΠ²Π° Π½ΡΠΊΠΎΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ:
- ΠΠ°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠ±Π΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ°ΠΌ ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π° ΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°, Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π·Π°ΡΠΎΡΠΎ ΡΠΎΠ·ΠΈ ΠΎΠ±Π΅ΠΊΡ Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° βΠ·Π½Π°Π΅β ΠΊΠ°ΠΊΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π° β ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ΅Π»Π΅Π½Π° ΡΠ°ΠΌΠΊΠ°;
- Π»ΠΈΠΏΡΠ° Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ is_build_mode ΠΈΠ»ΠΈ ΡΠ΅Π½Π΄ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅). ΠΠΈ Π±ΠΈΠ»ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π½ΡΠΌΠ° ΠΏΡΠ°Π²ΠΈΠ»Π΅Π½ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈ Π² Rust. Π’ΠΎΠ²Π°, ΠΎΡ ΠΊΠΎΠ΅ΡΠΎ Π½Π°ΠΈΡΡΠΈΠ½Π° ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅Ρ , Π±Π΅ΡΠ΅ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ΡΠΎ;
- Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ±Π΅ΠΊΡΠΈΡΠ΅ Π·Π° Π½Π°Π·Π½Π°ΡΠ°Π²Π°Π½Π΅ Π½Π° Ρ ΠΎΡΠ° Π² ΡΡΠ΄ΠΈΠ»ΠΈΡΠ°ΡΠ°;
- ΡΠ°ΠΌΠΈΡΠ΅ ΠΎΠ±Π΅ΠΊΡΠΈ Π±ΡΡ Π° ΡΠΌΠ΅ΡΠΈΡΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΊΠΎΡΡΠΎ Π±ΡΡΠ·ΠΎ ΠΈΠ·Π»Π΅Π·Π΅ ΠΈΠ·Π²ΡΠ½ ΠΊΠΎΠ½ΡΡΠΎΠ».
ΠΠ°ΠΏΡΠ°Π²ΠΈΡ ΠΎΡΠ΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΡΠΎΡΡΠ²Π°Π½Π΅ ΠΈ ΠΎΡΠΊΡΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ°
ECS - Entity Component System , ΠΊΠΎΠΉΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΈΠ³ΡΠΈΡΠ΅. ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π½Π° ECS:
- Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ° ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈ ΠΎΡ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ°;
- ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΡΠ²ΠΎ;
- ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½Π° ΠΊΡΠΌ Π΄Π°Π½Π½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°.
ECS ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΠΈΡΠ° Ρ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ:
- entities - ΡΠΈΠΏΡΡ ΠΎΠ±Π΅ΠΊΡ, ΠΊΡΠΌ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡΡ (ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΈΠ³ΡΠ°Ρ, ΡΠΎΠΏΠΊΠ° ΠΈΠ»ΠΈ Π½Π΅ΡΠΎ Π΄ΡΡΠ³ΠΎ);
- ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ - ΡΡΡΠ½ΠΎΡΡΠΈΡΠ΅ ΡΠ° ΡΡΡΡΠ°Π²Π΅Π½ΠΈ ΠΎΡ ΡΡΡ . ΠΡΠΈΠΌΠ΅Ρ - ΡΠ΅Π½Π΄ΠΈΡΠ°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈ. Π’ΠΎΠ²Π° ΡΠ° ΡΠΊΠ»Π°Π΄ΠΎΠ²Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ;
- ΡΠΈΡΡΠ΅ΠΌΠΈ - ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΊΠ°ΠΊΡΠΎ ΠΎΠ±Π΅ΠΊΡΠΈ, ΡΠ°ΠΊΠ° ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ, ΠΏΠ»ΡΡ ΡΡΠ΄ΡΡΠΆΠ°Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π°Ρ Π½Π° ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΡΠΈΠΌΠ΅Ρ Π΅ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅, ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ΡΠΎ.
Π‘Π»Π΅Π΄ ΠΏΡΠΎΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΌΡ ΡΡΠ°Π½Π° ΡΡΠ½ΠΎ, ΡΠ΅ ECS ΡΠ΅ΡΠ°Π²Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ:
- ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ Π²ΠΌΠ΅ΡΡΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ;
- ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° Π±ΡΡΠΊΠ°Π½ΠΈΡ ΠΊΠΎΠ΄ ΡΡΠ΅Π· ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅;
- ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΊΠ°ΡΠΎ is_build_mode, Π·Π° Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΡΠ΅ wireframe Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° Π΅Π΄Π½ΠΎ ΠΈ ΡΡΡΠΎ ΠΌΡΡΡΠΎ - Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅.
Π’ΠΎΠ²Π° ΡΠ΅ ΡΠ»ΡΡΠΈ ΡΠ»Π΅Π΄ Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ECS.
ΡΠ΅ΡΡΡΡΠΈ -> ΡΡΠΊ ΡΠ° Π²ΡΠΈΡΠΊΠΈ Π°ΠΊΡΠΈΠ²ΠΈ (ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ)
SRC
- ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ
βΠΏΠΎΠ·ΠΈΡΠΈΡ.rs
β ΡΠΎΠ²Π΅ΠΊ.rs
β tennis_court.rs
β Π΅ΡΠ°ΠΆ.rs
- wireframe.rs
β mouse_tracked.rs
- ΡΠ΅ΡΡΡΡΠΈ
β ΠΌΠΈΡΠΊΠ°.rs
- ΡΠΈΡΡΠ΅ΠΌΠΈ
β rendering.rs
β ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ.rs
β utils.rs
β world_factory.rs -> ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΡΠ²Π΅ΡΠΎΠ²Π½Π°ΡΠ° ΡΠ°Π±ΡΠΈΠΊΠ°
β main.rs -> ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΡΠΈΠΊΡΠ»
ΠΠ°Π·Π½Π°ΡΠ°Π²Π°ΠΌΠ΅ Ρ ΠΎΡΠ° Π² ΡΡΠ΄ΠΈΠ»ΠΈΡΠ°ΡΠ°
ECS Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΆΠΈΠ²ΠΎΡΠ° ΠΏΠΎ-Π»Π΅ΡΠ΅Π½. Π‘Π΅Π³Π° ΠΈΠΌΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΊΡΠΌ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Π ΡΠΎΠ²Π° ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π° Π΄Π°Π΄Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Ρ ΠΎΡΠ°ΡΠ° ΠΏΠΎ ΡΡΠ΄ΠΈΠ»ΠΈΡΠ°ΡΠ°.
ΠΠ°ΠΊΠ²ΠΎ ΡΡΠΌ Π½Π°ΠΏΡΠ°Π²ΠΈΠ»:
- Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΡΠ΄ΠΈΠ»ΠΈΡΠ° Π½Π° ΠΠΈΡΠ΅;
- Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Ρ ΠΎΡΠ° ΠΊΡΠΌ TennisCourt;
- Π΄ΠΎΠ±Π°Π²Π΅Π½ CourtChoosingSystem, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Ρ ΠΎΡΠ° ΠΈ ΠΊΠΎΡΡΠΎΠ²Π΅, Π΄Π° ΠΎΡΠΊΡΠΈΠ²Π°ΡΠ΅ Π½Π°Π»ΠΈΡΠ½ΠΈ ΠΊΠΎΡΡΠΎΠ²Π΅ ΠΈ Π΄Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΡΠ΅ ΠΈΠ³ΡΠ°ΡΠΈ ΠΊΡΠΌ ΡΡΡ ;
- Π΄ΠΎΠ±Π°Π²ΠΈ PersonMovementSystem, ΠΊΠΎΡΡΠΎ ΡΡΡΡΠΈ Ρ ΠΎΡΠ°, Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π² ΡΡΠ΄ΠΈΠ»ΠΈΡΠ°ΡΠ°, ΠΈ Π°ΠΊΠΎ Π½Π΅ ΡΠ° ΡΠ°ΠΌ, ΠΈΠ·ΠΏΡΠ°ΡΠ° Ρ ΠΎΡΠ°ΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ ΡΡΡΠ±Π²Π°.
Π Π΅Π·ΡΠΌΠΈΡΠ°Π½Π΅
ΠΠ°ΠΈΡΡΠΈΠ½Π° ΠΌΠΈ Ρ Π°ΡΠ΅ΡΠ° Π΄Π° ΡΠ°Π±ΠΎΡΡ Π²ΡΡΡ Ρ ΡΠ°Π·ΠΈ ΠΏΡΠΎΡΡΠ° ΠΈΠ³ΡΠ°. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΠ΅ ΡΠ°Π΄Π²Π°ΠΌ, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Rust, Π·Π° Π΄Π° Π³ΠΎ Π½Π°ΠΏΠΈΡΠ°, Π·Π°ΡΠΎΡΠΎ:
- Rust Π²ΠΈ Π΄Π°Π²Π° ΡΠΎΠ²Π°, ΠΎΡ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅;
- ΠΈΠΌΠ° ΠΎΡΠ»ΠΈΡΠ½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, Rust Π΅ Π΄ΠΎΡΡΠ° Π΅Π»Π΅Π³Π°Π½ΡΠ΅Π½;
- ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠΈΡΡΠ° Π΅ Ρ Π»Π°Π΄Π½Π°;
- Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΠΏΡΠΈΠ±ΡΠ³Π²Π°ΡΠ΅ Π΄ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅, ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ΡΡΠΎ ΠΏΡΠ°Π²Π΅Ρ Π² C++;
- ΠΠΏΡΠΈΠΈΡΠ΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅ΡΠ½ΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΈ ΡΠ΅ ΡΠΏΡΠ°Π²ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ΅ Ρ Π³ΡΠ΅ΡΠΊΠΈΡΠ΅;
- ΠΠΊΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡΡ Π΅ ΡΡΠΏΡΠ» Π΄Π° Π±ΡΠ΄Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½, ΡΠΎΠ³Π°Π²Π° 99% ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ ΠΈ ΡΠΎΡΠ½ΠΎ ΠΊΠ°ΠΊΡΠΎ ΡΡΡΠ±Π²Π°. ΠΠΈΡΠ»Ρ, ΡΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ° Π·Π° Π³ΡΠ΅ΡΠΊΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° ΡΠ° Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΡΠΌ Π²ΠΈΠΆΠ΄Π°Π».
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΈΠ³ΡΠΈ Π² Rust Π΅Π΄Π²Π° Π·Π°ΠΏΠΎΡΠ²Π°. ΠΠΎ Π²Π΅ΡΠ΅ ΠΈΠΌΠ° ΡΡΠ°Π±ΠΈΠ»Π½Π° ΠΈ Π΄ΠΎΡΡΠ° Π³ΠΎΠ»ΡΠΌΠ° ΠΎΠ±ΡΠ½ΠΎΡΡ, ΠΊΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ, Π·Π° Π΄Π° ΠΎΡΠ²ΠΎΡΠΈ Rust Π·Π° Π²ΡΠΈΡΠΊΠΈ. ΠΠ°ΡΠΎΠ²Π° Π³Π»Π΅Π΄Π°ΠΌ Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΡΠΌ Π½Π° Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ Π½Π° Π΅Π·ΠΈΠΊΠ°, ΠΎΡΠ°ΠΊΠ²Π°ΠΉΠΊΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΡΡΠ²ΠΌΠ΅ΡΡΠ½Π°ΡΠ° Π½ΠΈ ΡΠ°Π±ΠΎΡΠ°.
Skillbox ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°:
- ΠΠ½Π»Π°ΠΉΠ½ ΠΊΡΡΡ
βΠΡΠΎΡΠ΅ΡΠΈΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊβ .- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΡΡΡ
βΠΠΎΠ±ΠΈΠ»Π΅Π½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ PROβ .- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π³ΠΎΠ΄ΠΈΡΠ΅Π½ ΠΊΡΡΡ
βPHP ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΡ 0 Π΄ΠΎ PROβ .
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com