HSPでおいしいスープを飲む方法



                    
HSPって何ぞ?

l    Hot  Soup  Processor
      l    もともとONIONソフトが出した同⼈人コンパイラ
            -‐‑‒    http://www.onionsoft.net/
      l    同⼈人向けゲーム・ツール開発⽤用コンパイラ
      l    いつの間にか教育⽤用プログラミング⾔言語に

l    ホントはインタプリタ(ぇ
HSPの特徴
l    簡単にGUIプログラムが作れる。
        -‐‑‒    むしろCUIのプログラムを作る⽅方がめんどくさい

l    ゲーム・ツールに特化した豊富なプラグイン
l    リファレンス機能が神
l    アルゴリズムの勉強にはいい
l    初⼼心者⽤用として結構ディスられてるが、プログ
      ラミング上級者でも使われている。
l    DirectXやWin32APIも使えて、超便便利利
何が作れるの?
•  何でもできます
•  2D/3Dゲームを作成するのに便便利利
    •    エフェクトガンガン使ったり、メモリガンガン使うプログラム
         には向かない

•  デスクトップアクセサリとか簡単に作成できる
•  割とHSPで作られた作品が多かったり
さっそくダウンロード
      l    http://hsp.tv/
      l    TOP絵の
            Download  nowを
            クリックする
      l    「Free  Download  
            HSP」のボタンを
            押すとダウンロー
            ドされる
インストール
l    インストーラーの指⽰示にしたがってインストー
      ルする。
l    インストール先にサンプルが沢⼭山あるので、イ
      ンストール先は覚えておこう。
l    デモ等はめんどくさいので起動しないように。
      l    後で各⾃自で確認しておいてください
起動してみよう
l    まず、作業フォルダを作成する
       -‐‑‒    適当なフォルダを作成して、そこで作業をする
       -‐‑‒    コンパイル時にゴミが出るため

l    その中にテキストファイルを作成して、
      「hello.hsp」という名前に変更更する
l    hello.hspをダブルクリックで開く
いりきなだけど実⾏行行してみよう
l    この状態で⾚赤い⽮矢印の部分かF5を押す
実⾏行行しよう
l    ウィンドウが出てくれば成功
l    ウィンドウを出すだけのプログラム
発展させる
l    ウィンドウの⼀一⾏行行⽬目に以下を追加
      l    mes  "Hello  World"

l    実⾏行行してみよう
発展させる
l    さっきのウィンドウにHelloWoeldが表⽰示され
      たら成功
もう少し⼯工夫してみる
l    以下のコードを実⾏行行してみよう
  repeat  10
  mes  "Hello  World"
  loop
結果の確認
l    命令令⽂文repeate  p1
      l    repeat〜~loop間をp1回繰り返す
      l    省省略略すると無限ループ

l    命令令⽂文mes  p1
      l    p1⽂文字列列を表⽰示させる
      l    変数も以下のように定義可能
      a  =  100
      mes  "a="+a
⽂文法の説明
l    ⽂文末にセミコロンは要らない
l    関数では無く、命令令⽂文・メソッドがある
l    コメントは「//」か「;」の後ろに書く
l    ⼀一⾏行行につき⼀一つの命令令⽂文のみ
        -‐‑‒    ただしコロンを付けることによって、複数可

l    処理理の初期化、終了了処理理はかかなくてもいい
l    命令令⽂文は⾊色がつく
リファレンスの利利⽤用
l    HSPのリファレンス参照機能は神
l    命令令⽂文にカーソルを合わせてF1を押す
l    分からない命令令⽂文があったらF1で確認する
もっと⼯工夫してみる
l    以下のコードを実⾏行行してみよう
  screen  0,200,200

  repeat  10

        mes  "No"  +  cnt  +  ".Hello  World"

        wait  50

  loop
解説
•  screen  p1,p2,p3
  •  p1  …  ウィンドウID(メインウィンドウは0)
  •  p2,p3  …  ウィンドウの幅、⾼高さ

•  Wait  p1
  •  p1  …  p1*10msec待つ
  •  類似メソッドにawaitがある
実⾏行行ファイルの作成
•  START.AXの作成
   •    [HSP]  →  [START.AXの作成]

•  PACKFILEの編集
   •    [ツール]  →  [PACKFILEの編集]
   •    START.AXを追加
実⾏行行ファイルの作成
•  EXEファイルの作成
  •    [ツール]  -‐‑‒>  [EXEファイルの作成]
  •    好きなファイル名を⼊入⼒力力して、OK
実⾏行行ファイルの作成
•  作成されたEXEファイルを実⾏行行する
簡単なゲームを作ろう
•  これらをコピペで実行してみる
//
// ピンポンゲーム
//
screen  0,200,200
//初期設定
自幅  =  30:自高  =  5:自X  =  mousex:自Y  =  180
玉X  =  80:玉Y=  0:玉VX  =  1:玉VY=  1
repeat
   redraw  0 //バッファリング
   color  255,255,255:boxf //背景
   //自機の処理
   color  255,0,0:boxf  自X,自Y,自X+自幅,自Y+自高
   自X  =  mousex  -  自幅/2
簡単なゲームを作ろう
•  さっきの続き
   //玉の処理
   pos  玉X,玉Y:color  0,0,0:mes  "●"
   玉X+=玉VX:玉Y+=玉VY
   if(玉X  <  0  ||  玉X  >  190):玉VX  =  -玉VX
   if(玉Y  <  0  ||  (玉X+10  >  自X  &&  玉X  <  自X+自幅  &&  自Y  <  玉Y+10)):玉VY  =  -
   玉VY
   //Game  Over処理
   if(玉Y  >  200):color  0,255,0:pos  10,10:mes  "Game  Over"
   wait  1
   redraw  1 //描画
loop
役に⽴立立つメソッドとか
•  メソッド
   •    onkey,  onclick…キー、クリックの割り込み処理理
   •    stick,getkey…キー⼊入⼒力力判定
   •    buffer,gcopy…バッファスクリーンの読み書き

•  定数
   •    mousex/mousey…現在のマウスの座標を取得
   •    ginfo_̲winx,  ginfo_̲winy…ウィンドウの描画領領域のXY
勉強⽅方法
•  まず、どんなことが出来るかなれる
  •    ⼈人の作ったサンプルを⾒見見たり、⼊入⾨門講座等で勉強するこ
       とをおすすめする。
  •    「HSP  ⼊入⾨門講座」とかでぐぐれば結構出てくる

•  それができたら、ひたすら作る。
 •  HSPのコンテストも毎年年あるので出てみては?
  •    HSPコンテスト2009  http://hsp.tv/contest2009/
付録
•  HSPの本家チュートリアル
  •    http://hsp.tv/make/enroll.html

•  HSPの拡張プラグイン
  •    http://hsp.tv/make/tool1.html

•  HSPコンテスト2009
  •    http://hsp.tv/contest2009/

HSPでおいしいスープを飲む方法

  • 1.
  • 2.
    HSPって何ぞ? l  Hot  Soup  Processor l  もともとONIONソフトが出した同⼈人コンパイラ -‐‑‒  http://www.onionsoft.net/ l  同⼈人向けゲーム・ツール開発⽤用コンパイラ l  いつの間にか教育⽤用プログラミング⾔言語に l  ホントはインタプリタ(ぇ
  • 3.
    HSPの特徴 l  簡単にGUIプログラムが作れる。 -‐‑‒  むしろCUIのプログラムを作る⽅方がめんどくさい l  ゲーム・ツールに特化した豊富なプラグイン l  リファレンス機能が神 l  アルゴリズムの勉強にはいい l  初⼼心者⽤用として結構ディスられてるが、プログ ラミング上級者でも使われている。 l  DirectXやWin32APIも使えて、超便便利利
  • 4.
    何が作れるの? •  何でもできます •  2D/3Dゲームを作成するのに便便利利 •  エフェクトガンガン使ったり、メモリガンガン使うプログラム には向かない •  デスクトップアクセサリとか簡単に作成できる •  割とHSPで作られた作品が多かったり
  • 5.
    さっそくダウンロード l  http://hsp.tv/ l  TOP絵の Download  nowを クリックする l  「Free  Download   HSP」のボタンを 押すとダウンロー ドされる
  • 6.
    インストール l  インストーラーの指⽰示にしたがってインストー ルする。 l  インストール先にサンプルが沢⼭山あるので、イ ンストール先は覚えておこう。 l  デモ等はめんどくさいので起動しないように。 l  後で各⾃自で確認しておいてください
  • 7.
    起動してみよう l  まず、作業フォルダを作成する -‐‑‒  適当なフォルダを作成して、そこで作業をする -‐‑‒  コンパイル時にゴミが出るため l  その中にテキストファイルを作成して、 「hello.hsp」という名前に変更更する l  hello.hspをダブルクリックで開く
  • 8.
    いりきなだけど実⾏行行してみよう l  この状態で⾚赤い⽮矢印の部分かF5を押す
  • 9.
    実⾏行行しよう l  ウィンドウが出てくれば成功 l  ウィンドウを出すだけのプログラム
  • 10.
    発展させる l  ウィンドウの⼀一⾏行行⽬目に以下を追加 l  mes  "Hello  World" l  実⾏行行してみよう
  • 11.
    発展させる l  さっきのウィンドウにHelloWoeldが表⽰示され たら成功
  • 12.
    もう少し⼯工夫してみる l  以下のコードを実⾏行行してみよう   repeat  10   mes  "Hello  World"   loop
  • 13.
    結果の確認 l  命令令⽂文repeate  p1 l  repeat〜~loop間をp1回繰り返す l  省省略略すると無限ループ l  命令令⽂文mes  p1 l  p1⽂文字列列を表⽰示させる l  変数も以下のように定義可能 a  =  100 mes  "a="+a
  • 14.
    ⽂文法の説明 l  ⽂文末にセミコロンは要らない l  関数では無く、命令令⽂文・メソッドがある l  コメントは「//」か「;」の後ろに書く l  ⼀一⾏行行につき⼀一つの命令令⽂文のみ -‐‑‒  ただしコロンを付けることによって、複数可 l  処理理の初期化、終了了処理理はかかなくてもいい l  命令令⽂文は⾊色がつく
  • 15.
    リファレンスの利利⽤用 l  HSPのリファレンス参照機能は神 l  命令令⽂文にカーソルを合わせてF1を押す l  分からない命令令⽂文があったらF1で確認する
  • 16.
    もっと⼯工夫してみる l  以下のコードを実⾏行行してみよう   screen  0,200,200   repeat  10   mes  "No"  +  cnt  +  ".Hello  World"   wait  50   loop
  • 17.
    解説 •  screen  p1,p2,p3 •  p1  …  ウィンドウID(メインウィンドウは0) •  p2,p3  …  ウィンドウの幅、⾼高さ •  Wait  p1 •  p1  …  p1*10msec待つ •  類似メソッドにawaitがある
  • 18.
    実⾏行行ファイルの作成 •  START.AXの作成 •  [HSP]  →  [START.AXの作成] •  PACKFILEの編集 •  [ツール]  →  [PACKFILEの編集] •  START.AXを追加
  • 19.
    実⾏行行ファイルの作成 •  EXEファイルの作成 •  [ツール]  -‐‑‒>  [EXEファイルの作成] •  好きなファイル名を⼊入⼒力力して、OK
  • 20.
  • 21.
    簡単なゲームを作ろう •  これらをコピペで実行してみる // // ピンポンゲーム // screen 0,200,200 //初期設定 自幅  =  30:自高  =  5:自X  =  mousex:自Y  =  180 玉X  =  80:玉Y=  0:玉VX  =  1:玉VY=  1 repeat redraw  0 //バッファリング color  255,255,255:boxf //背景 //自機の処理 color  255,0,0:boxf  自X,自Y,自X+自幅,自Y+自高 自X  =  mousex  -  自幅/2
  • 22.
    簡単なゲームを作ろう •  さっきの続き //玉の処理 pos  玉X,玉Y:color  0,0,0:mes  "●" 玉X+=玉VX:玉Y+=玉VY if(玉X  <  0  ||  玉X  >  190):玉VX  =  -玉VX if(玉Y  <  0  ||  (玉X+10  >  自X  &&  玉X  <  自X+自幅  &&  自Y  <  玉Y+10)):玉VY  =  - 玉VY //Game  Over処理 if(玉Y  >  200):color  0,255,0:pos  10,10:mes  "Game  Over" wait  1 redraw  1 //描画 loop
  • 23.
    役に⽴立立つメソッドとか •  メソッド •  onkey,  onclick…キー、クリックの割り込み処理理 •  stick,getkey…キー⼊入⼒力力判定 •  buffer,gcopy…バッファスクリーンの読み書き •  定数 •  mousex/mousey…現在のマウスの座標を取得 •  ginfo_̲winx,  ginfo_̲winy…ウィンドウの描画領領域のXY
  • 24.
    勉強⽅方法 •  まず、どんなことが出来るかなれる •  ⼈人の作ったサンプルを⾒見見たり、⼊入⾨門講座等で勉強するこ とをおすすめする。 •  「HSP  ⼊入⾨門講座」とかでぐぐれば結構出てくる •  それができたら、ひたすら作る。 •  HSPのコンテストも毎年年あるので出てみては? •  HSPコンテスト2009  http://hsp.tv/contest2009/
  • 25.
    付録 •  HSPの本家チュートリアル •  http://hsp.tv/make/enroll.html •  HSPの拡張プラグイン •  http://hsp.tv/make/tool1.html •  HSPコンテスト2009 •  http://hsp.tv/contest2009/