hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
小ワザ/マップスクロール/横 - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

横スクロール

Charlotte版

横に長いマップの場合
a.bmpは(100以上)x100でスクロールします。

file横スク.as
Everything is expanded.Everything is shortened.
  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
 31
 32
 33
 34
 35
 36
 37
 38
 39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    buffer 2                    ;windowID2にa.bmpをストック
    picload "a.bmp"                    ;
    screen 0,100,100,1
    
    x=0                        ;キャラの初期位置
*main
    repeat
 
    redraw 2
        gosub *draw
        gosub *key
        gosub *scroll
    wait 1
    redraw 1
    loop
 
*draw
    gmode 0
    pos 0,0:gcopy 2,MAP_x,0,100,100
    pos x,63
    color 0,0,0 : mes "○"
    return
*key
    stick ky,5,1
    if ky&1:x-=1:LR=0
    if ky&4:x+=1:LR=1
    return
*scroll
    
    if x<=0:x=0                ;LRは向き Lが0 Rが1
    if x>=85:x=85
 
    if SC=0:if (LR=1)&(x>50):SC=1
    if SC=2:if (LR=0)&(x<50):SC=1
    if SC=1:x=50:if ky&1:MAP_x-=2:else:if ky&4:MAP_x+=2
    
    if MAP_x>=200:SC=2
    if MAP_x<=0:SC=0
    return

突っ込み

  • 一応サンプル。突っ込みヨロです。もしくは、手直しでも;; -- Charlotte 2005-05-25 16:45:01 (水)
  • バグ発見;;こんな簡単なのでバグとか・・恥。 -- Charlotte 2005-05-26 16:51:59 (木)
  • 気づいた^^; -- kz3 2005-05-26 18:03:20 (木)
  • 教えてくださいよぉw -- Charlotte 2005-05-28 11:57:38 (土)

Charlotte版デバッグ

file横スクkz3chk[sp].as
Everything is expanded.Everything is shortened.
  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
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
        buffer 2                                        ;windowID2にa.bmpをストック
        picload "a.bmp"                                 ;
        screen 0,100,100,1
        
        x=0                                             ;キャラの初期位置
*main
        repeat
 
        redraw 2
                gosub *draw             // キャラ描画
                gosub *key              // キー入力
                gosub *scroll           // 画面スクロール
                                        
        wait 1
        redraw 1
        loop
 
*draw
        gmode 0
        pos 0,0:gcopy 2,MAP_x,0,100,100         // MAP_xはマップ全体コピー
        pos x,63
        color 0,0,0 : mes "○"                  // キャラ描画
        return
*key
        stick ky,5,1
        if ky&1:x-=1:LR=0                       // 左を押したらキャラを左にずらして
                                                // 向きフラグを左にセット
        if ky&4:x+=1:LR=1                       // 右を押したらキャラを右にずらして
                                                // 向きフラグを右にセット
        return
*scroll
        // 画面外にキャラを動かさないようにする
        if x<=0:x=0                             ;LRは向き Lが0 Rが1
        if x>=85:x=85
 
        // 初回はSC=0で判定される
        // 向きフラグが右でキャラ位置が50より右ならスクロールフラグをONにしている
        if SC=0:if (LR=1)&(x>50):SC=1
 
 
        // マップを右端まで表示している時、
        // スクロールフラグを立てる(=左にスクロールさせる)条件は、
        // 向きフラグが左でキャラ位置が50より左の時。
        if SC=2:if (LR=0)&(x<50):SC=1
 
        // スクロール中はキャラ位置を50で固定。
        // キー入力によって背景を動かす 
        if SC=1:x=50:if ky&1:MAP_x-=2:else:MAP_x+=2
 
/* E R R O R * E R R O R * E R R O R * E R R O R * E R R O R * E R R O R * E R R O R * 
 
2)      if SC=1:x=50:if ky&1:MAP_x-=2:else:MAP_x+=2
                                      ~~~~~~~~~~~~~
  左キーを押したら表示するマップ範囲を左にずらす        ->OK
  でも左キーを押していなかったら右にずらしてる          ->NG
              ~~~~~~~~~~~~~~~~~~
 * E R R O R * E R R O R * E R R O R * E R R O R * E R R O R * E R R O R * E R R O R */
 
        if MAP_x>=200:SC=2              // SC=2は表示マップが右端
 
        if MAP_x<=0:SC=0                // SC=0は表示マップが左端
        return
  • 懐かしいスクリプトをコメントを付けてのチェックです!! -- kz3 2005-08-01 09:40:50 (月)
  • まだ見当のついていないバグもあるかもしれないです。 -- kz3 2005-08-01 09:40:50 (月)
    URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

画像必要です。わざわざ自作っ^^;

filehorizon_scroll.as
Everything is expanded.Everything is shortened.
  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
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
-
|
!
-
|
!
 
-
|
!
-
|
!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    ;horizon_mapscroll
    #const _mapw    480        ;マップの幅
    #const _maph    60
    #const _scrw    160        ;スクリーンの幅
    #const _scrh    60
    #const _crw    12        ;キャラの幅
    #const _crh    20
    #const _margin    40        ;スクロール開始マージン
 
    buffer 2
    picload "town.bmp"
    buffer 3
    picload "person.bmp"
 
    screen 0,_scrw,_scrh
 
    scrx=0 : scry=0            ;マップ中のスクリーンの座標
    crx=0 : cry=_scrh-_crh        ;キャラの座標
    gosub *draw
 
*horizon_scroll
    repeat
        await 1
        stick key,5,1
 
        switch key
            case 1:if scrx!0{
                    if crx>_margin : crx-- : else : scrx--
                }
                else{
                    if crx>0 : crx--
                }
                swbreak
            case 4:if scrx<(_mapw-_scrw){
                    if crx<(_scrw-_margin-_crw) : crx++ : else : scrx++
                }
                else{
                    if crx<(_scrw-_crw) : crx++
                }                
                swbreak
            default:continue
        swend
 
        gosub *draw
    loop
    stop
 
*draw
    gmode 0
    pos 0,0
    gcopy 2,scrx,scry,_scrw,_scrh
    gmode 2
    pos crx,cry
    gcopy 3,0,0,_crw,_crh
    return

ご意見板

  • Charlotteさんとアルゴリズム被らないように・・・
    if{...}else{if:...}はできるんだ?! -- kz3 2005-05-26 20:01:03 (木)
  • 画像はリンクで、タブは4文字分だぁ;; -- kz3 2005-05-26 20:02:58 (木)
  • 拡張マクロを使用しています。(switch文) -- kz3 2005-05-26 20:08:38 (木)
  • ほぉ、参考になりますです。 -- Charlotte 2005-05-27 14:25:05 (金)

無限スクロール

[hsp3]
無限スクロールのサンプルです。

  • 背景画像が最後まで来たら、つなぎ目用の同じ画像を表示します。
  • メインの背景部分が表示領域から外れたらつなぎ目用画像と入れ替えます。
    Everything is expanded.Everything is shortened.
      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
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
    
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    
    ;
    ;	無限スクロールサンプル
    ;	for HSP3
     
    ;-------------------
    ;	元画像
    szBgx = 400
    szBgy = 200
    screen 1, szBgx,szBgy
     
    ;画像の代わりに文字列を表示します。
    color 255 : boxf : color
    repeat 20
        mes "■背景の代わりの文字列 0123456789 あいうえおかきくけこ"
    loop
     
    ;-------------------
    ;	メインウィンドウ
    screen 0, 200,200
    ml = 5
    mx = 0
    my = 0
     
    ;-------------------
    ;	背景の座標
    dim px, 3
    py = 0
     
     
    ;-----------------------------
    ;
    ;	メインループ
    ;
    *main
        redraw 1 : await 16 : redraw 0 : color 255, 255, 255 : boxf : color : pos 0,0
     
        stick key, 15
        if key&128 : end
     
        ;	カメラ位置を移動
        if key&1 : mx-=ml
        if key&4 : mx+=ml
     
        ;	カメラに対する背景の座標を計算
        px(0) = -(mx \ szBgx)
        px(1) = px(0) + szBgx
        px(2) = px(0) - szBgx
     
        ;	背景を描画
        pos px(0), py
        gcopy 1, 0,0, szBgx, szBgy
        ;背景のつなぎ目
        pos px(1), py
        gcopy 1, 0,0, 200, szBgy
        pos px(2), py
        gcopy 1, 0,0, szBgx, szBgy
     
        goto *main
    

総合コメント



添付ファイル:
file横スクkz3chk[sp].as
555件 [詳細]
file横スク.as
754件 [詳細]
filetown.bmp
1235件 [詳細]
fileperson.bmp
1039件 [詳細]
filehorizon_scroll.as
542件 [詳細]
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2010-01-04 (月) 00:34:50 (1434d)