Понедельник, 25 Ноября 2024, 08:39

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
ИнтернетДата: Среда, 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)}}
/////
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг