Godot: рдбрдмрд▓ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдмреЗрдирдХрд╛рдм рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 26 рдирд╡ре░ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: godotengine/godot

рдЧреЛрдбреЙрдЯреНрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб ( core/list.h ) рдореЗрдВ рдПрдХ рдбрдмрд▓ рд▓рд┐рдВрдХреНрдб рд▓рд┐рд╕реНрдЯ рд╣реЛрддреА рд╣реИред
рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЗрд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдРрд╕реЗ рдХреБрдЫ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдПрдХ рдбрдмрд▓ рд▓рд┐рдВрдХреНрдб рд╕реВрдЪреА рд╡реЗрдХреНрдЯрд░ рдЖрдзрд╛рд░рд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреА рд╣реИред
рдЦрд╛рд╕рдХрд░ рдЬрдм рдЕрдВрдд рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд/рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИред

рдореИрдВ рдЗрд╕ рдкрд░ рдХреБрдЫ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓реЙрдХрд┐рдВрдЧ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдРрд░реЗ рдХреНрд▓рд╛рд╕ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдорд┐рд░рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ)ред
рдореВрд▓ рд░реВрдк рд╕реЗ рд╕реВрдЪреА рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛рдФрд░ рд╕реВрдЪреА:: рддрддреНрд╡ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЪрд╛рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред?
рдЗрд╕реЗ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдирд╛ рднреА рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ рдРрд░реЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд (рдФрд░ рдпрджрд┐ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реВрдВ) рдХреЛрд░/ring_buffer.h рдХреЛ рдХрддрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдХрддрд╛рд░ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдЗрд╕реЗ рдПрдХ рдбрдмрд▓ рд▓рд┐рдВрдХреНрдб рд╕реВрдЪреА (рдФрд░ рд╡реЗрдХреНрдЯрд░ рдЖрдзрд╛рд░рд┐рдд рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдмреЗрд╣рддрд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрддрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕ рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рдХрд┐ рдЗрд╕рдХрд╛ "рдирд┐рд╢реНрдЪрд┐рдд" рдЖрдХрд╛рд░ рд╣реИ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдкреНрд░рдпреБрдХреНрдд рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

archived feature proposal core gdscript

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

3.1 рдорд╛рд╕реНрдЯрд░ 9e7cee2 рдореЗрдВ рдЕрднреА рднреА рдкреБрдирд░реБрддреНрдкрд╛рджрд┐рдд/рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ: рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдЕрднреА рддрдХ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

3.1 рдорд╛рд╕реНрдЯрд░ 9e7cee2 рдореЗрдВ рдЕрднреА рднреА рдкреБрдирд░реБрддреНрдкрд╛рджрд┐рдд/рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ: рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдЕрднреА рддрдХ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред

рд░реЗрдбрд┐рдЯ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдЙрдЪрд┐рдд рд▓рд┐рдВрдХреНрдб-рд▓рд┐рд╕реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдореБрдЭреЗ рдПрдХ рддреЗрдЬрд╝ рдлреАрдлреЛ рд╕реВрдЪреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╕рд░рдгреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИред

рдмрд╕ рдЗрд╕реЗ рдПрдХ рд╕рд░рдгреА рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛, рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЧрддрд┐ рд╕реБрдзрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛:

extends Node

var front_space = 0
var array_len = 0
var array_data = []

func push_back(val):
    if array_data.size() < front_space+array_len+1:
        enlarge()
    array_len += 1
    array_data[front_space+array_len-1] = val

func pop_back():
    if array_data.size() > array_len*8:
        reseat()
    array_len -= 1
    return array_data[front_space+array_len]

func back():
    return array_data[front_space+array_len-1]

func pop_front():
    if front_space > array_len:
        reseat()
    if array_data.size() > array_len*8:
        reseat()
    front_space += 1
    array_len -= 1
    return array_data[front_space-1]

func front():
    return array_data[front_space]

func size():
    return array_len

func enlarge():
    array_data.resize(front_space+array_len*2+1)

func reseat():
    var new_array = []
    new_array.resize(array_len*2)
    for i in range(array_len):
        new_array[i] = array_data[i+front_space]
    front_space = 0
    array_data = new_array

func print_debug():
    print("front: ", front_space,", len: ",arr

рдЧреЛрдбреЛрдЯ рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рдлреАрдЪрд░ рдФрд░ рд╕реБрдзрд╛рд░ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдкрд░ рдЕрдм рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдЧреЛрдбреЛрдЯ рдЗрдореНрдкреНрд░реВрд╡рдореЗрдВрдЯ рдкреНрд░рдкреЛрдЬрд▓ (рдЬреАрдЖрдИрдкреА) ( godotengine/godot-proposals ) рдЗрд╢реНрдпреВ рдЯреНрд░реИрдХрд░ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдФрд░ рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред рдЬреАрдЖрдИрдкреА рдЯреНрд░реИрдХрд░ рдореЗрдВ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдореБрджреНрджрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдореЗрдВ рдЙрддреНрдкрд╛рджрдХ рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реЛ рдФрд░ рд╕рдореБрджрд╛рдп рдХреЛ рдЗрдВрдЬрди рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреА рд╡реИрдзрддрд╛ рдХрд╛ рдЖрдХрд▓рди рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдорд┐рд▓ рд╕рдХреЗред

рдореБрдЦреНрдп ( godotengine/godot ) рдЯреНрд░реИрдХрд░ рдЕрдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрдЧ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХрд╛рд░реНрдп рдкрд░ рдмреЗрд╣рддрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж

рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рджрд┐рдП рдЧрдП рд╕рдорд╕реНрдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реБрдП GIP рдЯреНрд░реИрдХрд░ рдкрд░ рдПрдХ рдирдпрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЦреЛрд▓реЗрдВ (рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ)ред рдЗрд╕ рдмрдВрдж рдореБрджреНрджреЗ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдпрджрд┐ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЪрд░реНрдЪрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ (рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдирдП рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

bojidar-bg picture bojidar-bg  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mooseyfaith picture mooseyfaith  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

EdwardAngeles picture EdwardAngeles  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ndee85 picture ndee85  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gonzo191 picture gonzo191  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ