忍者ブログ
暇人おやじの暇なつぶやき
[8] [9] [10] [11] [12] [13] [14] [15] [16]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

LGP
Light Game Programing の頭文字をとった言語

フリーのゲーム用の言語として公開されているのだが
結構気にしてます

というのは、HSPも同じようなコンセプトなのですが
LGPの方が、3Dの扱いが楽なんです(筆者談)

と思っているだけかもしれないのですが
HSPで3Dを扱う際、拡張モジュールなりを使わないとならないのですが
LGPは単体で行うことが出来ます

実は、メタセコイアという3Dのモデリングで作成したX-fileを
両方で読込表示してみたところ、HSPでは色の情報が抜けてしまいました
LGPでは綺麗に描かれたのです

LGPは現在バージョン4ですが、まだまだバグが多いのですが
非常に期待している言語の一つです
PR

今日は朝からシャワーを浴びて出社しようと考えて昨夜寝た

6時頃セットしたTVが付いて起きる
ニュースを流し聞きするも、山手線の遅れが気になる

人身事故の影響

田町、浜松町間において京浜東北線でのことだ

6:30に運転再開のニュースがあったので、駅に着く7時15分ころには
普通通りになっているだろうと高をくくっていたが、考えが甘かった

乗車駅から降車駅まで普段なら30分のところが50分もかかってしまった
しかも、満員電車の洗礼つきだ
おかげで、朝の楽しいモーニングの時間は潰してしまった

子供の頃に見た未来の交通システムに早くならないかと、つくづく思う今朝の
出来事でR

gsel 命令や pos 命令で指定する数値は画面を特定したり、表示する位置を特定したりする
しかしこの数値を「数値」としてコードを記載していたのでは、後々何の画面なのか
はたまた、位置があっているのかわからなくなる

そ こ で

変数や定数
イコールで代入するのは変数 X=1 など
あらかじめ決められて変わらないのが定数 #const  gamen_main 1

#const gyou1 0
mes "これは1行目"
pos 100,gyou1
mes "これは2行目"

これは定数「gyou1」を定義している中身は「0」
そしてpos命令にて使用している

久しぶりのhsp
前回は gsel命令による画面選択を行なった

では、その画面に文字を出力する mes 命令だが
このmesを特定の位置に出力するにはどうするのか?

それには pos命令を使用する

指定しない場合、起点 X=0、Y=0の画面左上から表示する毎に1行づつ改行される

mes "これは1行目"
mes "これは2行目"

そこで、
mes "これは1行目"
pos 100,0
mes "これは2行目"

とすると一行に表示されるのだ

JRに苦情!
2月17日東京駅から8時8分マックスヤマビコの指定席、車両の一番前を指定するも、窓側は全般的に一杯ですとのもと、全般的?ってことは一杯なんだとおもい、では通路側でといって31番のCの席となる
載ってみる、あら、結構空いてる
って、隣の席のDE席誰も座らないじゃん
なぜか、A席の人と気まずい雰囲気
ってことで郡山でD席に移動した

JRの窓口では、窓側は空いてないって説明だったのに、いったいどういうことだ??

あぁ、疲れる旅だ
しかもコンセントついてねー
東海道新幹線は一番前は付いてるのに;;
東京駅@25発行(2-)60272-01

突然だがDelphi
まー飽きやすい筆者なので、たまには違うことも書かないと続かないのでR

Delphiは筆者が長年付き合ってきた言語なのだが、Threadを使う方法というか
使うべきシステムにいままであたらなかった為に、Threadをどのように使うのかさえ知らずにいた

しかしThreadでプログラムを行うと、いままで全く違ったプログラムが出来そうな感じがする

以下に簡単にThreadの使い方を記載してみる

■Threadアプリケーションの作成に関して
 新規作成 → スレッドオブジェクト → クラス名
 ここで指定したクラスをメインプログラムで定義しCreateする
 ここではThread1と入れてみると、新しいUnit
type
  Thread1 = class(TThread)

 のコードが記載される
 スレッドの本体の処理はこちらのUnitに自動で作成されたプロシジャー(Execute)に記載する
 procedure Thread1.Execute;
 begin
   { ToDo : スレッドとして実行したいコードをここに記述 } 
 end;

■スレッドの使用方法
 メインプログラム(のUnit)でスレッドを定義する
 下記はtrpipeという変数定義をthread1の型として定義
 これでThreadクラスを使用することができる
 もちろんこの際には最初に作成したUnitをUsesに追加する

  private
    { Private 宣言 }
        trpipe :Thread1;

■スレッド終了時の処理があれば定義する
    procedure trpipeDone(Sender: TObject);

■使用する場所でスレッドのインスタンスを生成
 例えばコマンドボタンの処理などに割り当てる

  //ここでスレッドを生成し、処理を実行している
  trpipe  := Thread1.Create(False);
  //スレッド終了時の処理を割り当てる
  trpipe.OnTerminate  :=  trpipeDone;

■終了時の実装
procedure TForm1.trpipeDone(Sender: TObject);
begin
  ShowMessage('Thread End');
end;

■開放
プログラムが終了するとスレッドは開放されるが、自分で開放する場合
  trpipe.free を実装する

注意点としては、複数スレッドを動かす際、そのスレッドの処理内容によっては
生成する順番によりスレッドが停止してしまう場合がある点だろうか

思いのほか簡単に利用できるので、タイマーなどはThreadにして起動することで
処理をスムーズに行える

いきなりだが次のプログラムはどっちの画面に表示されるだろうか?

screen 0
screen 1
mes "この画面はどっちかな?"

実行してみると、どちらかわかりにくいが、screen 1に表示される
わかりやすくするために title 命令を入れてみよう
screen 0
title "0"
screen 1
title "1"
mes "この画面はどっちかな?"

これで画面にタイトルが表示されるようになり、どちらにメッセージが表示されたかが
良くわかる

この例を見てもわかるように、メッセージやタイトル、その他の画面に関する命令は
最後に選ばれた画面に対して作用する

そこで、gsel 命令で 作用させたい画面を選ぶ

screen 0
title "0"
screen 1
title "1"
gsel 0
mes "この画面はどっちかな?"

これで、「この画面はどっちかな?」はscreen0に表意されるのでR



忍者ブログ [PR]
カレンダー
08 2024/09 10
S M T W T F S
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
フリーエリア
最新CM
最新TB
プロフィール
HN:
忍者 シオ才
性別:
非公開
バーコード
ブログ内検索