Результаты поиска
Freaky_Brainstorm Дата: Воскресенье, 26 Февраля 2017, 20:13 | Сообщение # 1 | Тема: [2D] Bullet Trade [TDS]
был не раз
Сейчас нет на сайте
Цитата NewbieDev (
)
Умер проект?
Умер) Но снова возродился на GameMaker. Сейчас думаю как можно вернуть управление темой. (Просто восстановил пароль в итоге). Долго небыло ответов от Mike6995, делаю все сам.
Сообщение отредактировал Freaky_Brainstorm - Понедельник, 27 Февраля 2017, 07:13
Freaky_Brainstorm Дата: Воскресенье, 26 Февраля 2017, 18:12 | Сообщение # 2 | Тема: Анимация в step event
был не раз
Сейчас нет на сайте
Цитата Интернет (
)
Проверил вот это работает
Спасибо большое. Весь код ивента(может кому пригодится):
Код
if (keyboard_check_released(ord('R'))) { sprite_index = spr_player_reload; image_index = 0; } if (sprite_index == spr_player_reload) { if (image_index < 5) { image_speed = 0.15; } else { if (bullets_pack < oboima) { if (bullets_count >= oboima) { bullets_count -= oboima - bullets_pack; bullets_pack = oboima; } else { bullets_pack = bullets_count; bullets_count = 0; } } sprite_index = spr_player_shoot; image_speed = 0.5; } } else { if (mouse_check_button(mb_left)) { sprite_index = spr_player_shoot; image_speed = 0.5; } else { sprite_index = spr_player_idle; image_speed = 0.1; } } if (keyboard_check(ord('W'))) y -= walk_speed; if (keyboard_check(ord('S'))) y += walk_speed; if (keyboard_check(ord('A'))) x -= walk_speed; if (keyboard_check(ord('D'))) x += walk_speed;
Сообщение отредактировал Freaky_Brainstorm - Воскресенье, 26 Февраля 2017, 18:58
Freaky_Brainstorm Дата: Воскресенье, 26 Февраля 2017, 17:57 | Сообщение # 3 | Тема: Анимация в step event
был не раз
Сейчас нет на сайте
Интернет , не работает. спрайт дергается, пытается проиграть анимацию, но включается idle. Так получается, что событие завершается раньше, чем проиграется анимация, а нужно что бы анимация вся проигралась, затем просчиталась логика и код пошел дальше
Сообщение отредактировал Freaky_Brainstorm - Воскресенье, 26 Февраля 2017, 18:07
Freaky_Brainstorm Дата: Воскресенье, 26 Февраля 2017, 17:46 | Сообщение # 4 | Тема: Примеры кода С#
был не раз
Сейчас нет на сайте
Цитата lionofdark (
)
Freaky_Brainstorm, доброго времени суток, вы так любите цикл for не пробывали его заменить на lynq конструкцию с лямба выражениями ? в этом коде (Проверка на пересечение с 3D-объектом, перевод из экранных координат в мировые)
Ну покажите как это делается при помощи LI NQ
Freaky_Brainstorm Дата: Воскресенье, 26 Февраля 2017, 17:41 | Сообщение # 5 | Тема: Анимация в step event
был не раз
Сейчас нет на сайте
Всем привет. Возможно, данный вопрос освещался на форуме, но я не нашел. Есть такой код:Код
image_angle = point_direction(x, y, mouse_x, mouse_y); if (mouse_check_button(mb_left)) { sprite_index = spr_player_shoot; image_speed = 0.5; } else if (keyboard_check_released(ord('R'))) { // Здесь нужно как-то подождать пока проиграется вся анимация, // а уже потом запускать логику sprite_index = spr_player_reload; image_speed = 0.15; // логика перезарядки if (bullets_pack < oboima) { if (bullets_count >= oboima) { bullets_count -= oboima - bullets_pack; bullets_pack = oboima; } else { bullets_pack = bullets_count; bullets_count = 0; } } } else { sprite_index = spr_player_idle; image_speed = 0.1; } if (keyboard_check(ord('W'))) y -= walk_speed; if (keyboard_check(ord('S'))) y += walk_speed; if (keyboard_check(ord('A'))) x -= walk_speed; if (keyboard_check(ord('D'))) x += walk_speed;
Заранее благодарю
Сообщение отредактировал Freaky_Brainstorm - Воскресенье, 26 Февраля 2017, 17:42
Freaky_Brainstorm Дата: Понедельник, 06 Июня 2016, 14:13 | Сообщение # 6 | Тема: Примеры кода С#
был не раз
Сейчас нет на сайте
Managed DirectX 9 Настройка девайса
Код
#region Настройка девайса Format current = Manager.Adapters[0].CurrentDisplayMode.Format; present_params = new PresentParameters(); present_params.Windowed = true; present_params.SwapEffect = SwapEffect.Discard; present_params.EnableAutoDepthStencil = true; present_params.AutoDepthStencilFormat = DepthFormat.D16; present_params.BackBufferFormat = current; present_params.BackBufferCount = 1; int adapterOrdinal = Manager.Adapters.Default.Adapter; CreateFlags flags = CreateFlags.SoftwareVertexProcessing; Caps caps = Manager.GetDeviceCaps(adapterOrdinal, DeviceType.Hardware); if (caps.DeviceCaps.SupportsHardwareTransformAndLight) { flags = CreateFlags.HardwareVertexProcessing; } if (caps.DeviceCaps.SupportsPureDevice) { flags |= CreateFlags.PureDevice; } if (device != null) device.Dispose(); // Перебираем все режимы MSAA от MSAA 16x до MSAA 2x for (present_params.MultiSample = MultiSampleType.SixteenSamples; present_params.MultiSample >= MultiSampleType.TwoSamples; present_params.MultiSample--) { try { // Пытаемся создать устройство с использованием текущего режима MSAA device = new Device(0, DeviceType.Hardware, dxPanel3D, flags, present_params); // Если удалось создать устройство, прерываем цикл break; } catch (InvalidCallException) { } } // Если устройство всё же создать не удалось if (device == null) { // Выключаем MSAA present_params.MultiSample = MultiSampleType.None; // Создаём устройство device = new Device(0, DeviceType.Hardware, dxPanel3D, flags, present_params); } device.DeviceReset += (sender, e) => dxPanel3D.Invalidate(); device.RenderState.CullMode = Cull.Clockwise; device.RenderState.Lighting = true; #endregion
Установка фильтрации текстур
Код
#region Установка фильтрации текстуры // Установка фильтра сжатия - анизотропный, если поддерживается видеокартой, иначе - линейный (если тоже поддерживается) if (device.DeviceCaps.TextureFilterCaps.SupportsMinifyAnisotropic) { device.SamplerState[0].MinFilter = TextureFilter.Anisotropic; } else if (device.DeviceCaps.TextureFilterCaps.SupportsMinifyLinear) { device.SamplerState[0].MinFilter = TextureFilter.Linear; } // Установка фильтра растяжения - анизотропный, если поддерживается видеокартой, иначе - линейный (если тоже поддерживается) if (device.DeviceCaps.TextureFilterCaps.SupportsMagnifyAnisotropic) { device.SamplerState[0].MagFilter = TextureFilter.Anisotropic; } else if (device.DeviceCaps.TextureFilterCaps.SupportsMagnifyLinear) { device.SamplerState[0].MagFilter = TextureFilter.Linear; } // Выставляем линейное сглаживание текстур device.SetSamplerState(0, SamplerStageStates.MinFilter, (int)TextureFilter.Linear); device.SetSamplerState(0, SamplerStageStates.MagFilter, (int)TextureFilter.Linear); device.SetSamplerState(0, SamplerStageStates.MipFilter, (int)TextureFilter.Linear); #endregion
Установка текстур с поддержкой альфа-канала
Код
device.RenderState.AlphaBlendEnable = true; device.RenderState.SourceBlend = Blend.SourceAlpha; device.RenderState.DestinationBlend = Blend.InvSourceAlpha; device.RenderState.BlendOperation = BlendOperation.Add;
Проверка на пересечение с 3D-объектом, перевод из экранных координат в мировые
Код
/// <summary> /// Проверка на пересечение объекта с курсором мыши /// </summary> /// <param name="x">Положение мыши по оси X</param> /// <param name="y">Положение мыши по оси Y</param> /// <param name="camera">Экземпляр камеры</param> /// <param name="dxPanel">Экземпляр панели отрисовки</param> public bool ChectIntersection(int x, int y, Camera camera) { // Берём 2 точки в экранных координатах Vector3 mousePosNear = new Vector3(x, y, 0); Vector3 mousePosFar = new Vector3(x, y, 1); // Переводим их в мировые координаты, вызывая метод Unproject для каждой mousePosNear.Unproject(device.Viewport, device.Transform.Projection, device.Transform.View, device.Transform.World); mousePosFar.Unproject(device.Viewport, device.Transform.Projection, device.Transform.View, device.Transform.World); // Полученные 2 точки задают луч, в мировых координатах Vector3 direction = mousePosFar - mousePosNear; direction.Normalize(); IntersectInformation IntersectInfo; float nearestDist = -1.0f; int nearestId = -1; for (int i = 0; i < Verts.Length; i += 3) { Geometry.IntersectTri(Verts[i].Position, Verts[i + 1].Position, Verts[i + 2].Position, mousePosNear, direction, out IntersectInfo); if (IntersectInfo.Dist != 0) { if (nearestDist == -1.0f || IntersectInfo.Dist < nearestDist) { nearestDist = IntersectInfo.Dist; nearestId = i; } } } WorldIntersectionPoint = Vector3.Normalize(direction) * nearestDist + camera.GetPosition(); if (nearestId != -1) { IsSelected = true; } else { IsSelected = false; } return IsSelected; }
Сообщение отредактировал Freaky_Brainstorm - Понедельник, 06 Июня 2016, 14:27
Freaky_Brainstorm Дата: Среда, 09 Декабря 2015, 01:13 | Сообщение # 7 | Тема: Ищу Программиста (я художник, есть идея-концепт)
был не раз
Сейчас нет на сайте
Отправил личное сообщение.