スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« iOSシミュレータの性能は・・・ | トップページ | 今週中には完成? »

テキスト描画を移植中

今は、iOS版Nostalgic UFO Battlerの開発中で、今の所、背景とマイシップ等の画像ファイルに定義したビットマップの表示は可能になっていて、音声出力も出来る筈なのだが、テキスト描画はできていない。これは、テキスト画像はプログラム内で生成しているからだ。

今となっては、Apple純正品の廃止が確定しているので、新たに使おうという人はあまりいない筈なのだが、一昔前には、OS Xでのプログラム開発は、Javaで行われる事も多かった筈だ。

で、ここの所書いている様に、OS Xのネイティブ言語である所のObjective-Cは、C言語やC++言語も包含している格好になっているので、Objective-Cの[]なんかの記述が鬱陶しかったり、性能的にも問題がある場合には、CやC++でメインコードを記述する事もできる。

にも関わらず、CやC++での記述も可能なObjective-Cではなく、Javaが使われたのは何故だったのか、というと、言語的にどうのこうのではなく、ライブラリが、Javaの方が使いやすかったからではないか、と、作者は思う。

つまり、CやC++を使ったとしても、高機能ライブラリの多くは、Objective-C用に作成されたAPIを使用しなければならず、これが、Mac以外のプラットフォームでのプログラム熟練者からみれば、使いづらかった訳だ。

作者という人は、大昔、PC-6001のBasicからプログラミングを始め、Z80のアセンブラも使う様になり、その次に、CP/M80上でBDS-CだとかTurboPascalだとかを使い、その次には、PC-9801上のLattice-Cなんかを使う傍ら、X68000のOS9上でプログラミングしたりもしていた。

更には、FM-TownsのTownsOS用にプログラムを組んだりもしていたし、FM-Towns用に移植された黎明期のLinuxをインストールし、そこでもプログラミングしていた。

で、WindowsNTがリリースされた後は、NTがメイン環境になったので、その他環境でプログラミングする事は減ったのだが、今でも、開発ソフトはUbuntuに移植しているし、Mirror-DTCのマルチプラットフォーム化に際しては、Javaを積極的に使った。

前述の様な環境以外にも、作者は元々はハードウェアエンジニアだった訳なので、OSが存在しない環境用にも、アセンブラ+Cコンパイラでハードウェア制御用のソフト環境を構築したりした経験もある訳なのだが、そういう様々な環境に接してきた作者でも、OS XとiOSに関しては、中々、馴染めない訳だ。

これは何故なのか、というと、OS XやiOSというのは、そもそもは、NeXTSTEPというOSがベースになっていて、このOSは、smalltalkの概念を中心に据えているからだ。

つまり、C言語というのは高級アセンブラと呼ばれる事があるのだが、アセンブラというのは、CPUのハードウェアを制御するバイナリコードを人間が見やすくするために別の表現を使っただけのモノでしかない。

で、同じ様なコードを毎回記述すると大変だし、メモリも食うので、CPUにはサブルーチンコールという概念があって、良く使うコードは一つ記述しておけば、必要時に呼び出せる様になっている。

そして、ライブラリというのは、その延長線上にあって、様々なプログラムで使う事が予想される処理コードについては、プログラム開発時に毎回記述するのは非効率なので、予め作成しておき、必要時にプログラムにリンクして使える様にしてあるモノ、になる訳だ。

上記の様に、アセンブラだとかC言語だとか、その派生であるC++言語だとかJavaでは、ライブラリというのは、ある意味、ボトムアップで作成されているモノなので、その意味は明確だし、使いやすい形にもなっている。

しかし、smalltalkというのは、オブジェクト指向言語なので、そもそもの思考形態が異なる訳だ。

と、いう事もあり、OS XやiOSのライブラリというのは、CやC++がベースになっているWindowsやUNIXシステムのソレとは毛色が異なる。

なので、WindowsやUNIXに馴染みが深い開発者には、使いづらい筈なのだが、更に、OS XとiOSでは、何故か、同じ様な処理を行うAPIが異なるモノに変更されている事も多い訳だ。

と、いう事で、OS X用のテキスト描画処理で使っていたAPIはiOSでは利用できなかったので、代替のAPIを探したりしていたのだが、一応、必要なAPIは揃えられた筈なので、明日には、テキスト画像の描画も可能になっている筈だ。

= この記事に関連する公開中ソフト =

ノスタルジックUFOバトラー

UfoBattler.jpg

(2016/10/25追記)

« iOSシミュレータの性能は・・・ | トップページ | 今週中には完成? »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/63700034

この記事へのトラックバック一覧です: テキスト描画を移植中:

« iOSシミュレータの性能は・・・ | トップページ | 今週中には完成? »

2017年8月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google