脳を刺す

この投稿は、コンテスト「 Smart Posts for Smart Posts 」に参加しています



画像 私たちは通常、バス/地下鉄/路線に座って何をしますか? そうです-でたらめ。 通常、携帯電話では「私と同じボールを見つけてください、牛!」のような音楽または愚かなゲームです。



音楽でも理解できます。どこでも同じですが、おもちゃで何かを変えることができます。たとえば、何か簡単なことをするが、知性と有用性のヒントがあります。 アイデアの本質は2ペニーのように単純です-単語を取得し、その中の文字に干渉し、プレイヤーにランダムなポリッジで最初の単語を推測するように提供します。 美しいデザインとスムーズな移行を添付し、レベルと評価を固定します-出来上がり、ゲームの準備は完了です!



アイデアがあります。つまり、Qt Creator-> New Project-> Qt Quickが開きます。 2時間の2晩の連続コーディング、3つの言語へのローカライズと単語データベースへの入力、Symbianのコンパイル、および独立して、ガールフレンド、友人/クラスメート、その他の哺乳類の携帯電話でのテストの1週間。 さらに、親しい友人からのアプリケーションとそのアイコンのデザインを待つ2日間。



そうそう... Androidの画面解像度の1つでビルドとテストを行うのに約3日もありました。 そこにはある種の標準がありますが、ノキエフよりもかなり低い... 320x480対360x640。 はい、そうです-Qtへのソフトウェアの移植の複雑さ。 すでに20分は時々費やす必要があります。



何が起こったのか見てみましょうか?



通常どおり、すべてはメニューから始まります。

画像画像画像


ご想像のとおり、アプリケーションには評価システムがあります。これはユーザープロファイルを意味します。 さらに、以下の言語のリストはどういうわけかではありません-それは再起動することなく、オンザフライでアプリケーション全体の本格的なローカライズです...ちなみに、この点でQMLを持つ学校がいくつかありますが、私はこのチートシートを使用してすぐに修正しました。 Ai-ay-ay Nokia、ay-ay-ay =)横枠を修正します...



次に、新しいゲームを開始し、既存のプロファイルを作成または選択し、レベルを選択して独自のゲームを開始できます。

画像画像画像画像


面白いボタンは、指で押すとランダムな半径に対して斜めになります。そうでなければ、すべてが直感的にシンプルだと思います...ゲームの開始後、情報と制御の2つの部分になります。 現在の文字は、あなたが単語を作りたい情報に書かれており、その後、関係が推測/失敗/合計され、最後に、単語を推測するのに失敗した回数が推測されます。



次に、ボタンに奇妙に似た単語の入力フィールド、入力された単語をチェックする「OK」ボタン、ヒントがあります。これにより、最終評価でポイントが削除され、単語をスキップしてメインメニューに戻ります。



画像

実際には、まだ表示されていないものから-おそらくレベルの終わりの画面。 そして、それは他のすべてのようにシンプルに見えます。



うーん、そうです-単語の推測と見逃し、ヒントと全体的な結果の使用。



それとは別に、他のすべての移植と開発の詳細には触れずに、QML自体のすべての単純さと簡潔さに注目したいと思います。 これは本当にラピッドプロトタイピングとアプリケーション開発の両方のためのファンキーなツールです。 実際、数十人のプロガーマーミスト、デザイナー、テスター、およびその他のイデオロギーのインスピレーションとスピン爪は、各プログラマーが自分のプロジェクトを作成するときに、毎週の反復でモバイル玩具をリベットで留めるための小さなオフィスを迅速に確立できます。 そして、数か月のうちに市場にあふれ出すのは、専門的ではないものの、十分に高品質のおもちゃと小さなアプリケーションです。 質問の抑制:はい、私はFlashで少し書きましたが、一般的には多くのことを書いていますが、確かに言えることです。現時点では便利なツールはありません。 AndroidとiOSのアプリケーションのサイズとポートのレベルのみが動揺しています(はい、はい、おもちゃは完全に動作し、uiKitの現在のQt 4.8ポートで組み立てられた場合に動作します)。 だから...それは何ですか、私はすでに写真をストリーミングするためにナンセンスを走り書きしましたか? はいのようです=))



次に、ソフトウェア部分について簡単に説明します。

画像



アプリケーションには、14個のQML-ek、3つのスクリプト、およびいくつかの写真が含まれています。 特別なものはありません...例として、移行中のシーケンシャルアニメーションの実装例を共有したいと思います。

... Transition { from: "Menu" to: "Rules" SequentialAnimation { PropertyAnimation { target: mainMenu properties: "opacity" duration: 250 } PropertyAnimation { target: rules properties: "opacity" duration: 250 } } } ...
      
      







これは、1つのアプリケーションが空白になり、2番目のアプリケーションが最初のアプリケーションが完全に終了した後に表示されるようになったときにウィンドウを切り替えるような効果を実装するために必要です。



さらに...レベルを保存するアルゴリズムも簡単です。これらは、次の単語を含む多次元JS配列です。

 ... levels["Russian"] = [] levels["Russian"][1] = new Object(); levels["Russian"][1].tryCount = 3 //    levels["Russian"][1].levelWordsCount = 10 //         //levels["Russian"][1].skippedWordsCount = 10 //      levels["Russian"][1].hintCount = 5 //       levels["Russian"][1].words = ["","","","","","","",""] ...
      
      





他のレベルと言語についても同様です。 コードにはこれ以上面白いものはほとんどありません。すべては些細なことです...単語分割の機能を除いて...しかし、ソースでも見ることができます。



ところで、私はまだ忘れていません-Qtバグへの追加。 コンストラクトを使用する場合

 FontLoader { id: applicationFont; source: "styles/default/fonts/Ceremonious Two.ttf" }
      
      





すべてがn ...悪くなること。 少なくともs60では、まずシステム全体のフォントを変更し、次にアプリケーションを終了した後、携帯電話を再起動しました。 そのため、当初は望んでいたように、アプリケーションでエキゾチックな様式化されたフォントを使用しませんでした。 開発者に向けてもう1つ小石を... ...とはいえ、いまいましい...彼らは今でも私が知っているコードを書いている最もクールでプロフェッショナルな男のままです。



そして最後の...この奇跡をプレイするには? プロジェクト全体は、Google Codeのページにあります。 そこで、ダウンロードするファイルのリストを見ることができます。 残念なことに、そこでコミットしようとすると、Googleから遠くまで送られてくるので、ソースコードはダウンロードページにのみアーカイブされます。 後で修正しようとします。



次のようなものです。ありがとうございました。退屈しないことを願っています...そして明日書きたいという願望があるなら(まあ、あなたはよろめかない...)、私は別の小さいが非常に興味深いプロジェクトについてお話します...



All Articles