Javaファイルと.xmlマニフェストを含むJava拡張機能を使用して、ゲームメーカースタジオでAndroidに移植した経験のある人はいますか? バージョン - Game Maker: Studio。また、拡張機能を作成するには、Java、XML、および GML (基本的には html と Visual Basic の組み合わせ) の 3 種類のコードが必要であることに注意してください。
Android 用に作成しているタイムカード アプリがあります。パンチインとパンチアウト、休憩を取ることができ、その情報をアプリの作業ディレクトリ内のテキスト ファイルに記録します。私の問題は、Note pad.exe (または同等のもの) を開いて、Game Maker: Studio でユーザーにテキストを表示する方法です。
私はsheldoという名前のJavaファイルを拡張機能に設定し、それをsupopntxtfと名付けました。そのプロパティページではandroidのみを選択し、関数のプロパティページでは名前と外部名の両方をshell_doとして設定しています。戻り値の型を double に設定し、引数 0 と引数 1 を文字列としてリストしました。ここに私がsheldo.javaファイルに入れたコードがあります:
package ${YYAndroidPackageName};
import android.content.Intent;
import android.net.Uri;
import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.lang.String;
import ${YYAndroidPackageName}.R;
import com.yoyogames.runner.RunnerJNILib;
public class sheldo extends Activity {
public void shell_do(String arg0, String arg1) {
if (arg0 == "open") {
Intent intent = new Intent(Intent.ACTION_EDIT);
Uri uri = Uri.parse(arg1);
intent.setDataAndType(uri, "text/plain");
startActivity(intent);
}
}
}
Androidマニフェストにxmlコードを追加しました(拡張機能名を右クリックしてAndroidタブに移動します)。入力したコードは次のとおりです。
<activity
android:label="@string/app_name"
android:name="${YYAndroidPackageName}" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
そして私がそれに追加した権限:
android.permission.INTERNET
android.permission.BIND_CARRIER_SERVICE
android.permission.BIND_APP_WIDGET
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
わかりました、ゲーム自体で(GMLコード言語に戻りました)、ポインターという名前のオブジェクトがあり、その作成イベントでこれらの関連変数を宣言しました:
result1="open";result2="No records";result3="No records";
オブジェクトポインターのアラームイベントで、拡張機能をアクティブにするこのコードがあります:
result1="open";
result2=string_insert(string(global.fname[global.empnum]),string(" "),0);
result2=string_insert(string(result2),string(global.finfo[0]),0);
result2=string_insert(string(result2),string(" Week "),0);
result2=string_insert(string(result2),string(global.fiscalw),0);
result2=string_insert(string(result2),string(" "),0);
result2=string_insert(string(result2),string(global.yrs),0);
result2=string_insert(string(result2),string(".txt"),0);// result2 to this point builds the file name.txt
result3=string_insert("file:///",working_directory,0;
result3=string_insert(result3,string("+"),0);
result2=string_insert(string(result3),string(result2),0);// this puts the file path together
shell_do(result1,result2); // this calls the extension
Explanation of the variables that I used to name the file with their values being all strings:
global.fname[global.empnum] - employee name depending on the employee number
global.finfo[0] - the company name
global.fiscalw - the week
global.fiscalyr - the year
私は自分のゲームをコンパイルしました (ゲームが完全にコンパイルされていない限り、拡張機能は機能しないとマニュアルに書かれているため)、そこには問題はありませんが、拡張機能を使用しようとしても何も起こりませんが、ランナーログを振り返ってみると、このエラーが発生します拡張機能を使用しようとするたびにメッセージ:
shell_do でメソッド shell_do を呼び出そうとすると、例外がスローされました
xml と組み合わせた Java の詳細については、You Tube で役立つビデオをいくつか見ました 。
https://www.youtube.com/watch?v=tv2iClQ3G3s&list=PLRz47KuVF6Uos2m6ZQ5J7v9xNA-LN8m7L&index=14 Android Studio をダウンロードし、かなり簡単に動作するようになりましたが、このプロジェクトを Game Maker: studio で完了させたいと思っています。それにお金がかかりますし、アプリ全体を書き直したくありません。言語がまったく異なるからです。しかし、どこかで何か間違ったことをしているに違いないと思います。