2013年4月21日日曜日

Lazaruのインストールとリポジトリ

 Lazarusの正式リリースが出ていますね。Ubuntuでは0.9なので評価版です。そこでLazarusをインストールして見ることにしました。果たしてどうなっているのでしょう。
 バージョンアップを追いかけていきたいのでリポジトリを追加することにしました。ホームページを見るとgetlazの作り方にキー取得の方法がしっかりと書かれているので、忘れたときはここを見ればいいと思いました。
  getlazのことをお知らせしたくて書きました。データベースコンポーネントのダウンロードファイルも用意されていますので、Firebirdなども試せると思います。
 フォントなどカスタマイズして使いやすくなったらまたレポートします。
 http://wiki.freepascal.org/Lazarus_release_version_for_Ubuntu

2013年4月18日木曜日

フリーの統合開発環境TheIDE

 Ubuntuを使っています。Ultimate++という統合開発環境が紹介されていたのでインストールして見ました。実物の名前はTheIDEというらしいです。
 まずUbuntuにはPPAが用意されていたので、パッケージをダウンロードしなくてすむように、そちらでのインストールを選択しました。
 PPAを登録して、暗号鍵かな、キーサーバーから取得して、忘れずにエクスポートします。参考にしたリンクを載せておきます。
https://news.ycombinator.com/item?id=1605144
 キーサーバーとかはダウンロードサイトで表示されるようになっています。PPAの登録も、アップデートマネージャを使って補助してもらうことができます。
 導入するパッケージはtheideとtheide-dbg以外のファイルです。どうやらGTKを利用したソフトでは無いのでnogtkを選択する必要があります。
 インストールが終わったらコマンドラインからtheideと入力して見ました。 よくわかりませんが、インストール画面が出たので実行が終わるとTheIDEがインストールされています。
 使い方はよくわかりませんでした。Delphiと同じようなソフトだと期待していたのですが、僕は使いこなせませんでした。

2013年3月21日木曜日

gameover() 関数の作成

 どの位置からでも呼び出せるgameover()関数というのを作成して利用しようと思います。これまではゲーム終了のタイミングが一箇所だったので必要ありませんでしたが、ともかく前置きはよしてコードを見て行きましょう。

def gameover():
    game.run = False
    pygame.time.delay(2000)

ちなみに他の部分は毎回一緒です。game.runはレコード型ですね、宣言わかりますか。
 敵キャラが消えた瞬間にゲームを終了させたいので作って見ました。これまではwhile timer():とやってメイン関数のループから抜けていました。
変更のあったtimer()関数です。戻り値がなくなっています。

def timer():
    temp = pygame.time.get_ticks()
    if game.time+300 < temp:
        game.time = temp
        if cap.visible == True:
            move(K_DOWN)           
        else:           
            cap.start()           
            if checkcap() == False:
                gameover()



メイン関数を次のように書き換えれば、どの関数からgameover()を呼び出しても直感的に即座に終了させることができます。

def main():
    start()
    while game.run:
        keydown()
        draw()
        timer()

2013年3月20日水曜日

Python pygame.image.load()

 日記としてつけ始めたこのブログですが、Webに貢献できるようにProgramming Tipsも載せていこうと思います。そのほうがページランクも上がるでしょうから。

Python+Pygameで画像を読み込む方法です。代表的なのがウェブに乗っています。例えば次のようなもの。

import pygame

image = pygame.image.load('picture.bmp').convert()

このコードでimageプロパティに画像が代入されます。convert()することによってSurfaceに貼り付けるときに機械の処理が楽になるそうです。

pygame.init()
screen = pygame.display.set_mode((200,100))
screen.blit(image,(0,0))

ウィンドウを作って先ほどの変数に格納した画像を書き込んでいます。pygame.init()をまず最初に呼び出して初期化してからscreenを作るみたいですね。

さて、今回一番重要なイメージの読み込みですが、実はネットに書かれている上記の方法ではWindowsでは動作してもLinuxではファイルをみつけることができません。ですので以下のように書き換えておくのが良いと思います。記入例では.pyファイルと同階層にあるdataディレクトリに画像を格納してある設定です。
 import sys,os

image = pygame.image.load(os.path.join(path(),'data','picture.bmp').convert()

def path():
    for name in sys.argv:
        if os.path.exists(name) == True:
            return os.path.dirname(name)
    return ''

一行で書くべき文は改行を入れないでください。Pythonの基本です。path()というのは自作関数です。このようにすれば実行時引数から絶対パスを取得します。カレントディレクトリがどこであっても絶対パスを返すらしく、今のところ問題は出ていません。あしからず。
ところで、関数の使い方については検索してウェブで調べてご覧になってください。

2012年4月20日金曜日

掲載

DL-MARKETで掲載させていただいている無料のゲームダウンロード数が未だに0だ。一つもダウンロードされない。今日、ではほかにどんなソフトが登録されているのかちょっと調べてみた。まあ、そんなに突出したゲームは置いてなかったけど、ほかのどのゲームも、僕のより優れているように感じた。そんな事は実際に遊んだことのないユーザーに分かることではないのだけれど、やっぱり売りたいという気持ちが全面にでているかどうかというのはポイントらしい。
 ソフトウェアの利用をきっかけに電子書籍を勝っていただければいいなと考えているので、商品画像とかは、やっぱり別のものに変えたのがいいのかな。ソースコード付きですとか、そんなの意味無いですからっていう感じが・・・。でもまあ、そこはやがてわかってもらえるかも知れませんから。画像変えましょう、画像。

2012年4月18日水曜日

ウェブリング

プログラミングのサイトへの、リンクを張り忘れていた。料理のサイトと、サッカーブログに追加。これでホームページのアクセスカウンタが増えるか気になる。ゲームアプリに関しては無料にもかかわらず一つのダウンロードもないからあんまり効果はないだろう。

2012年4月8日日曜日

ぶっとびラジオ

そういえばDelphiの話題でネットラジオというのを一度やってみたいなと思っていました。それからこちら、プログラミングの腕は磨いて来なかったのでなかなか実現までは遠いのですが、インターネットは着実に発展してきているみたいです。