Войти на сайт

Авторизация, ждите ...
×

ТЕМА: (Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл

(Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл 10 года 9 мес. назад #62497

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 257
  • Спасибо получено: 233
  • Проект месяца 1 местоПроект месяца 2 место3 место в Обучающем конкурсеРазработчикВетеран
Доброго времени суток.
Необходим скрипт "миниигры" Мозаика/Паззл.
Суть:
В отдельном поле/экране есть изображение, разбитой случайным образом на элементы. Нужно собрать в правильном
порядке. Именно изображение(!).
Как в "To the moon" или что-то подобное.

В принципе...Если есть на Вх или Хр, то тоже пойдет.
Мои игры [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.

(Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл 10 года 9 мес. назад #62498

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 911
  • Спасибо получено: 565
  • Программист JavaScript Программист RubyДаритель СтимкеяВетеранОратор
Впринципе даже самому написать не сложно и можно за 1 вечер.
Хотя это еще зависит от того, как вы ее представляете.

Например, являются ли кусочки квадратными или нужно резные края.
Последнее редактирование: 10 года 9 мес. назад от Lekste.
Администратор запретил публиковать записи гостям.

(Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл 10 года 9 мес. назад #63009

  • strelokhalfer
  • strelokhalfer аватар
  • Вне сайта
  • Архитектор Миров
  • Знатный грамотей
  • Сообщений: 1640
  • Спасибо получено: 1078
  • Переводчик2 место Сбитая кодировкаПрограммист RubyДаритель СтимкеяОрганизатор конкурсов2 место
На событиях можно сделать, есть идея даже как.
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
Администратор запретил публиковать записи гостям.

(Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл 10 года 9 мес. назад #63015

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 257
  • Спасибо получено: 233
  • Проект месяца 1 местоПроект месяца 2 место3 место в Обучающем конкурсеРазработчикВетеран
strelokhalfer, если поделишься - буду очень благодарен.
Мои игры [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.

(Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл 10 года 9 мес. назад #63023

  • strelokhalfer
  • strelokhalfer аватар
  • Вне сайта
  • Архитектор Миров
  • Знатный грамотей
  • Сообщений: 1640
  • Спасибо получено: 1078
  • Переводчик2 место Сбитая кодировкаПрограммист RubyДаритель СтимкеяОрганизатор конкурсов2 место
Уточнить хочу, по типу Пятнашек или по другому?
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
Администратор запретил публиковать записи гостям.

(Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл 10 года 9 мес. назад #63050

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 257
  • Спасибо получено: 233
  • Проект месяца 1 местоПроект месяца 2 место3 место в Обучающем конкурсеРазработчикВетеран
Не знаю, что такое Пятнашки.
Как в детской головоломке (как на рисунке)
Выемки - излишни, но принцип тот же.
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Мои игры [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.

(Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл 10 года 9 мес. назад #63054

  • strelokhalfer
  • strelokhalfer аватар
  • Вне сайта
  • Архитектор Миров
  • Знатный грамотей
  • Сообщений: 1640
  • Спасибо получено: 1078
  • Переводчик2 место Сбитая кодировкаПрограммист RubyДаритель СтимкеяОрганизатор конкурсов2 место
Т.е. дано поле, 4х4, картинка перемешана и просто выделив одну целимся на другую и они меняются между собой?
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
Администратор запретил публиковать записи гостям.

(Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл 10 года 9 мес. назад #63056

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 257
  • Спасибо получено: 233
  • Проект месяца 1 местоПроект месяца 2 место3 место в Обучающем конкурсеРазработчикВетеран
Да именно, размер поля не критичен (но все же форма - квадрат/прямоугольник).
На эвентах тоже думал, но все сводилось к условиям координат (плюс смысловых) и вырезанию кусочков картины в
графредакторе.

Есть другой путь? :unsure:
Мои игры [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.

(Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл 10 года 9 мес. назад #63057

  • strelokhalfer
  • strelokhalfer аватар
  • Вне сайта
  • Архитектор Миров
  • Знатный грамотей
  • Сообщений: 1640
  • Спасибо получено: 1078
  • Переводчик2 место Сбитая кодировкаПрограммист RubyДаритель СтимкеяОрганизатор конкурсов2 место
Скрипты, наверное, но не думаю, что на эвентах так уж и сложно сделать.
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
Администратор запретил публиковать записи гостям.

(Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл 10 года 9 мес. назад #63058

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 257
  • Спасибо получено: 233
  • Проект месяца 1 местоПроект месяца 2 место3 место в Обучающем конкурсеРазработчикВетеран
Для эвентов нету "сложно". :mad:
Есть "муторно" и "невозможно"...Это муторно, но реально.
Вот поэтому скрипт и искал.
Мои игры [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.

(Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл 10 года 9 мес. назад #63060

  • strelokhalfer
  • strelokhalfer аватар
  • Вне сайта
  • Архитектор Миров
  • Знатный грамотей
  • Сообщений: 1640
  • Спасибо получено: 1078
  • Переводчик2 место Сбитая кодировкаПрограммист RubyДаритель СтимкеяОрганизатор конкурсов2 место
Однообразно скорее.
"Стрелок, что-то ты неочень похож на свой аватар..."(с)
Администратор запретил публиковать записи гостям.

(Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл 10 года 9 мес. назад #63061

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 257
  • Спасибо получено: 233
  • Проект месяца 1 местоПроект месяца 2 место3 место в Обучающем конкурсеРазработчикВетеран
Да, а если брать в количестве больше 5-7... :wall:
Мои игры [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.

(Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл 10 года 9 мес. назад #63069

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 911
  • Спасибо получено: 565
  • Программист JavaScript Программист RubyДаритель СтимкеяВетеранОратор
Да не так уж сложно это сделать на скриптах то.

1) Берем картинку и разбиваем на кусочки так:
 
puzzle_x = 10 # Позиция паззла по oX
puzzle_y = 10 # Позиция паззла по oY

piece_width = original_img.width / pieces_in_row
piece_height = original_img.height / rows
 
@pieces = []
 
for n in 0..rows
  piece_row = []
  for m in 0..pieces_in_row
    piece = Sprite.new(Viewport.new(m * piece_width + puzzle_x, n * piece_height + puzzle_y, piece_width, piece_height))
    piece.contents = Bitmap.new(piece_width, piece_height)
    piece.contents.blt(0, 0, Rect.new(m * piece_width, n * piece_height, piece_width, piece_height))
    piece.x = m * piece_width + puzzle_x
    piece.y = n * piece_height + puzzle_y
    piece_row.push(piece)
  end
  @pieces.push(piece_row)
end

Таким образом получаем набор кусочков исходного изображения.

2) Позволить пользователю выбирать кусочки.
Делается аналогично выбору во всяких менюшках. Приблизительно так:
 
def initialize
  @row = 0
  @column = 0
  selection_reset
end
 
def selection_reset
  @selected_piece_id = -1
end
 
def onUserTriggeredHorizontal(isRightDir)
  if isRightDir
    @column += 1
  else
    @column -= 1
  end
end
 
def onUserTriggeredVertical(isDownDir)
  if isDownDir
    @row += 1
  else
    @row -= 1
  end
end
 
def swap_pieces(piece1, piece2)
  tmp_x = piece1.x
  tmp_y = piece1.y
  piece1.x = piece2.x
  piece1.y = piece2.y
  piece2.x = tmp_x
  piece2.y = tmp_y
end
 
def onUserTriggeredC
  if @selected_piece_id
    swap_pieces(@selected_piece, @pieces[@row][@column])
  end
  @selected_piece_id = @pieces[@row][@column]
 
  check_win_conditions
end
 
def onUserTriggeredB
  selection_reset
end
 
def check_win_conditions
  # Тут пробежать по всем кусочкам и проверить на своих ли они местах
  # Для этого, в них можно, например, записывать порядковый номер
end
 

Итог: Картинка разбивается на кусочки, которые независимы и могут быть перемешаны случайным образом.
Пользователь может выбрать кусочек и поменять его местами с другим кусочком.
После каждого хода происходит проверка, не собрано ли исходное изображение.
Последнее редактирование: 10 года 9 мес. назад от Lekste.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: DarchanKaen, MaltonTheWarrior, Wind@

(Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл 10 года 9 мес. назад #63072

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 257
  • Спасибо получено: 233
  • Проект месяца 1 местоПроект месяца 2 место3 место в Обучающем конкурсеРазработчикВетеран
Большое человеческое СПАСИБО! :laugh:
Если таки дойдут руки до того проекта, напишу тебя в титрах...сделаю их для этого. :mad:
Мои игры [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.

(Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл 10 года 9 мес. назад #63073

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 911
  • Спасибо получено: 565
  • Программист JavaScript Программист RubyДаритель СтимкеяВетеранОратор
Угу. Только дописать стандартные штуки смоги. Ну или я допишу как-нибудь. Создание сцены, например.
Администратор запретил публиковать записи гостям.

(Vx Ace) Ищу скрипт "миниигры" Мозаика/Паззл 10 года 9 мес. назад #63074

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 257
  • Спасибо получено: 233
  • Проект месяца 1 местоПроект месяца 2 место3 место в Обучающем конкурсеРазработчикВетеран
Буду очень признателен, если допишешь со временем.
Мои игры [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.
Модераторы: NeKotZima
Время создания страницы: 0.275 секунд