Опять ошибки на КПК =)

Pixilang по русски
Post Reply
User avatar
siweter
Posts: 19
Joined: Sat Sep 10, 2011 6:11 pm
Contact:

Опять ошибки на КПК =)

Post by siweter » Fri Oct 07, 2011 12:34 am

Всем ку! Я как всегда со своим КПК)
В общем заметил я такой глюк: когда я запускаю программу в которой есть картинки из pixilang то всё работает нормально, а когда я запускаю программу в которой есть картинки например из проводника, тапнув по файлу, то программа работает, но картинки в ней не отображаются :unknown:
В чём прикол?

User avatar
NightRadio
Site Admin
Posts: 3008
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Опять ошибки на КПК =)

Post by NightRadio » Fri Oct 07, 2011 2:15 pm

Похоже на то, что Pixilang не может определить рабочую папку. Ну, то есть, ему система передает в командной строке имя файла без пути, соответственно Pixilang не знает, где точно лежит файл и картинки.
Но это лишь предположение ) Появится время - проверю, в чем на самом деле проблема.

yourchange
Posts: 33
Joined: Tue Jan 01, 2013 5:30 pm
Location: Украина, Николаев

Re: Опять ошибки на КПК =)

Post by yourchange » Tue Jan 15, 2013 11:07 am

здравствуйте.
у меня некорректно работает функция dot3d.
i=0 while(i<get_size(ver)/8){
dot3d(ver[i*8],ver[i*8+1],ver[i*8+2],RED) i+1}
в частности неправильный z
вместо z подставлял цифры, без разницы. приходится пользоваться line3d.
samsung i710 wm6 Pixilang 3.4.3

User avatar
NightRadio
Site Admin
Posts: 3008
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Опять ошибки на КПК =)

Post by NightRadio » Tue Jan 15, 2013 11:32 am

Добрый день!
Спасибо за инфу, в dot3d действительно закралась ошибка. В ближайшем обновлении будет исправлена.

yourchange
Posts: 33
Joined: Tue Jan 01, 2013 5:30 pm
Location: Украина, Николаев

Re: Опять ошибки на КПК =)

Post by yourchange » Wed Jan 16, 2013 5:21 pm

и это отлично, спасибо.
пока что хватает линии

yourchange
Posts: 33
Joined: Tue Jan 01, 2013 5:30 pm
Location: Украина, Николаев

Re: Опять ошибки на КПК =)

Post by yourchange » Wed Jan 16, 2013 6:45 pm

только что попробовал перенастроить pixilang. изменения в файле pixilang_config.ini ничего не дали. лежит он возле exe-шника, сама программа лежит в своей розархивированной папке в Program files на Storage Card.

windows mobile6

yourchange
Posts: 33
Joined: Tue Jan 01, 2013 5:30 pm
Location: Украина, Николаев

Re: Опять ошибки на КПК =)

Post by yourchange » Tue Mar 05, 2013 1:04 am

$i=0 while($i<kol){
poi[$i,0]=obj[$i,0]
poi[$i,1]=obj[$i,1]
poi[$i,2]=0
t_point(poi[$i,0],poi[$i,1],poi[$i,2])
$i+1}
set_zbuf(-1) t_reset()
$i=0 while($i<kol){
pixi(sph[obj[$i,2]],poi[$i,0],poi[$i,1])
$i+1}
и obj и poi заранее определены как float, но на кпк неописуемое отображение: через одву-две секунды шарики карежит. может я что-то неправильно делаю. если можно напишите какой нить пример с использованием t_point

User avatar
NightRadio
Site Admin
Posts: 3008
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Опять ошибки на КПК =)

Post by NightRadio » Tue Mar 05, 2013 9:10 am

t_point() принимает один параметр
Вот так: t_point( p )
где p - контейнер с тремя элементами типа FLOAT.

yourchange
Posts: 33
Joined: Tue Jan 01, 2013 5:30 pm
Location: Украина, Николаев

Re: Опять ошибки на КПК =)

Post by yourchange » Thu May 02, 2013 6:08 am

пытался сделать аналог
fn explode($a, $str){
$n = 0;//счетчик символов
$nn = 0;//счетчик массива
$cur = 0;//положение старта
$arr = new(); clean($arr, "");
while($n < strlen($str)){
if(($str[$n] == $a[0])||($n == strlen($str)-1)){
$count = $n-$cur;
$w = "";
resize($w, $count);
copy($w, $str, 0, $cur, $count );
resize($arr, $nn+1);
$arr[$nn] = $w;
$cur = $n+1;
$nn+1;
print($arr[$nn-1],-xsp,$nn*8-60,#fff,LEFT);
}
$n+1;
}
$q=0;while($q<get_size($arr)){
print($arr[$q],-xsp,$q*8,#fff,LEFT);
$q+1;}
frame();sleep(200);clear();
ret($arr);
}
возвращает массив, залитый последним найденным значением

User avatar
NightRadio
Site Admin
Posts: 3008
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Опять ошибки на КПК =)

Post by NightRadio » Thu May 02, 2013 9:16 am

Извини, не понял. Аналог чего? Какой результат ожидается?
И с ходу вижу ошибку: clean($arr, "");
Здесь надо писать вероятно ' ', а не "".
"" - это номер контейнера с пустой строкой.
' ' - код символа заключенного между одинарных кавычек.

yourchange
Posts: 33
Joined: Tue Jan 01, 2013 5:30 pm
Location: Украина, Николаев

Re: Опять ошибки на КПК =)

Post by yourchange » Thu May 02, 2013 9:12 pm

извини за непонятный вопрос. пытаюсь сделать аналог функции explode из php, в которую передается символ, через который следует разбивать строку и вторая переменная - сама строка.
explode(':', '12:34:56:78');
за кавычки - спасибо, исправил.

Code: Select all

fn explode($a, $str){
$n = 0;//счетчик символов
$nn = 0;//счетчик массива
$cur = 0;//положение старта
$arr = new(); clean($arr, '');
while($n < strlen($str)){
  if(($str[$n] == $a[0])||($n == strlen($str)-1)){
    $count = $n-$cur;
    $w = "";
    resize($w, $count);
    copy($w, $str, 0, $cur, $count );
    resize($arr, $nn+1);
    $arr[$nn] = $w;
    $cur = $n+1;
    $nn+1;
  }
  $n+1;
}
ret($arr);
}

User avatar
NightRadio
Site Admin
Posts: 3008
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Опять ошибки на КПК =)

Post by NightRadio » Sun May 05, 2013 8:00 pm

Ok, давай разбираться :)

1) $arr = new() - вообще такой код означает, что ты создал контейнер размером 1x1 и с типом PIXEL. Ты точно уверен, что тебе нужен тип данных PIXEL?
Насколько я понял, $arr - это список строк. То есть - массив ID-шников контейнеров. А ID контейнера - это INT. Поэтому нужно писать так: $arr = new( 1, 1, INT )

2) Далее - clean($arr, '') - не имеет смысла. В данном случае твой список должен быть заполнен пустыми контейнерами. А номер пустого контейнера - это любое отрицательное число. Общепринятый вариант - -1. То есть пишем: clean( $arr, -1 )

3) $w = ""; resize($w, $count);
тут допущена небольшая ошибка. По всей видимости ты считаешь, что $w = "" - это создание нового контейнера со строкой. Но это не так. Строка в этом месте всего одна, глобальная, созданная на этапе компиляции программы. То есть, данный код равноценен чему-то подобному: $w = 33.
В итоге в контейнер $arr ты запишешь одну и ту же строку несколько раз.
Правильный вариант: $w = new( $count, 1, INT8 )
Причем, не забудь все эти строки потом удалить, после выполнения функции explode(), так как динамического сборщика мусора у нас нет, после каждого explode() старые строки будут копиться в памяти.

yourchange
Posts: 33
Joined: Tue Jan 01, 2013 5:30 pm
Location: Украина, Николаев

Re: Опять ошибки на КПК =)

Post by yourchange » Mon May 06, 2013 3:50 am

спасибо за обстоятельный и полный ответ. в 5 минут все понял и исправил, все работает. буду двигаться дальше)

Post Reply