вопросы новичка
вопросы новичка
привет форумчане, у меня возник вопрос по файлу конфигурации, создал файл config.ini в нем прописал
width 800
height 600
что бы увеличить размеры пользовательского окна, затем закинул файл конфигурации в C:\pixilang, запустил интерпретатор выбрал пример, но пользовательское окно осталось прежних размеров, пробовал запихивать config.ini в другие папки результат нулевой, не могу понять что я делаю не так?
width 800
height 600
что бы увеличить размеры пользовательского окна, затем закинул файл конфигурации в C:\pixilang, запустил интерпретатор выбрал пример, но пользовательское окно осталось прежних размеров, пробовал запихивать config.ini в другие папки результат нулевой, не могу понять что я делаю не так?
- NightRadio
- Site Admin
- Posts: 3955
- Joined: Fri Jan 23, 2004 12:28 am
- Location: Ekaterinburg. Russia
- Contact:
Re: вопросы новичка
Файл должен называться pixilang_config.ini и находиться он должен ровно в той директории, где находится pixilang.exe
Только в этом случае конфигурация будет прочитана интерпретатором.
Только в этом случае конфигурация будет прочитана интерпретатором.
Re: вопросы новичка
решил поработать с русским шрифтом, часть кода взял из примера Text_cyr.pixi:
русский шрифт не выводиться, код вроде правильно написан, есть подозрение в том что пример Text_cyr.pixi был написан в кодировке ANSI as UTF-8 под UNIX, а у меня в ANSI под Dos/Windows
Code: Select all
font = load( "images/font_cyr.jpg" )
alpha = new( get_xsize( font ), get_ysize( font ), INT8 )
set_alpha( font, alpha )
size = get_size( alpha ) i = 0 while( i < size )
{
p = font[ i ]
alpha[ i ] = ( get_red( p ) + get_green( p ) + get_blue( p ) ) div 3
i + 1
}
set_font( 0x410, font, 16, 4 )
color = get_color(55,237,217)
color1 = get_color(211,217,235)
transp(255)
while( 1 )
{
clear()
dot( 0, 0, color )
dot (-37,0,color1)
print("карбофос",-200,-150,WHITE,TOP|LEFT)
frame()
while( get_event() )
{
if EVT[ EVT_TYPE ] == EVT_QUIT { halt }
}
}
- NightRadio
- Site Admin
- Posts: 3955
- Joined: Fri Jan 23, 2004 12:28 am
- Location: Ekaterinburg. Russia
- Contact:
Re: вопросы новичка
Да, это важный момент. Исходный файл должен быть в кодировке UTF-8.
По идее хороший текстовый редактор / редактор кода должен уметь сохранять файл в любой указанной кодировке, в том числе в UTF-8.
По идее хороший текстовый редактор / редактор кода должен уметь сохранять файл в любой указанной кодировке, в том числе в UTF-8.
Re: вопросы новичка
вот еще один код, ошибок не выдает но программа завершается самостоятельно менее чем за пол секунды:
что не так?
Code: Select all
b=get_color(137,212,248)
sidling="
...b...
..b.b..
..b.b..
.b...b.
.b...b.
b.....b
bbbbbbb
"
make_pixi(sidling)
start:
clear()
pixi(sidling,0,0)
frame()
while( get_event() ){ if EVT[ EVT_TYPE ] == EVT_QUIT { halt } }
go start
- NightRadio
- Site Admin
- Posts: 3955
- Joined: Fri Jan 23, 2004 12:28 am
- Location: Ekaterinburg. Russia
- Contact:
Re: вопросы новичка
Функция make_pixi() отсутствует в Pixilang 3.x
По крайней мере пока )
По крайней мере пока )
Re: вопросы новичка
хотел бы узнать по подробнее про функции rand и rand_seed чем они отличаются?
- NightRadio
- Site Admin
- Posts: 3955
- Joined: Fri Jan 23, 2004 12:28 am
- Location: Ekaterinburg. Russia
- Contact:
Re: вопросы новичка
rand() выдает случайные числа от 0 до 32767
Каждый раз при старте программы последовательность чисел, выдаваемых функцией rand(), будет одинаковой.
Функция rand_seed() меняет эту последовательность, задает начальную точку для случайного генератора. По умолчанию значение этой точки - ноль.
Например, чтобы при каждом старте получать гарантированно новую последовательность случайных чисел, в начале программы можно добавить такой код:
rand_seed( get_ticks() )
таким образом начальная точка генератора случайных чисел будет зависеть от текущего системного времени.
Каждый раз при старте программы последовательность чисел, выдаваемых функцией rand(), будет одинаковой.
Функция rand_seed() меняет эту последовательность, задает начальную точку для случайного генератора. По умолчанию значение этой точки - ноль.
Например, чтобы при каждом старте получать гарантированно новую последовательность случайных чисел, в начале программы можно добавить такой код:
rand_seed( get_ticks() )
таким образом начальная точка генератора случайных чисел будет зависеть от текущего системного времени.
Re: вопросы новичка
а если мне надо получить случайное число в заданном промежутке допустим от -5 до 23 или от 1.27 до 39.48 какую функцию использовать?
- NightRadio
- Site Admin
- Posts: 3955
- Joined: Fri Jan 23, 2004 12:28 am
- Location: Ekaterinburg. Russia
- Contact:
Re: вопросы новичка
Специальной функции для этого не предусмотрено.
Есть несколько способов получения случайных чисел в диапазоне. Вот один из них:
r = min + ( rand() * ( max - min ) ) / 32768
Если нужно от -5 до 23, то соответственно получим:
r = -5 + ( rand() * ( 23 + 5 ) ) / 32768
Можно для этих целей создать свою функцию:
fn my_rand( $min, $max )
{
ret( $min + ( rand() * ( $max - $min ) ) / 32768 )
}
Есть несколько способов получения случайных чисел в диапазоне. Вот один из них:
r = min + ( rand() * ( max - min ) ) / 32768
Если нужно от -5 до 23, то соответственно получим:
r = -5 + ( rand() * ( 23 + 5 ) ) / 32768
Можно для этих целей создать свою функцию:
fn my_rand( $min, $max )
{
ret( $min + ( rand() * ( $max - $min ) ) / 32768 )
}
Re: вопросы новичка
нарисовал окружность из линий:
результат меня не совсем удовлетворил, как правильно нарисовать окружность?
Code: Select all
background = get_color(240,230,230)
radius=200
start:
clear(background)
angle=0 while (angle<360)
{
x = radius*sin(angle)
y = radius*cos(angle)
x1 = radius*sin(angle +12)
y1 = radius*cos(angle +12)
line(x,y,x1,y1,BLACK)
//dot(x,y,BLACK)
angle +12
}
frame()
while( get_event() ){ if EVT[ EVT_TYPE ] == EVT_QUIT { halt } }
go start
результат меня не совсем удовлетворил, как правильно нарисовать окружность?
- NightRadio
- Site Admin
- Posts: 3955
- Joined: Fri Jan 23, 2004 12:28 am
- Location: Ekaterinburg. Russia
- Contact:
Re: вопросы новичка
Окружность можно нарисовать, например, так
Ошибка кода из предыдущего сообщения в том, что функции sin, cos и пр. принимают параметры не в градусах, а в радианах
Code: Select all
background = get_color(240,230,230)
radius = 200
start:
clear( background )
step = ( M_PI * 2 ) / 256
angle = 0 while( angle < M_PI * 2 )
{
x = radius * sin( angle )
y = radius * cos( angle )
x1 = radius * sin( angle + step )
y1 = radius * cos( angle + step )
line( x, y, x1, y1, BLACK )
angle + step
}
frame()
while( get_event() ){ if EVT[ EVT_TYPE ] == EVT_QUIT { halt } }
go start
-
- Posts: 33
- Joined: Tue Jan 01, 2013 5:30 pm
- Location: Украина, Николаев
Re: вопросы новичка
1.очень интересно,а что означают нули в массивах для triangles3d?
2.что значит matrix[2*4+3]? почему именно 11?
2.что значит matrix[2*4+3]? почему именно 11?
- NightRadio
- Site Admin
- Posts: 3955
- Joined: Fri Jan 23, 2004 12:28 am
- Location: Ekaterinburg. Russia
- Contact:
Re: вопросы новичка
А где именно? :)очень интересно,а что означают нули в массивах для triangles3d?
Полный формат этих массивов описан в документации: http://code.google.com/p/pixilang/wiki/ ... riangles3d
Может, речь о полях Unused? Они в данной версии не используются, поэтому логичнее их просто заполнить нулями.
Чтобы создать матрицу перспективной проекции, достаточно в эту ячейку (X=3 Y=2) поместить какое-нибудь небольшое число. В последней версии Pixilang можно просто писать matrix[ 3, 2 ]что значит matrix[2*4+3]? почему именно 11?
-
- Posts: 33
- Joined: Tue Jan 01, 2013 5:30 pm
- Location: Украина, Николаев
Re: вопросы новичка
спасибо, прочел.
а планируете что нибудь вместо unused? например, нормали.
а планируете что нибудь вместо unused? например, нормали.