HSP3 ゲームのプログラミング
前へ 目次へ 次へ 

(4) キー入力とキャラクタ移動

 キー入力については、HSP3 プログラミングの基礎Vの「キー入力情報取得」を参照すること。プログラムでは、入力されたキーの内容によって、座標を加算していくだけである。

サンプル(move41.hsp)
 上下左右のカーソルキーでキャラクタを移動させる。

    buffer 1            ;ウィンドウID 1番
    picload "move2.bmp"     ;画像ファイル読み込み
    screen 0            ;ウィンドウID 0番
    gmode 2, 32, 32    ;コピーモード設定
    x = 100 : y = 100
    dx = 8 : dy = 8
    repeat
        redraw 0        ;仮描画
        color 255, 255, 255         ;白色。背景と同じ色。
        boxf            ;ウィンドウと同じサイズの四角形を塗りつぶしで描画する。
        color 0, 0, 0           ;黒色
        pos x, y                ;カレントポジション設定
        gcopy 1, 0, 0   ;画像コピー
        stick key, 15    ;キー入力
        if key & 1 : x = x - dx         ;左
        if key & 2 : y = y - dy         ;上
        if key & 4 : x = x + dx         ;右
        if key & 8 : y = y + dy         ;下
        if key & 128 : end              ;[Esc]
        if x >= ginfo_winx - 32 : x = ginfo_winx - 32    ;右壁に衝突。
        if x <= 0 : x = 0               ;左壁に衝突。
        if y >= ginfo_winy - 32 : y = ginfo_winy - 32    ;下壁に衝突。
        if y <= 0 : y = 0               ;上壁に衝突。
        redraw 1        ;実描画
        await 100       ;無限ループの時のお約束
    loop
    stop

実行カーソル移動キーの矢印と同じ方向にキャラクタが移動する。押している間、移動し続けるが、壁に当たると停止する。また、上下の一つと左右の一つを同時に押すと斜めに移動する。

 キャラクタ移動のサンプルmove23.hspを元に作り替えたものである。


課題(move95.hsp)
 上下左右のカーソルキーでキャラクタを移動させる。2種類の画像を切り替える。


(リスト)新しいウィンドウで開く



課題(move96.hsp)
 キャラクタを移動させ、上壁に当衝突したら下壁から、左壁に当衝突したら右壁から出てくるようにする。


(リスト)新しいウィンドウで開く


前へ 目次へ 次へ 
2007 © Hiroshi Masuda

 

 

inserted by FC2 system