IDEA GALAXY 2d / 3D

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • IDEA GALAXY 2d / 3D

    Witajcie wszyscy.
    Dawno mnie tu nie było i widzę że jest ogrom prac zrobiony przy NEW STAR, to super.
    Czemu nie dacie już galaxy tej nowej do systemu,tak by to był standardowy plan. Tak tylko pytam.
    JA rozwijam NEW STAR w inną grę ,niektórzy wiedzą o co chodzi,chyba że zapomnieli już :)
    Pomyślcie nad tą galaktyką . ( większość z Was ją ma przecież ) :D
  • drive.google.com/file/d/1ECyam…CFYoUEn1/view?usp=sharing типа такой ? сделано позже поделюсь надо доработать, хотя уже рабочая , текстуры не стал грузить больно замедляют все . по сути осталось доделать дизайн , системы присваиваются рандомно, планеты по умолчанию тоже с файла, название уже сами меняем системы, и планеты , в моей игре реализовано имя сменить системы за платную основу , но можно убрать и плюс рандомное количество планет, для классики придется править .. у меня рассчитано 1 галактика, 1500 систем, в каждой системе от 2 до 9 планет

    The post was edited 1 time, last by DenPUBG ().

  • Я делаю свое. У меня не рассчитано на NEW STAR и там думаю работать судя по тому что я видел без шаманства не будет мой код .. я не пробовал этот проект, так как мне нравится чистый код изначально, простите может ошибаюсь, но так думаю глянув на файлы в том проекте и зайдя в игру я такого не чего не увидел если честно.. мой ближе к Danter14 и mimikri я учусь у них и облегчаю код и беру у них лучшее и делать буду для стандартной версии, а не под кого то.. , там код запутан для новичков и усложнен лишним.. я не люблю такого, мне нравится чистый код и минимум переходов.. чистую версию совместимую с 1.8-2.0 я выложу, как подчищу от своего кода и сделаю под стандарт, но только базовую, вывод планок и меню + оптимизация на вас , каждый дальше дорабатывает под себя

    The post was edited 4 times, last by DenPUBG ().

  • к примеру вот это мой первый опыт (выбранный код с галактики ), я для себя сделал интереснее и упростил ..тут выложу общую задумку. это эффект появления ежедневного бонуса скриптом, (он у меня появляется на любой странице)
    можете положить в корень любой страницы без переменных будет работать сразу - это чистый js.. у себя сделал оптимизацию и трансформацию фигуры в стиле sci fi но мне проще внедрить так как галактика у меня на canvas+ ajax вся (тут базовое оставил артефакт и звезды )

    Source Code

    1. <canvas id="artifactCanvas"></canvas>
    2. <script>
    3. const canvas = document.getElementById('artifactCanvas');
    4. const ctx = canvas.getContext('2d');
    5. let width, height, centerX, centerY;
    6. // Размеры
    7. function resizeCanvas() {
    8. width = canvas.width = window.innerWidth;
    9. height = canvas.height = window.innerHeight;
    10. centerX = width / 2;
    11. centerY = height / 2;
    12. }
    13. resizeCanvas();
    14. window.addEventListener('resize', resizeCanvas);
    15. // Звездное поле
    16. const stars = [];
    17. for (let i = 0; i < 200; i++) {
    18. stars.push({
    19. x: Math.random() * width - width/2,
    20. y: Math.random() * height - height/2,
    21. z: Math.random() * width,
    22. size: Math.random() * 1.5 + 0.5,
    23. alpha: Math.random()
    24. });
    25. }
    26. // Генерация геометрии артефакта
    27. function createArtifactGeometry() {
    28. const layers = 4;
    29. const pointsPerLayer = 8;
    30. const geometry = [];
    31. for (let layer = 0; layer < layers; layer++) {
    32. const radius = 40 + layer * 15;
    33. const layerPoints = [];
    34. for (let i = 0; i < pointsPerLayer; i++) {
    35. const angle = (Math.PI * 2 / pointsPerLayer) * i;
    36. layerPoints.push({
    37. angle,
    38. radius,
    39. layer,
    40. pulseOffset: Math.random() * Math.PI * 2,
    41. spinOffset: Math.random() * Math.PI * 2
    42. });
    43. }
    44. geometry.push(layerPoints);
    45. }
    46. return geometry;
    47. }
    48. const artifact = createArtifactGeometry();
    49. // Основной цикл анимации
    50. function animate() {
    51. // Очистка
    52. ctx.fillStyle = 'rgba(0, 0, 0, 0.2)';
    53. ctx.fillRect(0, 0, width, height);
    54. // Обновление звезд
    55. stars.forEach(star => {
    56. star.z -= 0.5;
    57. if (star.z <= 0) star.z = width;
    58. });
    59. // Рисование звезд
    60. drawStars();
    61. // Время для анимации
    62. const time = Date.now() * 0.001;
    63. // Центральный кристалл
    64. drawCentralCrystal(time);
    65. // Внешние слои
    66. artifact.forEach((layer, layerIndex) => {
    67. drawArtifactLayer(layer, layerIndex, time);
    68. });
    69. requestAnimationFrame(animate);
    70. }
    71. // Рисование звезд
    72. function drawStars() {
    73. ctx.fillStyle = 'white';
    74. stars.forEach(star => {
    75. ctx.globalAlpha = star.alpha;
    76. ctx.beginPath();
    77. ctx.arc(star.x + centerX, star.y + centerY, star.size, 0, Math.PI * 2);
    78. ctx.fill();
    79. });
    80. ctx.globalAlpha = 1;
    81. }
    82. // Рисование центрального кристалла
    83. function drawCentralCrystal(time) {
    84. const pulse = 1 + Math.sin(time * 4) * 0.1;
    85. const glow = 1 + Math.sin(time * 2) * 0.2;
    86. // Внутренний кристалл
    87. ctx.save();
    88. ctx.translate(centerX, centerY);
    89. ctx.rotate(time * 0.5);
    90. ctx.beginPath();
    91. ctx.moveTo(0, -30 * pulse);
    92. ctx.lineTo(15 * pulse, 0);
    93. ctx.lineTo(0, 30 * pulse);
    94. ctx.lineTo(-15 * pulse, 0);
    95. ctx.closePath();
    96. const gradient = ctx.createRadialGradient(0, 0, 0, 0, 0, 30);
    97. gradient.addColorStop(0, 'rgba(0, 255, 255, 1)');
    98. gradient.addColorStop(1, 'rgba(0, 255, 255, 0)');
    99. ctx.fillStyle = gradient;
    100. ctx.fill();
    101. // Энергетические импульсы
    102. ctx.strokeStyle = 'rgba(0, 255, 255, 0.5)';
    103. ctx.lineWidth = 1;
    104. ctx.beginPath();
    105. for (let i = 0; i < 8; i++) {
    106. const angle = (i / 8) * Math.PI * 2;
    107. const x = Math.cos(angle) * 35 * glow;
    108. const y = Math.sin(angle) * 35 * glow;
    109. ctx.moveTo(0, 0);
    110. ctx.lineTo(x, y);
    111. }
    112. ctx.stroke();
    113. ctx.restore();
    114. }
    115. // Рисование слоя артефакта
    116. function drawArtifactLayer(layer, layerIndex, time) {
    117. ctx.save();
    118. ctx.translate(centerX, centerY);
    119. ctx.rotate(time * (layerIndex % 2 ? -0.05 : 0.05));
    120. const baseRadius = layer[0].radius;
    121. const pulseFactor = 1 + Math.sin(time * 2 + layerIndex) * 0.1;
    122. // Рисование точек и соединений
    123. layer.forEach(point => {
    124. const pulse = Math.sin(time * 3 + point.pulseOffset) * 0.2 + 1;
    125. const x = Math.cos(point.angle + time * 0.3 + point.spinOffset) * (baseRadius * pulseFactor * pulse);
    126. const y = Math.sin(point.angle + time * 0.3 + point.spinOffset) * (baseRadius * pulseFactor * pulse);
    127. // Соединительные линии
    128. ctx.beginPath();
    129. ctx.moveTo(0, 0);
    130. ctx.lineTo(x, y);
    131. ctx.strokeStyle = `rgba(0, 255, 255, ${0.1 + 0.1 * layerIndex})`;
    132. ctx.lineWidth = 0.5;
    133. ctx.stroke();
    134. // Точки
    135. ctx.beginPath();
    136. ctx.arc(x, y, 1.5 + pulse * 0.5, 0, Math.PI * 2);
    137. const pointGradient = ctx.createRadialGradient(x, y, 0, x, y, 5);
    138. pointGradient.addColorStop(0, 'rgba(0, 255, 255, 1)');
    139. pointGradient.addColorStop(1, 'rgba(0, 255, 255, 0)');
    140. ctx.fillStyle = pointGradient;
    141. ctx.fill();
    142. });
    143. ctx.restore();
    144. }
    145. animate();
    146. </script>
    Display All