Главная | Форум | Мой профиль | Выход | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: doxl  
Форум » Вопросы по Ultimate 3D » Проблемы новичков » Вопросы от stasen'а (как менять разрешение)
Вопросы от stasen'а
stasenДата: Пятница, 26.02.2010, 17:15 | Сообщение # 1
Группа: Проверенные
Сообщений: 28
Репутация: 0
Статус: Offline
народ у меня такой вопрос: можно ли поставить переменной значение разрешения экрана ? ну тоесть чтоб я мог менять разрешение экрана прямо в игре
boberДата: Суббота, 27.02.2010, 10:45 | Сообщение # 2
null
Группа: Модераторы
Сообщений: 131
Репутация: 10
Статус: Offline
Cейчас не помню как, но точно скажу, что можно. в TehnoDemo это частично реализовано в скрипте Ultimate3DOptions

Лето в школе 4.0
stasenДата: Суббота, 27.02.2010, 12:06 | Сообщение # 3
Группа: Проверенные
Сообщений: 28
Репутация: 0
Статус: Offline
а ты не можешь вспомнить код пожалуйста
boberДата: Суббота, 27.02.2010, 12:34 | Сообщение # 4
null
Группа: Модераторы
Сообщений: 131
Репутация: 10
Статус: Offline
Вспомнить не могу, только к понедельнику могу дать.
Хотя бывает, что игра не разворачивается на весь экран по-тому, что в настройках вида комнаты стоит 640 на 489.


Лето в школе 4.0
stasenДата: Суббота, 27.02.2010, 13:20 | Сообщение # 5
Группа: Проверенные
Сообщений: 28
Репутация: 0
Статус: Offline
о к понедельнику тогда скажешь пожалуйста и еще у меня есть один вопрос почему из за пару строк коду фпс падает аш в 10 раз игра тормозит конктрено
посомтрите плиз.....код находиться в step в обьекте control (попробуйте его полностью удалить и посомтрите как кладко пойдет)
Прикрепления: CollisionExampl.rar (2.91 Mb)
boberДата: Суббота, 27.02.2010, 14:11 | Сообщение # 6
null
Группа: Модераторы
Сообщений: 131
Репутация: 10
Статус: Offline
Лучше бы написал эти строки, а то ГМ нету под рукой и соответственно отвечу только в понед
Кстати смена разрешения экрана реализована в примере Abduction на офф сайте ultimate3d


Лето в школе 4.0
stasenДата: Суббота, 27.02.2010, 14:22 | Сообщение # 7
Группа: Проверенные
Сообщений: 28
Репутация: 0
Статус: Offline
Code
if(camera.r=0&&window_mouse_get_x()>=350&&window_mouse_get_y()>=350&&window_mouse_get_x()<=350+razx&&window_mouse_get_y()<=350+razy&&MouseCheckButton(mb_left)){
temp=1;//если условие верно то возвращаем 1
}else{
temp=0;
};
sleep(100);
if (temp=1) {k+=1};
if(camera.r=0&&window_mouse_get_x()>=350&&window_mouse_get_y()>=380&&window_mouse_get_x()<=350+razx&&window_mouse_get_y()<=390+razy&&MouseCheckButton(mb_left)){
tem=1;//если условие верно то возвращаем 1
}else{
tem=0;
};
sleep(100);
if (tem=1) {k-=1};

вот код
boberДата: Суббота, 27.02.2010, 14:35 | Сообщение # 8
null
Группа: Модераторы
Сообщений: 131
Репутация: 10
Статус: Offline
Точно сказать не могу, но зачем ты берешь sleep(100)//заморозка игры
Советую убрать.

Добавлено (27.02.2010, 14:33)
---------------------------------------------
Так же в начале кода идет temp, а в конце tem так и задумано?
Скорее всего из-за sleep

Добавлено (27.02.2010, 14:35)
---------------------------------------------
Однозначно из-за sleep(100) - 0,1 сек каждый шаг, вот и получается, что ФПС технически не может быть выше 10, а т.к. 2 раза, то не выше 5.


Лето в школе 4.0
stasenДата: Суббота, 27.02.2010, 14:44 | Сообщение # 9
Группа: Проверенные
Сообщений: 28
Репутация: 0
Статус: Offline
я когда нажимаю левой клавишей он говорит что я много раз нажал ну тоесть не 1 а пять прибавляет вот затем и слипп чтоб тока по одному прибавляло

Добавлено (27.02.2010, 14:38)
---------------------------------------------
а как мне заменить слип

Добавлено (27.02.2010, 14:44)
---------------------------------------------
слушай дейчствительно из за слип тока вопрос как тогда быть

boberДата: Суббота, 27.02.2010, 14:47 | Сообщение # 10
null
Группа: Модераторы
Сообщений: 131
Репутация: 10
Статус: Offline
Тогда помести sleep внутрь первых фигурных скобок
if(camera.r=0&&window_mouse_get_x()>=350&&window_mouse_get_y()>=350&&window_mouse_get_x()<=350+razx&&window_mouse_get_y()<=350+razy&&MouseCheckButton(mb_left))
{
temp=1;//если условие верно то возвращаем 1
sleep(100)
}else
{
temp=0;
};

if (temp=1) {k+=1};
if(camera.r=0&&window_mouse_get_x()>=350&&window_mouse_get_y()>=380&&window_mouse_get_x()<=350+razx&&window_mouse_get_y()<=390+razy&&MouseCheckButton(mb_left)){
tem=1;//если условие верно то возвращаем 1
sleep(100);
}
else
{
tem=0;
};
sleep(100);
if (tem=1) {k-=1};
А лучше введи еще одну переменную которая и будет работать вместо sleep
Вообщем ПРИМЕРНО ТАК
If MouseCheckButton(mb_left)=1 && (прочие условия) && k=0
{выполняется 1 раз; k=1}
If MouseCheckButton(mb_left)=0 {k=0}// Разблокировать


Лето в школе 4.0
stasenДата: Суббота, 27.02.2010, 14:57 | Сообщение # 11
Группа: Проверенные
Сообщений: 28
Репутация: 0
Статус: Offline
вот с фторым вариантом я конечно не сильно понял ну мне первый понравился больше он и понятнее и легче....вообщем спасибо

Добавлено (27.02.2010, 14:57)
---------------------------------------------
слушай а есть команда чтоб текстуру поменять?ну вот например я нарисовал прямоугольник на экране и хочу поменять к ниму тескуру можно?

boberДата: Суббота, 27.02.2010, 15:05 | Сообщение # 12
null
Группа: Модераторы
Сообщений: 131
Репутация: 10
Статус: Offline
Вот второй вариант как раз правильнее, я просто не знаю какая переменная за что овечает, может вместо k поставь другую.
Смысл в том, что при нажатии ей присваивается значение 1 и оно не дает выполниться коду пока юзер не отпустит кнопку, при отпускании к=0 и снова готово при нажатии обработать событие.

Добавлено (27.02.2010, 15:05)
---------------------------------------------
можно.
Во-первых ты рисуешь его DrawTex?
ReleaseTexture(свой индекс)
LoadTexture(новая текстура, индекс тот же)


Лето в школе 4.0
stasenДата: Суббота, 27.02.2010, 15:14 | Сообщение # 13
Группа: Проверенные
Сообщений: 28
Репутация: 0
Статус: Offline
а я кажись понял что ты хочешь сказать про замену команды слип
да я рисую DrawTex но насчет как замнить не понял вот допустим у меня уже загружены две тукстуры у первой индекс один у второй 2 как мне заменить перву текструру второй
Code
DrawTex(1,350,390,1,0,255);
boberДата: Суббота, 27.02.2010, 15:16 | Сообщение # 14
null
Группа: Модераторы
Сообщений: 131
Репутация: 10
Статус: Offline
Ну тогда
DrawTex(2,350,390,1,0,255);


Лето в школе 4.0
stasenДата: Суббота, 27.02.2010, 15:20 | Сообщение # 15
Группа: Проверенные
Сообщений: 28
Репутация: 0
Статус: Offline
не ты меня не понял мне нужно заменить текстуру прямо во время игры ну тоесть вот например я нажал какую нить клавишу и чтоб тескура поменялась вот так можно?
boberДата: Суббота, 27.02.2010, 15:23 | Сообщение # 16
null
Группа: Модераторы
Сообщений: 131
Репутация: 10
Статус: Offline
ну собственно переменная должна быть то есть
Способ 1
if tmp=1
{DrawTex(1,350,390,1,0,255)}
if tmp=2
{DrawTex(2,350,390,1,0,255)}
И когда ты изменишь переменную пойдет рисоваться вторая текстура.

Способ 2
Можешь написать ТАК:
DrawTex(tmp,350,390,1,0,255)
И изменяя переменную tmp с 1 на 2 поменяешь текстуру.

Добавлено (27.02.2010, 15:23)
---------------------------------------------
При нажатии клавиши меняешь переменную.


Лето в школе 4.0

Сообщение отредактировал bober - Суббота, 27.02.2010, 15:32
stasenДата: Суббота, 27.02.2010, 15:30 | Сообщение # 17
Группа: Проверенные
Сообщений: 28
Репутация: 0
Статус: Offline
во спс мне кстати тоже потом такая идея с переменной пришла ну после того как я вопрос задал biggrin ,.... а вот насчет второго варианта я действительно видать не да понял давай я тебе лучше свой код обьясню я как раз его сократил
Code
if(camera.r=0&&window_mouse_get_x()>=350&&window_mouse_get_y()>=350&&window_mouse_get_x()<=350+razx&&window_mouse_get_y()<=350+razy&&MouseCheckButton(mb_left)){
k+=1};
if(camera.r=0&&window_mouse_get_x()>=350&&window_mouse_get_y()>=380&&window_mouse_get_x()<=350+razx&&window_mouse_get_y()<=390+razy&&MouseCheckButton(mb_left)){
k-=1};

на экране у меня есть две кнопки(нарисованных прямоугольника) и также рисуется переменная k так вот суть кода когда я нажимаю по первой кнопке то переменная к прибавляется на единицу когда щелкаю по второй кнопке то отбавляется на единицу а оно вместо этого прибавляет и отнимает по 5 или 6 единиц вот я и хотел ето исправить командой слип
boberДата: Суббота, 27.02.2010, 15:37 | Сообщение # 18
null
Группа: Модераторы
Сообщений: 131
Репутация: 10
Статус: Offline
if(camera.r=0&&window_mouse_get_x()>=350&&window_mouse_get_y()>=350&&window_mouse_get_x()<=350+razx&&window_mouse_get_y()<=350+razy&&MouseCheckButton(mb_left)) && nagal=0{
k+=1; nagal=1};
if(camera.r=0&&window_mouse_get_x()>=350&&window_mouse_get_y()>=380&&window_mouse_get_x()<=350+razx&&window_mouse_get_y()<=390+razy&&MouseCheckButton(mb_left)) && nagal=0{
k-=1; nagal=1};
If MouseCheckButton(mb_left)=0 { nagal=0}

Пробуй.


Лето в школе 4.0
stasenДата: Понедельник, 01.03.2010, 12:43 | Сообщение # 19
Группа: Проверенные
Сообщений: 28
Репутация: 0
Статус: Offline
че то ему не рваится в переменной nagal вот ошибка
Code
ERROR in
action number 1
of  Step Event
for object menu:

Error in code at line 1:
    if(camera.r=0&&window_mouse_get_x()>=350&&window_mouse_get_y()>=350&&window_mouse_get_x()<=350+razx&&window_mouse_get_y()<=350+razy&&MouseCheckButton(mb_left)&&nagal=0)

at position 161: Unknown variable nagal

Добавлено (27.02.2010, 15:56)
---------------------------------------------
а в создании то надо указать что переменная нулю равна вот что то я седня турлю......исправил теперь ошибки не возникает но и не щелкает на кнопку

Добавлено (01.03.2010, 12:43)
---------------------------------------------
народ и еще вопрос почему пиксели в гм больше чем пиксели на моем компе(понимаю звучит глупо ну все же вот такая проблема) я сделал чтоб на компе рисовались 2 кнопки одной на них наложил одну и тужу текстуру(150 на 50 размером) тока второй кнопке я указал размеры и сделал их такими же(тоесть 150 на 50) дальше сделал чтоб присходило какое нить действие когда жмешь на эти кнопки и в результате ето работало тока на первых половинах кнопки(тоесть правая и нижняя часть кнопки не работали) и я решил чтоб у меня на экране отображались кординаты курсора и получилось что если у меня текстура начинала рисоваться в 350 по "х" следовательно она должна была закончить ресоваться в 500(до 500 по "x" у меня и работала кнопка) а она длилась аш до 600 тоже самое и по "y" народ что ето такое?у одного меня так?и самое главное как ето исправить????

boberДата: Понедельник, 01.03.2010, 14:55 | Сообщение # 20
null
Группа: Модераторы
Сообщений: 131
Репутация: 10
Статус: Offline
Челчок должен работать.
С текстурой. Просто u3d растягивает её до размера 256 на 64. Бери текстуры со сторонами равными 32, 64, 128, 256 и т.п. и используй масштабирование.


Лето в школе 4.0
stasenДата: Понедельник, 01.03.2010, 19:46 | Сообщение # 21
Группа: Проверенные
Сообщений: 28
Репутация: 0
Статус: Offline
слушай а ты бы не смог плиз посмтореть то что я намудил и исправить а то там много всяких вопросв??
boberДата: Вторник, 02.03.2010, 10:09 | Сообщение # 22
null
Группа: Модераторы
Сообщений: 131
Репутация: 10
Статус: Offline
Пробовал такой код - всё работает!
if(camera.r=0 && window_mouse_get_x()>=350 && window_mouse_get_y()>=350 && window_mouse_get_x()<=350+razx&&window_mouse_get_y()<=350+razy&&MouseCheckButton(mb_left))&& nagal=0
{nagal=1
k+=1
}
if(camera.r=0 && window_mouse_get_x()>=350 && window_mouse_get_y()>=380 && window_mouse_get_x()<=350+razx&&window_mouse_get_y()<=390+razy&&MouseCheckButton(mb_left))&& nagal=0
{
nagal=1
k-=1
}
if MouseCheckButton(mb_left)=0 {nagal=0}


Лето в школе 4.0
stasenДата: Вторник, 02.03.2010, 13:12 | Сообщение # 23
Группа: Проверенные
Сообщений: 28
Репутация: 0
Статус: Offline
о теперь тоже все работает спасибо тока у меня еще один вопрос аналогичный сделал событие(клавиаттура "i") и сделал такой код
Code
if (r=0) then {r+=1} else {r-=1};
и он тоже от одного нажатия повторяестя много раз скажи плиз как ето исправить
boberДата: Вторник, 02.03.2010, 13:16 | Сообщение # 24
null
Группа: Модераторы
Сообщений: 131
Репутация: 10
Статус: Offline
Бери событие KeyPress

Лето в школе 4.0
stasenДата: Вторник, 02.03.2010, 19:31 | Сообщение # 25
Группа: Проверенные
Сообщений: 28
Репутация: 0
Статус: Offline
да получилось спасибо!а можно ето сделать в событии "клавиатура" но тока изменив код??или в событии степ???
Форум » Вопросы по Ultimate 3D » Проблемы новичков » Вопросы от stasen'а (как менять разрешение)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:


Школа Ultimate3D 2009-2010 год