Результаты поиска
| |
Интернет | Дата: Среда, 28 Октября 2015, 18:08 | Сообщение # 121 | Тема: Что лучше использовать для оптимизации |
постоянный участник
Сейчас нет на сайте
| Например f[0]=12 f[1]=13 f[2]=18 f[3]=1,21 и тд или же (переменные) f0=12 f1=13 f2=18 f3=1,21 Массив вроде читается как переменная с разными индексами, и должен оптимизировать игру (заменяя собой несколько переменных)?
Сообщение отредактировал Интернет - Среда, 28 Октября 2015, 18:10 |
|
| |
Интернет | Дата: Четверг, 15 Октября 2015, 22:38 | Сообщение # 122 | Тема: Столкнулся с variable_local_exists в GM:S |
постоянный участник
Сейчас нет на сайте
| Как можно заменить variable_local_exists в GM:S, а то функция есть только в GM8
|
|
| |
Интернет | Дата: Четверг, 15 Октября 2015, 16:54 | Сообщение # 123 | Тема: Вращение одного объекта вместе с другим. |
постоянный участник
Сейчас нет на сайте
| Цитата vampir0305 ( ) Интернет, а спрайт игрока по центру стоит? Ну конечно, но проблема уже решена
|
|
| |
Интернет | Дата: Среда, 14 Октября 2015, 20:57 | Сообщение # 124 | Тема: Вращение одного объекта вместе с другим. |
постоянный участник
Сейчас нет на сайте
| Цитата Леонид ( ) x=игрок.x+lengthdir_x(*расстояние от центра игрока до центра оружия*, игрок.image_angle) Ок помогло, я как раз думал о этой функции только я писал lengthdir_x(20,direction)
|
|
| |
Интернет | Дата: Среда, 14 Октября 2015, 19:44 | Сообщение # 125 | Тема: Вращение одного объекта вместе с другим. |
постоянный участник
Сейчас нет на сайте
| Цитата vampir0305 ( ) Нужно код для второго объекта в End Step вставлять. Нет это не помогает, вот например есть квадрат отметим на нём красную точку, привяжем к этому квадрату палку, так вот палка должна находится всегда в этой точке даже при вращении квадрата (точка же не является серединой квадрата) у меня получается, что палка при вращении квадрата крутится в одной точке на объекте, то есть координаты х и у должны меняться взависимости от координаты точки на квадрате, но как это сделать?
|
|
| |
Интернет | Дата: Воскресенье, 11 Октября 2015, 20:00 | Сообщение # 126 | Тема: Создание объекта, относительно вида |
постоянный участник
Сейчас нет на сайте
| вот сделал быстро Пример
Сообщение отредактировал Интернет - Воскресенье, 11 Октября 2015, 20:01 |
|
| |
Интернет | Дата: Воскресенье, 11 Октября 2015, 16:40 | Сообщение # 127 | Тема: Вращение одного объекта вместе с другим. |
постоянный участник
Сейчас нет на сайте
| Есть два предмета, 1-ый вращается (игрок), 2-ой оружие, так вот если просто привязать (х и у) оружия к игроку и задать ему image_angle=point_direction(x,y,игрок.x,игрок.y) то при вращении игрока оружие будет не в одной точке (руки например), а смещатся. Как сделать чтобы оружие при вращении вместе с игроком находилось в одной точке. (отрисовка тоже не помогает)
|
|
| |
Интернет | Дата: Воскресенье, 11 Октября 2015, 16:26 | Сообщение # 128 | Тема: Создание объекта, относительно вида |
постоянный участник
Сейчас нет на сайте
| В End Step view_xview[0] = x - view_wview[0] +сдвиг по х view_yview[0] = y - view_hview[0] + сдвиг по у /// view_xview[0] = max(0, min(view_xview[0],room_width + игрок.x - view_wview[0])); view_yview[0] = max(0, min(view_yview[0],room_height + игрок.y - view_hview[0])); }}}
Сообщение отредактировал Интернет - Воскресенье, 11 Октября 2015, 16:27 |
|
| |
Интернет | Дата: Понедельник, 05 Октября 2015, 21:12 | Сообщение # 129 | Тема: Не работает проверка массива в координатах курсора. |
постоянный участник
Сейчас нет на сайте
| Просто попробуй заполнить инвентарь одними голубыми шарами потом освободи одну ячейку и новый голубой шар туда не добавится, а чёрный добавится так и не могу решить проблему.
|
|
| |
Интернет | Дата: Воскресенье, 04 Октября 2015, 22:24 | Сообщение # 130 | Тема: Не работает проверка массива в координатах курсора. |
постоянный участник
Сейчас нет на сайте
| Цитата maksim1221232 ( ) Или ошибка новая выскакивает? Нет просто например заполняешь все ячейки одним к примеру голубым шаром потом одну освобождаешь но новый шар в неё уже не ложится. хотя если стак равен нулю то ячейка пусая.
|
|
| |
Интернет | Дата: Воскресенье, 04 Октября 2015, 19:56 | Сообщение # 131 | Тема: Не работает проверка массива в координатах курсора. |
постоянный участник
Сейчас нет на сайте
| И последнее у меня в этом инветоре ещё проблема с предметами при извлечении их из инвенторя второй раз предмет в эту же ячейку не встаёт хотя стоит if (stak_ob[mousx,mousy]=0){ naimen_ob[mousx,mousy]=''}
|
|
| |
Интернет | Дата: Воскресенье, 04 Октября 2015, 19:39 | Сообщение # 132 | Тема: Не работает проверка массива в координатах курсора. |
постоянный участник
Сейчас нет на сайте
| Цитата maksim1221232 ( ) Инвентарь шириной 3 клетки и высотой 2. А да кстать у меня инвентарь шириной 5 клеток и высотой 2 получается что работает только в диапазоне 3 на 2 как изменить?
Сообщение отредактировал Интернет - Воскресенье, 04 Октября 2015, 19:39 |
|
| |
Интернет | Дата: Воскресенье, 04 Октября 2015, 18:38 | Сообщение # 133 | Тема: Не работает проверка массива в координатах курсора. |
постоянный участник
Сейчас нет на сайте
| Ок лови + только за что отвечает сторчка if mousx>array_length_2d(naimen_ob,mousx) or mousy>array_length_2d(naimen_ob,mousy) не встречал никогда.
|
|
| |
Интернет | Дата: Воскресенье, 04 Октября 2015, 16:49 | Сообщение # 134 | Тема: Не работает проверка массива в координатах курсора. |
постоянный участник
Сейчас нет на сайте
| Вот посмотри
|
|
| |
Интернет | Дата: Воскресенье, 04 Октября 2015, 13:11 | Сообщение # 135 | Тема: Не работает проверка массива в координатах курсора. |
постоянный участник
Сейчас нет на сайте
| В Step ячейки if (visible){ mousx=floor((mouse_x-x)/sprite_height){// вычисляем координаты курсора по х и записываем их в переменную mousy=floor((mouse_y-y)/sprite_width){// вычисляем координаты курсора по y и записываем их в переменную }}} if mouse_check_button_pressed(mb_left){ if (naimen_ob[mousx,mousy]!=''){//если в координатах курсора массив не пустой то stak_ob[mousx,mousy]-=1// отнимаем 1 единицу от стака объектов только в этой ячейки массива if (stak_ob[mousx,mousy]=0){ naimen_ob[mousx,mousy]=''} }} При нажатии на объект который хотим подобрать with(o_ini){ //обращаемся к объекту инвенторя for(ix=0;ix<ini_x;ix+=1){ // проверяем ячейки for(iy=0;iy<ini_y;iy+=1){ with(other){ // обращаемся к данному предмету if other.naimen_ob[other.ix,other.iy]='' and other.max_ob[other.ix,other.iy]<maxnam{ // если в ячейках нет его имени и макс колличество меньше положенного то other.naimen_ob[other.ix,other.iy]=naimen // даём предмету имя указанное в переменной other.spr_ob[other.ix,other.iy]=sprite_index // присваеваем масиву спрайт объекта other.stak_ob[other.ix,other.iy]+=1// к стаку добовляем ещё одну единицу other.max_ob[other.ix,other.iy]+=1 // добовляем 1 единицу к колличеству объектов other.ob_index[other.ix,other.iy]=object_index//к масиву добовляем индекс объекта instance_destroy()//удаляем объект exit//заканчиваем цикл } else{// если же if other.naimen_ob[other.ix,other.iy]=naimen and other.max_ob[other.ix,other.iy]<maxnam{//если в ячейках есть имя и макс колличество меньше положенного то other.naimen_ob[other.ix,other.iy]=naimen// даём предмету имя указанное в переменной other.spr_ob[other.ix,other.iy]=sprite_index// присваеваем масиву спрайт объекта other.stak_ob[other.ix,other.iy]+=1// к стаку добовляем ещё одну единицу other.max_ob[other.ix,other.iy]+=1// добовляем 1 единицу к колличеству объектов other.ob_index[other.ix,other.iy]=object_index//к масиву добовляем индекс объекта instance_destroy() exit}}}}} with(o_ini){//обращаемся к объекту инвенторя for(ix=0;ix<ini_x;ix+=1){//проверяем ячейки for(iy=0;iy<ini_y;iy+=1){ if naimen_ob[ix,iy]='' and max_ob[ix,iy]<other.maxnam{ naimen_ob[ix,iy]=other.naimen spr_ob[ix,iy]=other.sprite_index ob_index[ix,iy]=other.object_index stak_ob[ix,iy]+=1 max_ob[ix,iy]+=1 with(other){ instance_destroy()} exit}}}} } В Draw ячейки x=view_xview[0]//x равен виду y=view_yview[0]//y равен виду for(ix=0;ix<ini_x;ix+=1){//запускаем цикл for(iy=0;iy<ini_y;iy+=1){ draw_sprite(sprite_index,image_index,x+ix*sprite_height,y+iy*sprite_width)//отрисовываем ячеку взависимости от ix и iy if (naimen_ob[ix,iy]!='') and (stak_ob[ix,iy]>0){//если ячейка не занята и стак >0 то draw_sprite(spr_ob[ix,iy],image_index,x+ix*sprite_height,y+iy*sprite_width) //отрисовываем спрайт предмета в ячейки }}} for(ix=0;ix<ini_x;ix+=1){//проверяем ячейки for(iy=0;iy<ini_y;iy+=1){ if stak_ob[ix,iy]>0{//если стак >0 то draw_text(x+ix*sprite_height,y+iy*sprite_width,stak_ob[ix,iy])// отрисовываем колличество предметов }}}Добавлено (04 октября 2015, 13:11) ---------------------------------------------
Цитата maksim1221232 ( ) Вроде бы тут ты пытаешься обратится к к массиву которого нету(или с индексом что то не так) Это наверное из-за переменных mousy и mousх ведь они равны только тогда когда курсор над ячейкой массива но даже если написать if (visible){ mousx=floor((mouse_x-x)/sprite_height){// вычисляем координаты курсора по х и записываем их в переменную mousy=floor((mouse_y-y)/sprite_width){// вычисляем координаты курсора по y и записываем их в переменную else{ mousx=0 mousy=0}} тоже не помогает
Сообщение отредактировал Интернет - Воскресенье, 04 Октября 2015, 11:38 |
|
| |
Интернет | Дата: Суббота, 03 Октября 2015, 23:15 | Сообщение # 136 | Тема: Не работает проверка массива в координатах курсора. |
постоянный участник
Сейчас нет на сайте
| Цитата maksim1221232 ( ) if (mouse_x>0 && mouse_x<32 && mouse_y>0 && mouse_y<32) Не помогло =(
|
|
| |
Интернет | Дата: Суббота, 03 Октября 2015, 21:56 | Сообщение # 137 | Тема: Не работает проверка массива в координатах курсора. |
постоянный участник
Сейчас нет на сайте
| Нажимаю мимо инвенторя Посмотри мой исходник если можешь помочь ___________________________________________ ############################################################################################ FATAL ERROR in action number 1 of Mouse Event for Glob Left Pressed for object o_ini:
Push :: Execution Error - Variable Index [5,2] out of range [5,-1] - -1.naimen_ob(100004,160002) at gml_Object_o_ini_GlobalLeftButtonPressed_1 (line 3) - if naimen_ob[mousx,mousy]!=''{ ############################################################################################ Просто если ставишь обычное нажатие то вычисляется только 1 ячейка массива, а если глобальня то все но если нажимаешь вне эконок то массив не определяется вот это я и не могу исправить.
Сообщение отредактировал Интернет - Суббота, 03 Октября 2015, 22:04 |
|
| |
Интернет | Дата: Суббота, 03 Октября 2015, 15:35 | Сообщение # 138 | Тема: Не работает проверка массива в координатах курсора. |
постоянный участник
Сейчас нет на сайте
| Это работает но при нажатии мимо инвентаря происходит ошибка
|
|
| |
Интернет | Дата: Пятница, 02 Октября 2015, 22:16 | Сообщение # 139 | Тема: Не работает проверка массива в координатах курсора. |
постоянный участник
Сейчас нет на сайте
| Цитата maksim1221232 ( ) В каком событии этот код? При нажатии левой кнопки мыши mousx=floor((mouse_x-x)/sprite_height){// вычисляем координаты курсора по х и записываем их в переменную mousy=floor((mouse_y-y)/sprite_width){// вычисляем координаты курсора по у и записываем их в переменную if naimen_ob[mousx,mousy]!=''{//если в координатах курсора массив пустой то stak_ob[mousx,mousy]-=1// отнимаем 1 единицу от стака объектов только в этой ячейки массива ///////// В столкновении с игроком for(ix=0;ix<ini_x;ix+=1){ for(iy=0;iy<ini_y;iy+=1){ naimen_ob[ix,iy]=name//масив получает имя этого объекта и т.д там много кода Вот ссылка на Исходник
Сообщение отредактировал Интернет - Пятница, 02 Октября 2015, 22:24 |
|
| |
Интернет | Дата: Пятница, 02 Октября 2015, 20:41 | Сообщение # 140 | Тема: Не работает проверка массива в координатах курсора. |
постоянный участник
Сейчас нет на сайте
| Почему при нажатии только на первую ячейку (если в ней есть предмет) происходит необходимое действие с этим предметом, при нажатии на другие (если там есть предмет) нужного действия не происходит. При нажатии на ячейку //// mousx=floor((mouse_x-x)/sprite_height){// вычисляем координаты курсора по х и записываем их в переменную mousy=floor((mouse_y-y)/sprite_width){// вычисляем координаты курсора по у и записываем их в переменную if naimen_ob[mousx,mousy]!=''{//если в координатах курсора массив пустой то stak_ob[mousx,mousy]-=1// отнимаем 1 единицу от стака объектов только в этой ячейки массива и т.д }} if stak_ob[mousx,mousy]=0{//если стак в координатах пустой то naimen_ob[mousx,mousy]=''}//ячейка в этих координатах пуста } //////////// При поподании объекта в инвентарь for(ix=0;ix<ini_x;ix+=1){ for(iy=0;iy<ini_y;iy+=1){ naimen_ob[ix,iy]=name//масив получает имя этого объекта и т.д там много кода ////////////////// Вот ещё отрисовка ячейки for(ix=0;ix<ini_x;ix+=1){ for(iy=0;iy<ini_y;iy+=1){ draw_sprite(sprite_index,image_index,x+ix*sprite_height,y+iy*sprite_width)}} /////
|
|
| |
|