Game Maker - создание игр | HellRoom Games
Июль 12, 2025, 13:31:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Canvas - манипуляции над канвасом игры (и прочее)  (Прочитано 5419 раз)
0 Пользователей и 1 Гость смотрят эту тему.
YellowAfterlife
Videogames, I'm afraid
Главный Модератор
*

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

Пол: Мужской
Награды:
Добавление и перевод новостей о Game Maker!500 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+300 репутации]Настоящий игродел!Знаток Game Maker!...
API: GameMaker Studio 2
Сообщений: 731



WWW
« : Февраль 08, 2012, 23:12:45 »

Это расширение предоставляет набор функций для манипуляции над <canvas> игры и окном.

Размер и положение canvas'а
Как вы возможно знаете, размером канваса можно управлять через tu_canvas.width\height.
Но, у оного нет свойств x\y которыми можно было бы передвигать его по странице.
Следующие функции позволяют это делать:
canvas_set_position(x, y) - передвигает канвас по странице.
window_get_width() - возвращает общую ширину страницы.
window_get_height() - возвращает общую высоту страницы.
Пример:
Код:
canvas_set_position((window_get_width() - tu_canvas.width) / 2,
(window_get_height() - tu_canvas.height) / 2); // установит канвас посредине страницы

Стиль канваса
В некоторых случаях вам может понадобится менять стиль (style) канваса. Для этого есть функции:
canvas_set_style(key, value) - изменяет CSS свойство
canvas_get_style(key) - возвращает значение CSS свойства

Создание канвасов
canvas_create(width, height)
Эта функция создает новый элемент <canvas> указанного размера, который можно использовать как поверхность.
Пример:
Код:
var canv = canvas_create(64, 64);
var ctx = tu_context; // сохраняет предыдущую цель рисования
tu_context = canv.context; // переставляет цель рисования на новый канвас
// рисуем в него оранжевый круг:
draw_set_color(255, 191, 0);
draw_set_alpha(1);
draw_circle(32, 32, 24, false);
// сбрасываем цель рисования на оригинальную
tu_context = ctx;
// заменяем первый кадр спрайта на созданный канвас
spr_player.frames[0] = canv;

* canvas.tex (1.65 Кб - загружено 779 раз.)
Записан

agentx001
Пользователь
***

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

API: 8.0 Pro
Сообщений: 85

Game_Maker+PHP+39DLL


« Ответ #1 : Февраль 10, 2012, 23:36:14 »

Интересно. НО не совсем понятно зачем нужно:) Вы бы лучше Box2D прикрутили, как раз недавно обновление для JS версии вышло.
Записан
YellowAfterlife
Videogames, I'm afraid
Главный Модератор
*

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

Пол: Мужской
Награды:
Добавление и перевод новостей о Game Maker!500 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+300 репутации]Настоящий игродел!Знаток Game Maker!...
API: GameMaker Studio 2
Сообщений: 731



WWW
« Ответ #2 : Февраль 11, 2012, 00:06:32 »

Интересно. НО не совсем понятно зачем нужно:) Вы бы лучше Box2D прикрутили, как раз недавно обновление для JS версии вышло.
Центрирование игры посредине браузера, изменение размеров игры, прочее.
С помощью canvas_create можно вообще делать кеш векторной графики.

Про Box2D, это уже кем-то сделано - http://percsich.hu/tgmforum/index.php?topic=127.0
Записан

vknw123
Посетитель
**

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

API: Game Maker 8.0 Pro
Сообщений: 28


« Ответ #3 : Февраль 18, 2012, 00:32:12 »

Код:
canvas_set_position((window_get_width() - tu_canvas.width) / 2,
(window_get_height() - tu_canvas.height) / 2); // установит канвас посредине страницы
Скажите, куда этот код пропечатать?
Записан
YellowAfterlife
Videogames, I'm afraid
Главный Модератор
*

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

Пол: Мужской
Награды:
Добавление и перевод новостей о Game Maker!500 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+300 репутации]Настоящий игродел!Знаток Game Maker!...
API: GameMaker Studio 2
Сообщений: 731



WWW
« Ответ #4 : Февраль 18, 2012, 01:31:27 »

Код:
canvas_set_position((window_get_width() - tu_canvas.width) / 2,
(window_get_height() - tu_canvas.height) / 2); // установит канвас посредине страницы
Скажите, куда этот код пропечатать?
Данный код стоит вставлять в событие, перед которым размеры или положение канваса могли изменится - то есть начало комнаты или шаг, если вам нужно динамически перемещать канвас при смене размеров окна.
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.084 секунд. Запросов: 30.