[MP3.0+] Магия inline()
Итак, если вы не заметили, MidletPascal поддерживает вставки (inline) java байт-кодов, начиная с версии 3.0.
Это можно эффективно использовать для расширения программ без использования библиотек. Так же это позволяет реализовывать вещи, которые библиотеками делаются очень сложно, такие как взаимодействие библиотеки с переменными основной программы, и прямое использование оных в процедурах и функциях. Поэтому, пользуясь доступными базами знаний по этой теме, я написал и собрал на одну страницу некоторые простые в реализации, но полезные для разработки MP приложений и игр функции и процедуры: http://yellow.orgfree.com/micro/mpinline/ На момент написания этого сообщения страница содержит 16 функций , включающих в себя манипуляции над строками, изменение размеров "родных" для MP массивов, функции переназначения вывода в свое изображение, системные функции, и даже две функции, которые можно использовать для попиксельной обработки изображений. Для последних упомянутых приведу пример: Так же некоторые функции (такие как изменение размера массива) станут значительно меньше с выходом следующих версий MP. Если у вас есть идеи, или же вам известны небольшие, полезные Java функции (в виде кода или байт-кодов), говорите. Хорошего дня :) |
Ответ: [MP3.0+] Магия inline()
Молодец)
Правда я так и останусь на 2.02. Люблю писать игры только с "+, -, *" и drawimage. |
Ответ: [MP3.0+] Магия inline()
YellowAfterlife, занятная штука. А если сделать не массив integer а допустим какойнить записи. Будет работать?
|
Ответ: [MP3.0+] Магия inline()
Вложений: 2
Цитата:
Цитата:
Стоит заметить, что с помощью такой системы можно делать весьма и весьма неплохие динамические игры :) Скриншот и скомпилированный JAR этой демонстрации во вложениях. |
Ответ: [MP3.0+] Магия inline()
Т.е. можно использовать МП в качестве компилятора java?
|
Ответ: [MP3.0+] Магия inline()
java byte
|
Ответ: [MP3.0+] Магия inline()
O_O
Вы меня пугаете. Или я что-то совершенно неправильно понял. При чём тут JavaByte?? Это же совсем другая программа. Или вы намекаете на то, что программы, написанные на java, интерпретируются, и слово "компилятор" здесь не вполне корректно? Собственно, вопрос: сильно ли различается результат обработки одного и того же кода, скормленного МП и, например, Sun One Studio (которая у меня идёт только на виртуалке)? |
Ответ: [MP3.0+] Магия inline()
Нет, я про то что в inline надо писать уже в ява-байте.
|
Ответ: [MP3.0+] Магия inline()
да.. Я жутко ступил.
|
Ответ: [MP3.0+] Магия inline()
И всё же... ПОЧЕМУ в МП добавили такую ерунду? Была же тема о том, что не помешала бы возможность вставки java - кода. Этого не сделали. Основным аргументом было то, что ПМ предназначен для людей, которые не знают java. Вопрос: вы знаете хоть одного человека, который, не зная java, пишет игрушки(?) на байт-коде? Я не спорю, теоретически это возможно, но на самом деле?? Есть ли хоть какая-то логика в этом мире???? *паника*
|
Ответ: [MP3.0+] Магия inline()
1) Напиши код на яве
2) Скомпиль его 3) Дизассемблируй его 4) ??? 5) ПРОФИТ |
Ответ: [MP3.0+] Магия inline()
Я думаю, что вставку непосредственно инструкций в виде байт кода сделали потому, что это было проще и быстрее, чем делать вставку java кода. Хотя не уверен.
|
Ответ: [MP3.0+] Магия inline()
cherepets (да простят меня админы за такой пост), у меня по какой-то неведомой причине компилятор явы работает чуть менее, чем наполовину. То есть во время установки он ВНЕЗАПНО сообщает, что я прополимерил JVM. ИЧСХ, на виртуалке всё работает, но для нормальной работы не хватает оперативки. Наверное, скоро буду менять windows...
Phantom, может быть, может быть... Только я сомневаюсь, что прикрутить поддержку java-кода было настолько сложно, что за неё никто не захотел браться. Скорее, просто поленились) |
Ответ: [MP3.0+] Магия inline()
|
Ответ: [MP3.0+] Магия inline()
|
Часовой пояс GMT +4, время: 01:30. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot