Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
115 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35184
次のページ(過去)
返信[3]
親投稿
データ配列を使わない他の方法はわかっている感じですか? データ配列を使う場合の指定は、 SPANIM 管理番号,"アニメ対象",データ配列 [,ループ] になります。このデータ配列の中身がどうなるかはアニメ対象によって多少変わりますが、基本的には、[時間と値]の組み合わせを必要なだけ繰り返す感じになります。 例えばキャラ変更のアニメーションの場合、データ配列を使わない場合は、 SPANIM 0,"I",4,500,4,501,4,502,4,503,1 みたいになりますが、これをデータ配列を使う場合は、 DIM D[8] D[0]=4:D[1]=500:D[2]=4:D[3]=501:D[4]=4:D[5]=502:D[6]=4:D[7]=503 SPANIM 0,"I",D,1 になるって感じです。
0そうだね
プレイ済み
返信[25]
親投稿
プログラムを部分的にしか見てないので全容はわかりませんが、どうも出現とメインループの切り分けがうまくいってないような気がしますね…。 早さを固定する場合は移動にかかる時間を計算しないといけないです。 例えばSX,SYがスタート地点でEX,EYが目的地だとすると、 L=SQR(POW(EX-SX,2) + POW(EY-SY,2)) でLに距離が求まります。この距離に対して速度をかけて、その値を-で設定する時間の方に当てはめる感じです。
0そうだね
プレイ済み
返信[1]
親投稿
SPANIMは色んな指定方法がありますが、その中でデータ配列を使ったやり方がわからないという感じですか?
0そうだね
プレイ済み
返信[23]
親投稿
移動中の座標はSPOFSのOUT指定でとれると思いますよ。(たぶん) ただし取得するのはメインフレームの中で毎回取得するか、SPFUNCとかを使って呼び出す関数でとかになるとは思いますが…。 あと正確に目標地点が違うスプライトを速度的に同じで動かしたい場合は、目的地点までの距離を求めて、その距離に速度をかけたような値を時間として設定するようなプログラムになるんじゃないかなって思います。
1そうだね
プレイ済み
返信[9]
親投稿
だとしたらエラーが出ている69行目付近を見てみないことにはわかりませんね…。なにか間違いがあるのは確実だとは思いますが…。
1そうだね
プレイ済み
返信[83]
親投稿
SPANIMはかなり便利ですからねー…。 僕は言語の特徴を生かす主義なので使える便利な命令があればデメリットがメリットを上回らない限りは積極的に利用するタイプですね。
0そうだね
プレイ済み
返信[7]
親投稿
DIM RETU[1]を2ヶ所書いてるんじゃ無いかな? DIM RETU[1]は宣言なので始めの1ヶ所で大丈夫です。再利用出来ますよ。
1そうだね
プレイ済み
返信[12]
親投稿
>otta777さん いや、わかんないです! たぶん!笑 機能的にそうじゃないのかなーって思った感じです。間違っていたらすいません!
0そうだね
プレイ済み
返信[9]
親投稿
そういえばちゅうきゅうしゃさんのプログラムはタッチしていない間も処理されていますね。 タッチされているかはTOUCHで得たTMが1以上かで判断できます。(ちなみに1の時はタッチした瞬間) なので7、8行目のBGを配置する処理をTMが1以上の時だけ実行する(IF)すれば望み通りの処理になると思いますよ。
1そうだね
プレイ済み
返信[6]
親投稿
ちゅうきゅうしゃさんの回答がズバリで役に立つと思います。 5番は単純にやろうとすれば16で割るだけでも(ほぼ)目的を達成できますが、BGCOORD命令を使うとBGキャラのサイズが変わったときなども対応されるはずなので、その方が確実ですね。
0そうだね
プレイ済み
返信[3]
親投稿
セーブは文字列、もしくは数値配列しか出来ないので、数値を保存したいときは一旦文字にして保存するか、もしくはだにえるさんの教えてくれたやり方などで一旦配列に移してから、その配列を保存するような形になります。 文字列にした場合も配列にした場合もロードしたときには文字列か配列になるので、それを数値変数に移すような処理も必要になると思います。
2そうだね
プレイ済み
返信[1]
親投稿
キャラクターの移動するプログラムは書けますか? BGスクロールはキャラクターの座標が一定範囲外になった時に、キャラクターの代わりにBGを動かすことで実現出来ます。BGを動かすのはBGOFSです。 ただBGは標準で画面内し置けないので、広いBGを用意したいときはBGSCREEN命令でサイズを大きくして利用してください。
1そうだね
プレイ済み
返信[3]
親投稿
オマケ。 1:画面モードを下画面も使えるモードに設定する。(XSCREEN命令) 2:操作対象を下画面にする。(DISPLAY命令) 3:メインループを作成する。(WHILE等)以下、メインループの中で、 4:TOUCH命令で画面上のタッチした場所を取得する。 5:タッチした場所はドット座標なので、BG座標に変換する。通常なら16で割ればOK。 6:タッチされた場所にBGPUTでBGを配置する。 という流れ。頑張って!
0そうだね
プレイ済み
返信[2]
親投稿
やり方としてはotta777さんの言われてる通りですね。 あとは質問者がどこまで出来るのかによって説明する範囲が変わってきますし、もしわからない事があれば追加で質問すればいいと思いますよ。
0そうだね
プレイ済み
返信[20]
親投稿
そかそか、了解です〜。 頑張ってください!
0そうだね
プレイ済み
返信[18]
親投稿
良かったです! あとちょっと気になってるんですが、60行目のFORは何のためにある感じですか? あとから数字を増やす予定かな? それなら問題ないんですが、0 TO 0ってとても気になったので〜
0そうだね
プレイ済み
返信[1]
親投稿
ちゃんと全部見てるわけじゃないけど、とりあえず気になった点だけ挙げておきます。 1:30行目のREPEATの次の行にVSYNCを入れておいた方がいい。 2:31行目のSPCLR 0はSPCLR KNRIじゃないのかな? 3:31行目のELSE以降はREPEATを抜けたあとに処理すればいいと思う。(REPEATを抜けた時はAボタンが押されているので) 32行目も同様にREPEATの外で問題ない。 って感じです。
3そうだね
プレイ済み
返信[15]
親投稿
スーさんの説明したCALL SPRITEも含めて、僕が始めに説明した内容を簡単なサンプルにしたものを作ってみたので参考に載せますね。 サンプルで聞きたいことがあれば答えますが、とりあえずそんな感じのやり方の一つでした。今後の参考になればと言う感じです。 頑張ってください!
1そうだね
プレイ済み
返信[14]
親投稿
出来たのは良かったです! ただぱっと見ですが@SPMOVEが毎回呼び出されているように感じるんだけど大丈夫なのかなぁ? 全体を見てないので何とも言えませんが、ちょっと気になる点も多いので、その辺を気をつけて確認してみてくださいねー。
1そうだね
プレイ済み
返信[12]
親投稿
なんとなくSPANIMを何回も呼び出してしまっているような気がするのですが違いますか? SPANIMは一度呼び出したらアニメーションが終わるまでは同じ動作を呼びだしてはいけません。 なんとなくそのあたりの処理が間違っているような気がするのですが…
0そうだね
プレイ済み