![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Stas96 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 13.9.2009 Где: Дом Репутация: нет Всего: нет |
Ув.Программисты помогите перевести java код:
на язык С# .Заранее благодарен.... |
|||
|
||||
| AlexeyVorotnikov |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 658 Регистрация: 18.6.2007 Где: Москва Репутация: нет Всего: 18 |
Так это ж не Java. Вам, наверное, надо в форум по Javascript. Или в форум по C#.
Это сообщение отредактировал(а) AlexeyVorotnikov - 12.11.2009, 12:27 -------------------- RTFM! Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification |
|||
|
||||
| Stas96 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 13.9.2009 Где: Дом Репутация: нет Всего: нет |
Меня сюда Админы переместили....
Добавлено @ 11:51 Вот моя наработка:
но все равно ошибка "Parsing error" |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin Репутация: нет Всего: 538 |
1. Это не Java, это JavaScript 2. Тут явно используются какие-то дополнительные классы (Rigidbody, Physics и т.д.) и функции (Instantiate) их тоже надо переводить на C#. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| KelTron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 11 Всего: 38 |
Ты чё это в интерпретатор пихаешь?)) JavaScript в С# ты так дословно не переведёшь, сначала разберись что делает код, а потом напиши аналогичный по функциональности на C#. -------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
| Stas96 |
|
||||||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 13.9.2009 Где: Дом Репутация: нет Всего: нет |
Я не изучаю С#
Вот скопировал отрывок из мануала: Что мы хотим от скрипта? Мы хотим обнаружить, когда пользователь нажмёт клавишу огня, затем вызвать новый экземпляр ракеты и запустить её с определённой скоростью туда, куда пользователь целится. Давайте разбираться с кодом:
Это начало скрипта, в котором объявляются публичные переменные (они выступают в роли свойств скрипта) и функция Update.
Сначала мы хотим проверить, когда пользователь нажмёт клавишу огня. Клавиша огня «Fire1» по умолчанию назначена на ЛКМ и Ctrl (это может быть изменено в Editor→Project Settings→Input).
Мы объявляем переменные для хранения ссылки на объект, чьи экземпляры вызываются. Тип переменной — Rigidbody, потому что ракета должна иметь физическое поведение. Для вызова экземляра объекта используется функция Instantiate с тремя параметрами: объект для вызова, его местоположение и угол поворота. Возможна и другая конструкция (смотрите API guide), но мы будем использовать эту. Первый параметр, projectile — это объект, который мы хотим создать. Это снаряд. Снаряд создан и настроен в редакторе. Для этого мы объявили переменную projectile как публичную, за пределами функций, что открывает её, делает доступной для редактора Unity. Объект снаряда может быть создан в коде, однако если вы хотите изменять переменную, то лучше сделать это в редакторе через Inspector. Второй параметр, transform.position, создаёт снаряд (объект projectile) в той точке 3D-пространства, где находится пусковая установка (launcher). Почему пусковая установка? Скрипт будет присоединён к пусковой установке и transform.position даёт нам её текущее положение (ключевое слово transform получает доступ к компоненту Transform того объекта, к которому прикреплён скрипт). Третий параметр, transform.rotation, действует аналогично второму параметру и даёт созданному объекту тот же угол поворота, каким обладает пусковая установка.
Следующая часть кода создаёт перемещение ракеты. Для этого мы придаём ракете скорость, но в каком направлении (X, Y или Z)? В Scene щёлкните на FPC. Отобразятся стрелки перемещений (нажмите `W`, если не отображаются): красная (ось X), зелёная (ось Y) и синяя (ось Z). Голубая стрелка показывает, в какую сторону смотрит игрок (то есть, он смотрит в направлении оси Z). Соответственно, нужно придать ракете скорость по оси Z. Скорость (velocity) — это свойство instantiatedProjectile. Как мы это узнали? Тип переменной instantiatedProjectile — Rigidbody. Посмотрим в API и увидим, что velocity — это свойство Rigidbody. Там же можете ознакомиться с другими свойствами. Для настройки velocity нужно задать скорость по каждой оси. Однако, есть небольшая проблема. Объекты в 3D используют две системы координат: локальная и мировая. В локальной системе координаты определяются относительно объекта. В мировой системе координаты абсолютные: верх, к примеру, будет всегда в одном направлении для всех объектов. Rigidbody.velocity должен определяться в мировой системе координат. Соответственно, мы должны преобразовать локальную ось Z в направление в мировой системе. Для этого используется функция transform.TransformDirection, которая использует Vector3 как аргумент. Переменная speed является публичной, так что может быть настроена в редакторе через Inspector.
Мы выключаем столкновения между ракетой и игроком. Если этого не сделать, то ракета будет сталкиваться с игроком при её вызове. Смотрите свойство IgnoreCollision в API. Вот полный код:
Добавлено через 2 минуты и 54 секунды Если комуто станет понятно объясните пожалуйста мне что да как заранее благодарен!!!! |
||||||||||||
|
|||||||||||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
На сколько я понял это Managed JScript. Дело в том, что этот язык поддерживает процедурный стиль , а C# - нет. То есть в шарпе нельзя просто объявить инструкции импорта пространств и сразу процедуру. Нужен какой-то класс, пространство имён и всё такое.
Добавлено через 54 секунды Да, последний твой пост не осили(многа букаф), так что если что - извиняйте -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Stas96 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 13.9.2009 Где: Дом Репутация: нет Всего: нет |
Не помогло
|
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| KelTron |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 11 Всего: 38 |
Вот это непонять что:
Видимо должен быть метод:
-------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
||||
|
|||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
Да, кстати заметил, что там в объявлении метода скобок нет
Добавлено через 2 минуты и 25 секунд А почему в оригинальном коде метод называется Update, а в переведённом у него другое имя? -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Stas96 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 13.9.2009 Где: Дом Репутация: нет Всего: нет |
Была ошибка на"using UnityEditor; "я его убрал и вот ошибка 3 ошибки:
The name "instantiate "does not exit in the current context The name "transform "does not exit in the current context The name "transform "does not exit in the current context Это сообщение отредактировал(а) Stas96 - 12.11.2009, 16:46 |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
Ещё один момент. В оригинальном коде переменные объявляются за пределами функции, я так и сделал, а у тебя в коде переменные с такими же именами объявлены в методе. Они затеняют одноимённые поля
Ну это естественно, если эти типы объявлены в данном пространстве имён, а ты убрал инструкцию импорта, то всё закономерно. Если была ошибка на using UnityEditor;, то видимо надо было подключить к проекту соответствующую библиотеку. Хотя "ошибка" - понятие растяжимое. У тебя что надо всё по слову вытягивать? Это сообщение отредактировал(а) diadiavova - 12.11.2009, 16:56 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Stas96 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 13.9.2009 Где: Дом Репутация: нет Всего: нет |
diadiavova
Скопировал код в твоем последнем посте Ругается: The type or namespace name "UintyEditor" could not be found.Are you missing a using directive or an assembly reference? не знаю че делать. |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
Он пишет, что такой тип или пространство имён ему неизвестно и спрашивает, подключил ли ты к проекту библиотеку. Собственно то, что я и предположил в предыдущем посте. Либо не подключена нужная бибилиотека, которая содержит это пространство имён, либо ты просто неправильно написал имя пространства, например егонадо было писать полностью, включая пространства верхнего уровня, а ты просто написал краткое имя. Мне трудно сказать что-то более конкретное, поскольку я понятия не имею, что это за библиотека. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |