キャラクターをウィンドウ内で動かすプログラムを作成中であり、画面外に出ないようにする
以下のようなソースを組みました。
しかし、X座標の画面外に出ようとして指定した座標に固定した途端に「配列の要素が無効です」
というエラーが出ます。
また、同様にY座標の画面外に出ようとすると「異なる型を持つ配列変数に代入しました」
実数型配列変数ではなく、dimによる通常配列変数を利用した場合は上のエラーは出ませんでした。
キャラクターの座標をできれば細かくしたいので実数を利用したいのですが…
*game_start
ddim player_xy,2 ;プレイヤーの座標
ddim player_vel_xy,2 ;プレイヤーの速度
player_vel_xy(0)=4.0
player_vel_xy(1)=4.0
player_xy(0)=0.0 ;初期位置
player_xy(1)=5.0
repeat
redraw 0
color 255,255,255:boxf
color
getkey key1,37
getkey key2,38
getkey key3,39
getkey key4,40
if key1>0 : player_xy(0) - player_vel_xy(0)
if key2>0 : player_xy(1) - player_vel_xy(1)
if key3>0 : player_xy(0) + player_vel_xy(0)
if key4>0 : player_xy(1) + player_vel_xy(1)
if player_xy(0) < 0-1.0 : player_xy(0)=0-1.0
if player_xy(0) > ginfo_winx-5.0 : player_xy(0)=ginfo_winx-5.0
if player_xy(1) < 0-1.0 : player_xy(1)=0-1.0
if player_xy(1) > ginfo_winy-5.0 : player_xy(1)=ginfo_winy-5.0
color : pos player_xy(0),player_xy(1) :mes "●"
redraw 1
await 20
loop