プレイ日記
自分でスプライトって作れるんですか?
7そうだね
プレイ済み
返信[1]
親投稿
やり方を、教えてください!!!
0そうだね
プレイ済み
返信[2]
親投稿
はる HARUHI-0913
スプライト用のグラフィックデータを作って、 SPDEFで定義すればできますよ。
1そうだね
プレイ済み
返信[3]
親投稿
お手数をお掛けしますが、やり方をもう少し詳しく教えてくれませんかね・・・・・
0そうだね
プレイ済み
返信[4]
親投稿
はる HARUHI-0913
自分は説明が下手なので、それは難しいです。 ただ、どういうことがしたいのか、 もっと具体的におっしゃってもらえると、 説明できるかもしれません。
0そうだね
プレイ済み
返信[5]
親投稿
方法は2つほどあります。 プログラム中でGPAGE 0,4として、 G系命令(pandaosaruさんが解説されています。)でお絵描きする方法 サンプル[8XD3V3LJ]やigyochanさんのゲームが参考になると思います。
0そうだね
未プレイ
返信[6]
親投稿
もう1つは、はるさんの仰る通り、お絵描きツールでお絵描きして、読み込む方法。 やり方は、  ・お絵描きツールでお絵描きする。  ・適当な名前で保存する。  ・プログラムの最初の方で、LOAD "GRP4:(ファイル名)",0みたいな感じで読み込む。  ・必要があれば、SPDEFで大きさを指定 1つ目の方法は、ファイル単位で公開出来て、容量の節約になるという利点があります。しかし、複雑な絵だったり、数が多いと面倒です。 2つ目の方法は、複雑な絵や沢山のスプライトを用意するときに向いています。しかし、メインのプログラムと描いた絵を1つのプロジェクトにまとめることが多いため、容量も大きくなりがちです。
1そうだね
未プレイ
返信[7]
親投稿
二つ目の方法 こうですか?
0そうだね
プレイ済み
返信[8]
親投稿
はる HARUHI-0913
LOAD"GRP4:SP_0",0 としてみて下さい。
0そうだね
プレイ済み
返信[9]
親投稿
0そうだね
プレイ済み
返信[10]
親投稿
できました。
0そうだね
プレイ済み
返信[11]
親投稿
で、どうやったら表示させることができますか?
0そうだね
プレイ済み
返信[12]
親投稿
SPSETで表示出来ますが、どんな絵を描いているのかによります。
0そうだね
未プレイ
返信[13]
親投稿
こんなの
0そうだね
プレイ済み
返信[14]
親投稿
とりあえずスマイルツールを起動することをオススメします。
0そうだね
未プレイ
返信[15]
親投稿
はい!開きました
0そうだね
プレイ済み
返信[16]
親投稿
おっとすれ違いガール() SPDEFという命令があってですね。 使い方はSPDEF 定義番号(好きな数字で良いですが、0から始まると便利),絵の左上のX座標,Y座標,幅,高さ で定義出来ます。その後 SPSET 管理番号,さっき定義した定義番号 で表示出来ます。
0そうだね
未プレイ
返信[17]
親投稿
↑うーん・・よくわからないないので、お手数をおかけますがプログラムの例を、見せてもらえますか?
0そうだね
プレイ済み
返信[18]
親投稿
[8XD3V3LJ] 例えば、左上に描いた32*32のスプライトを表示したい場合 SPDEF 0,0,0,32,32 で定義して、 SPSET 0,0 で表示…0ばっかりで分かりづらいですね。その右に描いた同じサイズのスプライトを表示する場合 SPDEF 1,32,0,32,32 で定義して、 SPSET 1,1 で表示。最初のスプライトをもう1つ表示したい場合 SPSET 3,0 で表示 です。
0そうだね
未プレイ
返信[19]
親投稿
こうゆう感じで教えてもらえると、うれしいです。
0そうだね
プレイ済み
返信[20]
親投稿
文字で、教えてもらうのはとても、役にたつと思います。しかし、それだと、ほぼ猿真似状態になってしまうので、上の画像のような感じにしてくれると、助かります。(わがままですみません・・m(_ _)m)
0そうだね
プレイ済み
返信[21]
親投稿
すみません。以後気を付けます。 こんな感じて大丈夫ですか?[QD3PBXTD]
0そうだね
未プレイ
返信[22]
親投稿
?
0そうだね
プレイ済み
返信[23]
親投稿
もしかして公開キーご存知ないですか? トップメニューの作品公開とダウンロードから公開キーを使ってダウンロードでダウンロード出来ます。3号からだとスクショが貼れないのでこのような形になりました。すみません。
0そうだね
未プレイ
返信[24]
親投稿
あ・・・すみません僕の勘違いです。
0そうだね
プレイ済み
返信[25]
親投稿
なんかエラーが・・・座標は、あってるはずなのに・・・・・
0そうだね
プレイ済み
返信[26]
親投稿
はる HARUHI-0913
どの命令でどのエラーが出たんですか?
0そうだね
プレイ済み
返信[27]
親投稿
スプライトは文字と違って座標でエラーが出ることは無いので、他の原因でしょうね。 勘でしか無いですが、引数(命令に渡す数)の数が違うと予想。
0そうだね
未プレイ
返信[28]
親投稿
あ・・できました。
0そうだね
プレイ済み
返信[29]
親投稿
あの・・・Aを押してる間だけスプライトが、変わるコマンドは、どうしたらいいのですか? IF B AND #A THEN SPSET 0 では、できませんでした・・・
0そうだね
プレイ済み
返信[30]
親投稿
はる HARUHI-0913
IF B AND #A THEN SPCHR 管理番号,変えた時の定義番号 ELSE SPCHR 管理番号,通常時の定義番号 (説明下手ですいません) でできると思います。
1そうだね
プレイ済み
返信[31]
親投稿
↑これすると、他のスプライトがつかえません!
0そうだね
プレイ済み
返信[32]
親投稿
はる HARUHI-0913
他のスプライトとはなんですか?
0そうだね
プレイ済み
返信[33]
親投稿
Q3AXBXRD
0そうだね
プレイ済み
返信[34]
親投稿
はる HARUHI-0913
こういうことなら"SET"を"CHR"に変えるだけでいいと思いますよ。
0そうだね
プレイ済み
返信[35]
親投稿
ok
0そうだね
プレイ済み
返信[36]
親投稿
スプライトは基本的には16×16ですが、32×32にも、できますか?
0そうだね
プレイ済み
返信[37]
親投稿
はる HARUHI-0913
できます。 普通はSPDEFという命令を使って定義自体を変更しますが、 SPSETから直接行うこともできます。
0そうだね
プレイ済み
返信[38]
親投稿
SPDEFを使えば出来ますよ。
0そうだね
未プレイ
返信[39]
親投稿
↑どうやったらいいのんですか?SPDEFの使い方は、あまりわかりません。
0そうだね
プレイ済み
返信[40]
親投稿
4/1日の僕のコメントに書かれてますよ。と言うのはちょっと不親切なので解説すると、 SPDEF 定義番号,左上のX座標,Y座標,幅,高さ で設定出来ますよ。 左上の座標はスマイルツールのお絵描きで確認出来るはずです。 例えば、256,256の位置を左上に描いた32*32のスプライトを定義する場合 SPDEF 0,256,256,32,32 ’256,256の位置を左上に32*32の大きさを定義番号0(最初イチゴだったところ)に定義 です。実際に試してみてください。
1そうだね
未プレイ
返信[41]
親投稿
おk
0そうだね
プレイ済み
返信[42]
親投稿
こんなものまでなら、作れるようになれました。 Q34XB41D
0そうだね
プレイ済み
返信[43]
親投稿
スティックで、スプライトを移動させて、ジャンプすると、下に落ちる物を作りたいんですけど、なぜか、できません。
0そうだね
プレイ済み
返信[44]
親投稿
少しずれてるかもしれませんが、気になった点 ・B%=B%+0,9 ’ピリオドとコンマを間違えている気がします。つまりエラー。仮にピリオドだとしても整数型の変数なので、0.9を足しても切り捨てられます。つまりB%の値は変化しません。 ・仕様かも知れませんが、スティックとAボタンが両方でY座標を変化させれる点が気になります。 ・IF (略)SY=Y-10 ’Yはスティックの情報なので、範囲は+-1ぐらい。それから10が引かれるので、SYは-10ぐらいになります。つまりボタンが押されると、画面がいに瞬間移動します。
0そうだね
未プレイ
返信[45]
親投稿
もういっちょ。 A%=BUTTON(2) ’場所がおかしい。 もしかして:次の行も。
0そうだね
未プレイ
返信[46]
親投稿
一様動くようにできました。 しかし、重力を発生させることができません・・・ IFでAボタンでスプライトをジャンプさせることも、できません!! どうしたらいいでしょう?
0そうだね
プレイ済み
返信[47]
親投稿
昨日偶然サンプルになりそうなゲームを作ってました。 プロジェクト名[BLOOD_1GP] 公開キー[R33833J] プロジェクトの中に入っているBLOOD_FALL というファイルがそれです。BIGで動くか分かりません。 短さを求めていたので、絶望的に読みづらいです。なので、次のコメントに解説をのせておきます。
0そうだね
未プレイ
返信[48]
親投稿
まず。重力やジャンプという概念を付けるときには、地面という概念はほぼ必用です。 僕のFALLでは、GLINEで表現しています。 スプライトがその地面をすり抜けないようにするには、スプライトが画面外に出ないようにするのと、同じような感じで出来ます。FALLの場合MIN関数を使っています。 SPSET 0,6 GLINE 0,216,480,216 '画面にy=216の線を描く (中略) WHILE 1 '無限ループ  (中略)  SX=SX+X 'x座標更新  SY=MIN(SY-Y,200) 'Y座標更新。ただし、Yは地面-16より大きくならない。 WEND
1そうだね
未プレイ
返信[49]
親投稿
次に重力(加速度)を付けます。ジャンプやバウンドも重力(加速度)で表現出来ます。 2つ前のみならいプログラマーさんのコメントの変数B%がそれにあたります。ただし、小数点以下の小さい数を扱うので、%は付けてはいけません。落下中落ちる速さは少しづつ増えていくので、WHILE~WEND内(←これ重要)でBの値を少しづつ増やしていけば良いでしょう。 (前略) WHILE 1  (中略)  B=B+0.05 '落ちる速さが増える  SX=SX+X 'X座標更新  SY=MIN(SX-Y+K,200) '落ちていく。 WEND
0そうだね
未プレイ
返信[50]
親投稿
誤字 誤 SY=MIN(SX-Y+K,200) 正 SY=MIN(SX-Y+B,200) 加速度さえ出来てしまえば、ジャンプは簡単に出来ます。 WHILE~WENDの中で(←ここ大事)ボタンが押されたかを判定して、押されたらBの値をマイナスにすれば良いのです。 WHILE 1  WAIT 'ループ遅延  A%=BUTTON(2) 'ボタンを取得  (中略)   IF (A% AND 16)==16 THEN   'Aボタンが押されたなら。   B=-3 'ジャンプ(ジャンプ力3)  ENDIF WEND ただし、ジャンプ中に何度もジャンプ出来てしまうので、気になるなら解決方法を解説しますよ。
1そうだね
未プレイ
返信[51]
親投稿
はる HARUHI-0913
前から思っていたんですが、 クレーンさんのプログラムの" "はエラーになります。 なので、" "を" "に置き換えて読むといいですよ。 (というかもう置き換えて読んでいますね)
0そうだね
プレイ済み
返信[52]
親投稿
ありがとうございます
0そうだね
プレイ済み
返信[53]
親投稿
☺️
1そうだね
プレイ済み
返信[54]
親投稿
はる HARUHI-0913
☺️ 上のコメントの"一様"は"一応"ですよね? 前に自分も同じ間違えをしたことがあります。
0そうだね
プレイ済み
返信[55]
親投稿
←正直違いが分からない人 そうそう。加速度と説明しましたが、 加速度はB=B+0.05の部分だけで変数B自体はただの速度なんですよね。 ジャンプのサンプル作ってみました。 公開キー[EKDEVK3V]
0そうだね
未プレイ
返信[56]
親投稿
なんかできない・・・・
0そうだね
プレイ済み
返信[57]
親投稿
0そうだね
プレイ済み
返信[58]
親投稿
B%=BUTTON(2)はWHILE~WENDの中に入れてください。(超重要) あとWHILE直後にWAITもしくはVSYNKを入れることをおすすめします。
0そうだね
未プレイ
返信[59]
親投稿
はる HARUHI-0913
ブラッドさん 全角か半角かの違いです。 プチコンでは全角文字はエラーになります。
0そうだね
プレイ済み
返信[60]
親投稿
はる HARUHI-0913
みならいプログラマーさん ACLS PRINT "ダイス WHILE 1 B=BUTTON(2) IF B AND #A THEN A%=RND(5)+1 PRINT A% ENDIF WEND というようにしたらいいと思います。 貴方のプログラムをなるべく崩さずに書きました。
1そうだね
プレイ済み
返信[61]
親投稿
プチコンに全角文字や半角文字の区別があったことに驚きです。
0そうだね
未プレイ