木のおもちゃや携帯電話からモバイルゲームを書いたように

かつて、木が大きく、携帯電話がまだかなり野生で、電話用の共通の標準とWindowsがなかったとき、私はシーメンスC72の誇りに思った所有者でした-ファイルシステム(他の電話で)を完全に操作できる数少ない電話の1つFSへのアクセスは厳しく制限されているか、まったく存在していませんでした)。



たまたまその時点で私はまだPCを持っていなかったので、すでにプログラミングの魅力的な世界に飛び込みたいと思っていました。 だから私は提案し、アイデアが生まれました-携帯電話でコーディングを開始します。 すず、あなたは言う? Orenburgのプログラマーは非常に厳しいので、モバイル自体にモバイルアプリケーションを作成します。 はい、そうです。経験に基づいて、Habrに関する最初の記事を書くことにしました。 RuNetでは、そのようなトピックはまだ提起されていません。



では、どこから始まったのでしょうか?



もちろん、人気のあるモバイルプラットフォーム-javaから。 (Javaの前に別のモバイルプラットフォーム-Mophunがありましたが、それは主にゲーム用に設計されていたため-このタスクに完全に対応していました-Mophunのゲームは、最も弱いデバイスでも見事な3Dグラフィックス、スピードで区別されました。多くの場合、そのようなゲームはネットワークをサポートしていましたBluetooth /インターネット経由のゲームですが、アプリケーションに関する限り、MophunプラットフォームはFSへの基本的なアクセスさえ提供していませんでしたが、どのようなプログラミングが可能ですか?



だから-Java。 私は、130x130の画面と1.5-2 mbの操作性を持つモバイルキーボードでコーディングします。 ミニオペラを立ち上げ、1時間以上プログラミングの方法を探して、ついに見つけました-モバイルベーシック。



画像画像



アプリケーションは、プログラムコードを実行可能ファイルにコンパイルすることを許可しませんでした。本質的にはインタープリターであり、プログラムテキストの書き込み、実行、保存だけでした。 選択の余地はありませんでした-私は言語を学ばなければなりませんでした。 BASICはもともと非常に簡単な言語だったので、2週間後、非常に優れたアプリケーションを作成するようになりました。



しかし、私は進歩を望んでいました-グラフィックスの操作、シンプルなゲームの作成。 幸いなことに、その時までに私たちのフォーラムでは、モバイルベーシックを使用して個別のJavaアプリケーションを作成する方法を見つけました。 プログラムコードを直接記述し、テキストファイルに保存してから、アプリケーションによって作成されたファイルが携帯電話に保存されているメモリ領域を使用します(たとえば、ゲームに保存したファイルはそこに保存されます)。 特別なプログラムを使用してこのファイルを抽出し、ソースファイル、すべてのリソース、およびモバイルBASIC自体に直接zipでパックする必要がありました。 それで、ついに既製のJavaアプリケーションができました。



そして、私はゲームを書き始めました。 おもちゃはシンプルでした-あなたは魚を制御し、小さな仲間を食べ、大きな仲間から逃げます-あなたは要するに生き残ります:)私はグラフィックが必要でしたが、問題はありませんでした-その時点で、機能的にWindowsペイントを残していないPaintCADグラフィックエディタがありましたもちろん、.NETで記述されたものは、はるかに遅れています。



画像



いくつかの単純なモデルをスケッチし、それらをBASICでアーカイブに詰めて(ゲームを書くときにリソースが利用できるように)、実際にコードを書くことから始めました。 数日後、ゲームの準備が整いました。 彼女は、もちろん、バグがないわけではなく、時間をかけてすべてを修正しました。



画像画像画像



このゲームのコードスニペットは次のとおりです。



520 GELLOAD "f4","f4.bmp":SPRITEGEL "f4","f4"

521 GELLOAD "f5","f5.bmp":SPRITEGEL "f5","f5"

522 X5%=-50:Y5%=110

530 X%=65:Y%=65

531 GELLOAD "f7","f7.bmp":SPRITEGEL "f7","f7"

532 X7%=-20:Y7%=0

537 XF1%=XF1%+1:YF1%=60+MOD(RND(0),60):SPRITEMOVE "f1",XF1%,YF1%

538 SETCOLOR 0,250,0

539 XF1%=XF1%+1:YF1%=60+MOD(RND(0),60):SPRITEMOVE "f1",XF1%,YF1%

540 IF LEFT(0) THEN X%=X%-1

541 XF%=XF%-1:SPRITEMOVE "f",XF%,YF%

542 IF XF%<=0 THEN XF%=580+MOD(RND(0),50):YF%=60+MOD(RND(0),60):SPRITEMOVE "f",XF%,YF%

545 IF UP(0) THEN Y%=Y%-1

546 IF SPRITEHIT("f4","f") THEN CLS:O%=O%+1:GOTO 1000

547 DRAWSTRING CHR$(1086)+CHR$(1095)+CHR$(1082)+CHR$(1086)+CHR$(1074)+":"+STR$(O%),30,2

548 SETCOLOR 0,250,0

549 XF1%=XF1%+2:SPRITEMOVE "f1",XF1%,YF1%

550 IF RIGHT(0) THEN X%=X%+1

552 IF XF1%>=130 THEN XF1%=-300+MOD(RND(0),50):YF1%=60+MOD(RND(0),60)

553 SPRITEMOVE "f1",XF1%,YF1%

554 IF SPRITEHIT("f4","f1") THEN GOTO 2000

555 IF DOWN(0) THEN Y%=Y%+1









ちなみに、まさにシーメンスデバイスの開放性のため、当時はモバイルBASICでのプログラミングに従事していたのはシーメンスロガーだけでした。 後に、モバイルパスカル、jasmin、そして本格的なJavaコンパイラなど、このための多数のアプリケーションが登場しました。



しかし、その頃には、以前のSiemensに取って代わるデバイスが既にWindows Mobileにありました(これらのボタンは既にコーディングから外れています:-)。



もちろん、ここでの選択はもっとクールです。 GCCポート(C ++コンパイラー)、Pocket C#(そのIDEを使用)、Basic4PPC、Python、Perl、Tcl / tk、MortScript、Turbo Pascal(DOSエミュレーター上)はほんの一部です。



Basic4PPC:



画像画像



CEdit:



画像



Turbo Pascal:



画像



Pocket GCCでアプリケーションを作成するプロセスは次のとおりです。たとえば、CEdit(構文強調表示付きのエディター)でコードを記述し、完成した* .cppファイルを保存し、バッチファイルをクリックします(コンパイラーと* .cppファイルへのパスが含まれます)。数分後、焼きたての.exeプログラムファイルを取得します。

このプロセスでは、強力なデバイスはまったく必要ありません。200MHzの周波数と15〜20 mbの空きRAMを備えたプロセッサで十分です。また、最も低コストのWMデバイスでもこのような特性を備えています。



本格的なプログラマーをポケットに入れておくのはいいことだと思います。余暇は、PCから離れて、いつでも小さなプログラムを書いて、PDAでその仕事を楽しむことができます:)



***

PSモペットは私のものではありません。私はちょうどmalyavを投稿し 、プラットフォームを提供し、編集者として行動しました。 著者-Artemzr 、愛してください。

PS2 ilya_compmanのアドバイスで「 異常なプログラミング 」に移行しました。



All Articles