RS Game Maker Community
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

 
Расширенный поиск
  Главная  Форум   Вики Блоги FAQ Игры Статьи Примеры Войти Регистрация  
Вики
Все желающие приглашаются редактировать вики. Можете писать о своих (или чужих) играх, размещать туториалы, постить статьи - главное навесить категорию.
Страниц: 1 ... 353 354 355 356 357 358 359 360   Вниз
  Печать  
Ответы@Gmakers.ru — все вопросы сюда
0 Пользователей и 1 Гость смотрят эту тему.
deathsoul
дезсоул
Ветеран форума
*****

Репутация: 548
Offline Offline

Награды:
Легенда сайта
Сообщений: 1 853


21 Апреля 2011 в 01:14
Чтобы не было тем с вопросами, которые содержат всего два-три сообщения, все свои вопросы задавайтесь здесь. Если вопрос окажется слишком сложным для общей темы, модераторы всегда могут вынести обсуждение в отдельную тему.
Для этой темы действуют те же правила, что и для всего раздела, так что перед тем, как задать вопрос, обязательно ознакомьтесь с этой темой: «Ознакомьтесь, прежде чем задать вопрос». И не забудьте проверить, нет ли ответа на ваш вопрос в FAQ по Game Maker.
Последнее редактирование: 13 Октября 2013 в 19:01 от Огион
 
tolich
to ne lich
Ветеран форума
*****

Репутация: 214
Offline Offline

Сообщений: 1 488


moonlite

Ответ № 7121 25 Апреля 2017 в 18:29
@Vovan1802
x=mouse_x
y=mouse_y
view_xview=x-view_wview div 2
view_yview=y-view_hview div 2
Если ничего не напутал.

@Илья: как ты пережил GMS 1, там же констант не было?

Илья
Ветеран форума
*****

Репутация: 98
Offline Offline

Сообщений: 1 522

Ответ № 7122 25 Апреля 2017 в 18:54
@Илья: как ты пережил GMS 1, там же констант не было?
Да я не юзал ни разу студию, с 8.1 перешел =) Так что, констант нет?

Огион
Завсегдатай
****

Репутация: 132
Offline Offline

Сообщений: 960


Ответ № 7123 25 Апреля 2017 в 21:32
Да есть константы и в GMS, и в GMS2, просто теперь они называются «макросы». Толич тебя траллирует.
Правда, работают они по-другому: теперь это не значение, которое вычисляется при запуске игры, а подстановка. Как #define в сях.
В GMS2 макросы нужно прописывать прямо в коде:
#macro tau 2*pi
RTFM
Vovan1802
Активный участник
**

Репутация: 2
Offline Offline

Сообщений: 130

Ответ № 7124 25 Апреля 2017 в 21:44
@Vovan1802
x=mouse_x
y=mouse_y
view_xview=x-view_wview div 2
view_yview=y-view_hview div 2
Если ничего не напутал.
Что то не то, теперь как будто пропали границы комнаты и она стала бесконечной. Сейчас объект постоянно движется в ту же сторону, в какую относительно центра комнаты направлена мышь. Единственная точка, в которой объект стоит на месте, это самый центр экрана
Vovan1802
Активный участник
**

Репутация: 2
Offline Offline

Сообщений: 130

Ответ № 7125 26 Апреля 2017 в 01:31
И еще вопрос. Мне нужно чтоб при нажатии на правую кнопку мыши рисовался спрайт в координате положения мыши. Сейчас у меня так в 
if mouse_check_button_released(mb_right)
draw_sprite(спрайт,0,mouse_x,mouse_y)
Спрайт рисуется, но через кадр исчезает. Что сделать, чтоб он рисовался и оставался?
Огион
Завсегдатай
****

Репутация: 132
Offline Offline

Сообщений: 960


Ответ № 7126 26 Апреля 2017 в 11:53
Игра полностью обновляет кадр каждый шаг, то есть заново рисует все фоны, спрайты, частицы и всё, что прописано в событиях рисования. Поэтому и получается, что твой спрайт существует на экране только в тот кадр, когда отпущена кнопка мыши.
Решения есть разные в зависимости от того, чего ты пытаешься добиться. Опиши подробнее, для чего тебе нужно рисовать спрайт.
Vovan1802
Активный участник
**

Репутация: 2
Offline Offline

Сообщений: 130

Ответ № 7127 26 Апреля 2017 в 12:03
Игра полностью обновляет кадр каждый шаг, то есть заново рисует все фоны, спрайты, частицы и всё, что прописано в событиях рисования. Поэтому и получается, что твой спрайт существует на экране только в тот кадр, когда отпущена кнопка мыши.
Решения есть разные в зависимости от того, чего ты пытаешься добиться. Опиши подробнее, для чего тебе нужно рисовать спрайт.
Короче создаю что то типа рисовалки. Есть палитра цветов, есть поле для рисования. Тыкаю левой кнопкой мыши на нужный цвет, возле курсора появляется пиксель нужного цвета. Теперь мне надо чтобы при нажатии на правую кнопку мыши этот пиксель разово рисовался в координате положения мыши и оставался там навсегда. Важно чтоб рисовался только 1 пиксель, а после этого запускался таймер, на 10 секунд запрещающий дальнейшее рисование. Ну с таймером все понятно, а вот с рисованием проблема. Как вариант можно создавать объекты этих пикселей, но так наверно лагать сильно будет после того как нарисуется большое количество таких объектов
Огион
Завсегдатай
****

Репутация: 132
Offline Offline

Сообщений: 960


Ответ № 7128 26 Апреля 2017 в 13:15
Тогда тебе нужно изучить поверхности (aka сурфейсы). Они как раз для такого предназначены.
Vovan1802
Активный участник
**

Репутация: 2
Offline Offline

Сообщений: 130

Ответ № 7129 26 Апреля 2017 в 14:23
Тогда тебе нужно изучить поверхности (aka сурфейсы). Они как раз для такого предназначены.
Ну вроде изучил, спасибо. Вечером буду пробовать
Vovan1802
Активный участник
**

Репутация: 2
Offline Offline

Сообщений: 130

Ответ № 7130 27 Апреля 2017 в 13:00
Ну вроде как все норм, но есть одно но. Сейчас у меня есть холст (сурфейс), есть курсор с прикрепленным к нему спрайтом пикселя определенного цвета. При нажатии на ЛКМ этот спрайт пикселя рисуется на сурфейсе, но почему то как то странно он рисуется. Сам пиксель- квадратик 1х1 пиксель(да, я кэп), а на сурфейсе рисуется не квадратик, а круглая точка, по краям растушеванная. Скрин приложил. Красным обведен спрайт, прикрепленный к курсору, а левее то, что рисуется. Можно как то это исправить? Кстати, если увеличить размер самого спрайта пикселя, то рисуется нормально, но такой вариант не подходит, так как там придется делать какую то искуственную сетку для рисования этих пикселей, а я не знаю как(( Что посоветуете в такой ситуации?
Код в   такой:
draw_surface(surf,0,0);

if mouse_check_button_released(mb_right) && global.color=1
{surface_set_target(surf);
draw_sprite(black,0,mouse_x,mouse_y)
surface_reset_target();}
Прикреплённые файлы Графические миниатюры:
Последнее редактирование: 27 Апреля 2017 в 13:09 от Vovan1802
ГоК
Начинающий
Старожил
******

Репутация: 365
Offline Offline

Награды:
Легенда сайтаЗа интересные проекты
Сообщений: 2 038


Ответ № 7131 27 Апреля 2017 в 14:16
Попробуй отключить сглаживание.
Прикреплённые файлы Графические миниатюры:
Vovan1802
Активный участник
**

Репутация: 2
Offline Offline

Сообщений: 130

Ответ № 7132 27 Апреля 2017 в 15:27
Попробуй отключить сглаживание.
Спасибо, помогло))
Vovan1802
Активный участник
**

Репутация: 2
Offline Offline

Сообщений: 130

Ответ № 7133 27 Апреля 2017 в 18:23
Но все таки остался нерешенным вопрос с приближением камеры. Мне нужно чтоб вид приближался относительно мышки, а не относительно угла комнаты. Сейчас в колесике UP это:
if view_wview > global.minview
{ view_wview -= 20; //(4:3)
 view_hview -= 15;
 view_hborder = view_wview div 2;
 view_vborder = view_hview div 2;

}
в колесике DOWN:
if view_wview < global.maxview
{ view_wview += 20; //(4:3)
 view_hview += 15;
 view_hborder = view_wview div 2;
 view_vborder = view_hview div 2;

}
В   это:
global.minview = 150;
global.maxview = 900;
txpart=1/view_wview;
typart=1/view_hview;
Все это взято из примера на форуме, я не совсем понял как это работает. Но сейчас камера приближается только к координатам комнаты (0,0), а нужно чтоб приближало к месту наведения мыши. Как быть? А то я что то никак не допру...
Vovan1802
Активный участник
**

Репутация: 2
Offline Offline

Сообщений: 130

Ответ № 7134 28 Апреля 2017 в 00:02
И еще такой вопрос. При приближении камеры увеличивается шрифт. Можно как то сделать так, чтоб текст не приближался, а в любом случае был бы одного размера?
Vovan1802
Активный участник
**

Репутация: 2
Offline Offline

Сообщений: 130

Ответ № 7135 28 Апреля 2017 в 00:27
А еще вот что. Есть у кого идеи для приближения зума под андроид? Типа альтернативы колесика мыши. Может бегунок какой нибудь, или полоса масштабирования. Если есть пример, скиньте пожалуйста
Огион
Завсегдатай
****

Репутация: 132
Offline Offline

Сообщений: 960


Ответ № 7136 28 Апреля 2017 в 00:57
И еще такой вопрос. При приближении камеры увеличивается шрифт. Можно как то сделать так, чтоб текст не приближался, а в любом случае был бы одного размера?
d3d_transform_set_scaling(1/zoom, 1/zoom, 1/zoom);
d3d_transform_add_translation(view_xview[0], view_yview[0], 0);

/*Рисуешь интерфейс*/

d3d_transform_set_identity();
Vovan1802
Активный участник
**

Репутация: 2
Offline Offline

Сообщений: 130

Ответ № 7137 28 Апреля 2017 в 01:38

d3d_transform_set_scaling(1/zoom, 1/zoom, 1/zoom);
d3d_transform_add_translation(view_xview[0], view_yview[0], 0);

/*Рисуешь интерфейс*/

d3d_transform_set_identity();
zoom-это что за значение?
Mordanius
Активный участник
**

Репутация: 10
Offline Offline

Сообщений: 168


Старый казуал =(

Ответ № 7138 28 Апреля 2017 в 01:44
Но сейчас камера приближается только к координатам комнаты (0,0), а нужно чтоб приближало к месту наведения мыши. Как быть? А то я что то никак не допру...

Попробуй при смене масштаба двигать вид на половину этой величины.

view_xview += 10;
view_yview += 7.5;

Не знаю, работают ли тут дробные числа, можно взять шаг побольше. Например, 22, 16 и 11, 8.

Еще может быть глюк, если ты используешь несколько видов. Тогда нужно указывать номер вида. (Ваш кэп).

З.Ы. Это будет масштабирование по центру экрана. Зум к курсору чуть сложнее.

view_xview += 20 * ((mouse_x - view_xview) / view_wview);
view_yview += 15 * ((mouse_y - view_yview) / view_hview);

Кажись так.
Последнее редактирование: 28 Апреля 2017 в 01:55 от Mordanius
Vovan1802
Активный участник
**

Репутация: 2
Offline Offline

Сообщений: 130

Ответ № 7139 28 Апреля 2017 в 01:48

Попробуй при смене масштаба двигать вид на половину этой величины.

view_xview += 10;
view_yview += 7.5;

Не знаю, работают ли тут дробные числа, можно взять шаг побольше. Например, 22, 16 и 11, 8.

Еще может быть глюк, если ты используешь несколько видов. Тогда нужно указывать номер вида. (Ваш кэп).
Не, это не поможет. Просто медленнее будет приближаться/отдаляться вид. А по поводу нескольких видов не понял...
Mordanius
Активный участник
**

Репутация: 10
Offline Offline

Сообщений: 168


Старый казуал =(

Ответ № 7140 28 Апреля 2017 в 02:05
Не, это не поможет. Просто медленнее будет приближаться/отдаляться вид. А по поводу нескольких видов не понял...

Просто вставь вот это в MOUSE_DOWN:

if view_wview < global.maxview
{ view_wview += 20; //(4:3)
 view_hview += 15;
 view_hborder = view_wview div 2;
 view_vborder = view_hview div 2;
 view_xview += 20 * ((mouse_x - view_xview) / view_wview);
 view_yview += 15 * ((mouse_y - view_yview) / view_hview);
}

И с обратным знаком в MOUSE_UP. А по поводу видов - можно использовать сразу несколько, Включаются в настройках комнаты. Если ты включил больше одного вида, нужно указывать номер при любых действиях с ним. Например, view_xview[1].
Страниц: 1 ... 353 354 355 356 357 358 359 360   Вверх
  Печать  
 
Перейти в:  

RSGMC (gmakers.ru) © 2007—2017
Счётчик–@Mail.ru