start_bg.cel
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:20k
源码类别:

OpenGL

开发平台:

Visual C++

  1. {
  2. # ... Начало на скрипта
  3. #********************************************************************************
  4. #                               *
  5. #                  START.CEL - Стартиращ скрипт за Селестия       *
  6. #                               (версия 2.1)             *
  7. #                               *
  8. #-------------------------------------------------------------------------------*
  9. #                               *
  10. #  Този скрипт се стартира автоматично всеки път, когато стартирате Селестия.   *
  11. #                               *
  12. #  ЗАБЕЛЕЖКА: Не премахвайте вълнообразните скоби в началото и в края на този   *
  13. #  файл. Те дефинират този файл като CEL скрипт.             *
  14. #                               *
  15. #  Можете да модифицирате този скрипт по много начини за вашите лични нужди.    *
  16. #  Просто разкоментирайте един или повече реда от долните както е отбелязано.   *
  17. #  Към всеки ред или секция код има пояснение какво прави. За да разкоментирате *
  18. #  ред с код, просто изтрийте символа "#" в началото на реда.          *
  19. #                               *
  20. #  Ако решите да модифицирате този скрипт, моля копирайте резервно копие на    *
  21. #  друго място ПРЕДИ да започнете с модификацията.             *
  22. #                                                                               *
  23. #********************************************************************************
  24.   preloadtex { object "Sol/Earth" }
  25.   preloadtex { object "Sol/Earth/Moon" }
  26.   select {object "Sol"}
  27.   goto   {time 3.0 distance 30}
  28.   wait   {duration 3.0}
  29.   select {object "Sol/Earth"}
  30.   follow {}
  31.   goto   {time 3.0  distance 6.0}
  32.   wait   {duration 2.0}
  33.   print  {text "Добре дошли в Селестия!"  row -3  column 1  duration 3}
  34.   wait   {duration 3.0}
  35. #********************************************************************************
  36. #  Горните редове код са целия скрипт start.cel. Следва описание на     *
  37. #  значението на всеки ред код. Най-напред отиваме на Sol, за да може като    *
  38. #  отидем на Земята, да гледаме осветената й страна без значение от       *
  39. #  локалното Ви време...                      *
  40. #                               *
  41. #  preloadtex:   Казва на Селестия да зареди текстурите на зададения обект.    *
  42. #      В противен случай Селестия ще зареди текстурите, когато       *
  43. #      обектът се появи, което ще бъде забелязано като леко       *
  44. #      забавяне.                      *
  45. #                               *
  46. #  select:    Казва на Селестия като какъв обект (планета, луна,       *
  47. #      космически апарат и т.н.) да дефинира текущия обект. Sol    *
  48. #      дефинира нашата Слънчева система. Символът "/" е само       *
  49. #        иерархичен разделител, Earth е оектът, който искаме да       *
  50. #      изберем. Ако искате да изберете Луната, командата трябва да    *
  51. #      изглежда така: select {object "Sol/Earth/Moon"}          *
  52. #                               *
  53. #  goto:    Казва на Селестия да отиде до избрания в момента обект       *
  54. #      също, както натискане на бутона "G" на клавиатурата.       *
  55. #      Параметърът time указва за колко секунди да се достигне до    *
  56. #      обекта. Параметърът distance указва на какво позиция от       *
  57. #      избрания обект да се стигне в единици, сответстващи на       *
  58. #      радиуса на обекта плюс 1. Например, ако радиусът на обекта    *
  59. #      е 10000 км, и зададете 6.0 за distance, ще бъдете       *
  60. #      позиционирани на 50000 от центъра на обекта.          *
  61. #                               *
  62. #  wait:   След като командата goto казва на Селестия да направи нещо    *
  63. #      за определено време, трябва да дадем на Селестия също       *
  64. #      толкова време, за да го НАПРАВИ. Когато отиваме до Sol,       *
  65. #      командата wait казва на Селестия да изчака 3 секунди,       *
  66. #      докато goto командата бива изпълнявана (за 3 секунди).       *
  67. #      Двата параметъра обикновено са еднакви, но понякога има       *
  68. #      изключения (grin).                   *
  69. #                               *
  70. #      Когато отиваме до Earth, wait командата след goto изчаква    *
  71. #      само 2 секунди. Следва print командата, която показва       *
  72. #      нкакъв текст на екрана и следва друга wait команда, която    *
  73. #      чака 3 секунди. Всичко е въпрос на време. goto командата    *
  74. #      ни позволява да покажем някакъв текст на екрана, ДОКАТО       *
  75. #      действието се извършва. Трябва само да се обедим, че сбора    *
  76. #      на стойностите на всички wait команди след goto е равен       *
  77. #      или по-голям от стойността на goto командата.          *
  78. #                               *
  79. #  follow:   Казва на Селестия да следва избрания обект при движеието му    *
  80. #      в пространството. Това е същото, като натискането на бутона    *
  81. #      "F" на клавиатурата. Можете да замените follow {} командата    *
  82. #      със synchronous {} командата, която позволява да останете в    *
  83. #      стационарна или геосинхронна орбита над обекта.          *
  84. #                               *
  85. #  print:   Казва на Селестия да покаже (отпечата) даден текст на       *
  86. #      екрана. text параметърът дефинира текста, който ще бъде       *
  87. #      показан. row параметърт дефинира на колко реда от долния    *
  88. #      край на екрана да започне отпечатването. column параметърът    *
  89. #      дефинира на колко колони от лявата страна на екрана да       *
  90. #      започне отпечатването. duration параметърът дефинира колко    *
  91. #      време да остане на екрана отпечатваният текст.          *
  92. #********************************************************************************
  93. #********************************************************************************
  94. #  Ако искате да бъдете позиционирани над Вашето специфично местоположение на   *
  95. #  Земята, използвайте gotolonglat както е показано. Стъпка по стъпка...    *
  96. #                               *
  97. #  * Копирайте целия ред код.                      *
  98. #                               *
  99. #  * Вмъкнете го под "goto" командата.                   *
  100. #                               *
  101. #  * Премахнете "#" знака в началото на реда. Това разкоментира реда и кода ще  *
  102. #    бъде изпълнен.                        *
  103. #                               *
  104. #  * Дoбавете знака "#"  началото на реда с "goto" командата. Това превръща    *
  105. #    този ред код в коментар и той НЯМА да бъде изпълнен.          *
  106. #                               *
  107. #  * Заменете longitude и latitude стойностите с вашата географска дължина и    *
  108. #    ширина.                            *
  109. #                               *
  110. #  * След като отивате на специфично място на Земята, там може да не е ден в    *
  111. #    момента. За това можете да коментирате следните редове код, като постаите  *
  112. #    символа "#" в началото на всели ред:                *
  113. #    select {object "Sol"}                      *
  114. #    goto   {time 3.0 distance 30}                   *
  115. #    wait   {duration 3.0}                      *
  116. #    Ако искате да отидете на избраното място през деня, използвайте командата  *
  117. #    time, до която ще стигнем след малко.                *
  118. # *******************************************************************************
  119. #  gotolonglat {time 5.0  distance 4.0  longitude 0.0  latitude 0.0}
  120. #********************************************************************************
  121. #  Ако искате Селестия винаги да стартира с определена дата и час, използвайте  *
  122. #  командата time, както е описано по-надолу.                *
  123. #                               *
  124. #  ВНИМАНИЕ:   Стартирането на Селестия с предварително дефинирано време/дата   *
  125. #      изисква физическо натискане на знака "!" (удивителен знак), за    *
  126. #      да зададе сегашното време, когато искате да изследвате нещо --    *
  127. #      АКО въобще времето е от значение.             *
  128. #                               *
  129. #  Стъпка по стъпка...                         *
  130. #                               *
  131. #  * Определете дали искате да дефинирате датата чрез календар универсално    *
  132. #    време/дата или григориански ден (виж долу).             *
  133. #                               *
  134. #  * Копирайте реда код с командата time, която искате да използвате.       *
  135. #                               *
  136. #  * Вмъкнете я над "goto" командата (началото на файла).          *
  137. #                               *
  138. #  * Премахнете знака "#" от началото на реда. Това разкоментира този ред код,  *
  139. #    така, че той ще бъде изпълнен.                   *
  140. #                               *
  141. #  * Променете стойността на date/time с дата и часа, които ВИЕ желаете.    *
  142. #********************************************************************************
  143. # Променя времето чрез календарен UTC date/time низ...
  144. #  time { utc "2003-08-11T09:29:24.0000" }
  145. #              YYYY-MM-DDTHH:MM:SS.SSSS
  146. #  Забележете, че "T" .........^ ... (е необходимо)
  147. # Променя времето чрез дефиниране нагригориански ден...
  148. #  time { jd JulianDate }
  149. #    U.S. Navy Calendar Date/Time to Julian Date/Time converter:
  150. #    http://aa.usno.navy.mil/data/docs/JulianDate.html
  151. #********************************************************************************
  152. #  По-долу изброените команди Ви позволяват да дефинирате няколко от опциите    *
  153. #  на Селестия, които ще бъдат активирани всеки път, когато я стартирате.    *
  154. #  Променете ги, ако желаете.                      *
  155. #********************************************************************************
  156. #  Зрително поле (разкоментирайте/модифицирайте според желанието Ви)
  157. #  По подразбиране е 25 градуса при резолюция 1024 х 768
  158. #  set {name "FOV" value 25.0}
  159. #  Фонова осветеност (разкоментирайте/модифицирайте според желанието Ви)
  160. #  0.0 to 0.5 е добър спектър
  161. #  set {name "AmbientLightLevel" value 0.1}
  162. #  Звездна величина на най-слабата видима звезда
  163. #  (разкоментирайте/модифицирайте според желанието Ви)
  164. #  Селестия ПИ: 0.8 to 15.2, по подразбиране 6.0
  165. #
  166. #  setvisibilitylimit {magnitude 6.0}
  167. #  Най-слаба авто-магнитудна ярост при 45 градуса, по подразбиране е 8.5
  168. #  (разкоментирайте/модифицирайте според желанието Ви)
  169. #  setfaintestautomag45deg {magnitude 8.5}
  170. #  Обекти, които ще бъдат показани (рендерирани):
  171. #  НЕ рендерира следните обекти (разкоментирайте/модифицирайте според желанието Ви)
  172. #  renderflags {clear "atmospheres"}
  173. #  renderflags {clear "automag"}
  174. #  renderflags {clear "boundaries"}
  175. #  renderflags {clear "cloudmaps"}
  176. #  renderflags {clear "comettails"}
  177. #  renderflags {clear "constellations"}
  178. #  renderflags {clear "eclipseshadows"}
  179. #  renderflags {clear "galaxies"}
  180. #  renderflags {clear "grid"}
  181. #  renderflags {clear "markers"}
  182. #  renderflags {clear "nightmaps"}
  183. #  renderflags {clear "orbits"}
  184. #  renderflags {clear "planets"}
  185. #  renderflags {clear "pointstars"}
  186. #  renderflags {clear "ringshadows"}
  187. #  renderflags {clear "stars"}
  188. #  renderflags {clear "partialtrajectories"}
  189. #  Обекти, които ще бъдат показани (рендерирани):
  190. #  Рендерира следните обекти (разкоментирайте/модифицирайте според желанието Ви)
  191. #  renderflags {set "atmospheres"}
  192. #  renderflags {set "automag"}
  193. #  renderflags {set "boundaries"}
  194. #  renderflags {set "cloudmaps"}
  195. #  renderflags {set "comettails"}
  196. #  renderflags {set "constellations"}
  197. #  renderflags {set "eclipseshadows"}
  198. #  renderflags {set "galaxies"}
  199. #  renderflags {set "grid"}
  200. #  renderflags {set "markers"}
  201. #  renderflags {set "nightmaps"}
  202. #  renderflags {set "orbits"}
  203. #  renderflags {set "planets"}
  204. #  renderflags {set "pointstars"}
  205. #  renderflags {set "ringshadows"}
  206. #  renderflags {set "stars"}
  207. #  renderflags {set "partialtrajectories"}
  208. #  Текстови етикети:
  209. #  НЕ слага етикети на следните обекти (разкоментирайте/модифицирайте според желанието Ви)...
  210. #  labels {clear "asteroids"}
  211. #  labels {clear "constellations"}
  212. #  labels {clear "galaxies"}
  213. #  labels {clear "moons"}
  214. #  labels {clear "planets"}
  215. #  labels {clear "spacecraft"}
  216. #  labels {clear "stars"}
  217. #  Текстови етикети:
  218. #  Слага етикети на следните обекти (разкоментирайте/модифицирайте според желанието Ви)...
  219. #  labels {set "asteroids"}
  220. #  labels {set "constellations"}
  221. #  labels {set "galaxies"}
  222. #  labels {set "moons"}
  223. #  labels {set "planets"}
  224. #  labels {set "spacecraft"}
  225. #  labels {set "stars"}
  226. #  Контрол над маркирането:
  227. #  Размаркира обекти, които са маркирани и не ги показва маркирани
  228. #  (разкоментирайте/модифицирайте според желанието Ви)
  229. #  unmarkall { }
  230. #  Минимален диаметър на орбитата, който ще бъде рендериран (в пиксели...)
  231. #  (разкоментирайте/модифицирайте според желанието Ви)
  232. #  set {name "MinOrbitSize"  value 1.0}
  233. #  Разстояние до най-далечната показана звезда. По подразбиране е 1000000...
  234. #  (разкоментирайте/модифицирайте според желанието Ви)
  235. #  set {name "StarDistanceLimit"  value 1000000}
  236. #  Скорост на протичане на времето (1x, 100x, 1000x, etc.)...
  237. #  (разкоментирайте/модифицирайте според желанието Ви)
  238. #    Negative value = Reverse Time
  239. #               0   = Pause Time
  240. #               1.0 = Real Time (default)
  241. #            1000.0 = Good moon orbit motion
  242. #
  243. #  timerate {rate 1.0}
  244. #********************************************************************************
  245. #  Ако използвате големи текстури, можете да настроите Селестия да ги зареди    *
  246. #  предварително в паметта на графичната Ви карта, като ги изброите по-долу.    *
  247. #********************************************************************************
  248. #  Примери...
  249. #  preloadtex {object "earth.*"}
  250. #  preloadtex {object "earth.png"}
  251. #********************************************************************************
  252. #  orbit е забавна команда, с която можете да си поиграете. Оста е зададена във *
  253. #  формат [X Y Z] и всяка ос може да бъде 0 или 1. rate е скоростта, duration е *
  254. #  времето в секунди. Просто се убедете, че сте избрали обект.          *
  255. #********************************************************************************
  256. #  orbit {axis [0 1 0]  rate 10.0  duration 7.0}
  257. #****************************************************************************
  258. #  To learn more about scripting in Celestia, visit:                        *
  259. #                                                                           *
  260. #   * Scripting forum: (http://www.shatters.net/forum/viewforum.php?f=9)    *
  261. #   * Don G's Celestia page: (http://www.donandcarla.com/Celestia/)         *
  262. #   * Harald's Celestia page: (http://www.h-schmidt.net/celestia/)          *
  263. #                                                                           *
  264. #  Don G's page includes a guide for CEL scripting. Harald's page includes  *
  265. #  a guide for CELX (Lua) scripting. Both also have example scripts and     *
  266. #  other goodies.                                                           *
  267. #****************************************************************************
  268. # Край на скрипта...
  269. }