コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
takumi ◆Ce3Q40uXWJjn
2018/9/4 17:41
協力
DEF命令募集中!!
今、初心者向け命令を作っています。
そこに追加してほしいものをプログラムと一緒に募集しています!
誰でも良いのでお願いします。

なお、DEFで始まるものをお願いします!!

コメント

アバター
takumi 2018/9/4 19:00 ◆Ce3Q40uXWJjn
commonでもオッケーです!!
アバター
こういち 2018/9/4 19:08 ◆ou0jbJnEJ0Kb
DEF PFILL X,Y,W,H,C
 VAR I,J
 VAR MX=49-DISPLAY()*10/WIDTH*8
 VAR MY=29/WIDTH*8
 FOR I=1 TO W
  FOR J=1 TO H
   LOCATE MIN(MAX(X+I,0),MX),MIN(MAX(Y+J,0),MY)
   PRINT C;
  NEXT J
 NEXT I
END
こんな感じでいいですか?
アバター
はる 2018/9/4 19:16 ◆75Vh4SY8TdKS
1年以上前に作ったものですが。
公開キー【X33NN4NS】

他にも、
GPUTCHRのBIUバージョン
公開キー【QKSPPE1D】
アバター
はる 2018/9/4 19:26 ◆75Vh4SY8TdKS
RGB関数の他の色空間バージョン
アバター
はる 2018/9/4 19:29 ◆75Vh4SY8TdKS
infとnanを求める関数
アバター
takumi 2018/9/4 20:40 ◆Ce3Q40uXWJjn
皆さん、ありがとうございます!
アバター
こういち 2018/9/4 21:05 ◆ou0jbJnEJ0Kb
よくあるやつ。
DEF DIST(X0,Y0,X1,X1)
 RETURN SQR((X1-X0)*(X1-X0)+(Y1-Y0)*(Y1-Y0))
END 
アバター
こういち 2018/9/4 21:37 ◆ou0jbJnEJ0Kb
DATファイルやテキストファイルを数値配列に変換するでふ。
アバター
あっつん 2018/9/4 23:21 ◆3jMjYn7OBsMj
曲の優先度を見て演奏するしないを判別
def sndplay track% bgmnum%
if(bgmchk(track%==false)//(sndp%[bgmnum%-128]>=sndnow%[track%])then
bgmplay track%,bgmnum%,127
sndnow%[track%]=sndp%[bgmnum%-128]
endif
end

なお、
sndp%[]= bgnsetdで定義したユーザー定義曲番号ごとに優先度をあらかじめ割り振った変数(番号が若いほど優先度は低い)
sndnow%[]はそのまんま、今なっている音の優先度を保持する変数
bgmnum%は音を鳴らしたいユーザー定義曲番号
track%は音を鳴らしたいトラック
アバター
うょリウム(元 SPDX) 2018/9/4 23:51 ◆hJ0Srd29fS.I
初心者向けに見えないのがチラホラ…
別に批判じゃないんですけど。

こんなのでよければ。
DEF APUSH
REPEAT
VSYNC
UNTLE BUTTON(2)==16

要するにAボタン押すまで待機です。
最後の「==16」をはずすと
何でも良くなりますし、
16を32にするとBボタンとか。

DEF TCH
REPEAT
VSYNC
TOUCH OUT TM,TX,TY
UNTIL TM==1

今度はタッチすると進む です。
TM==1なのでタッチした瞬間しか
受け付けず、
あらかじめタッチしていても
離してタッチするまで進みません。
最後の「==1」を消すと
あらかじめタッチも受け付けます。
アバター
うょリウム(元 SPDX) 2018/9/4 23:56 ◆hJ0Srd29fS.I
もしや、僕が言ったのは
「初心者向け」ですらなく、
「超初心者向け」かもしれない…。

まぁ…上級者でも…使える…よね?
アバター
takumi 2018/9/5 19:41 ◆Ce3Q40uXWJjn
はい、大丈夫です!!
まとめたものをWikiに公開してもよろしいですか?

また、
DEF PFILL X,Y,W,H,C
 VAR I,J
 VAR MX=49-DISPLAY()*10/WIDTH*8
 VAR MY=29/WIDTH*8
 FOR I=1 TO W
  FOR J=1 TO H
   LOCATE MIN(MAX(X+I,0),MX),MIN(MAX(Y+J,0),MY)
   PRINT C;
  NEXT J
 NEXT I
END
はどういう風にできるのでしょうか?
教えてください!!お願いします!!
アバター
こういち 2018/9/5 21:02 ◆ou0jbJnEJ0Kb
PFILL
画面の一部を特定の文字で塗りつぶす。
例えば
PFILL 29,0,28,29," "
とすれば、画面の右半分だけCLSできます。
アバター
うょリウム(元 SPDX) 2018/9/5 23:59 ◆hJ0Srd29fS.I
””でもOKですか?
” ”じゃないとダメな気がしますが…
一番下の行に文字を置くと改行とか
コンソールって意外に面倒事が多い。

wikiに公開?
僕のは誰でも思いつきそうなヤツです
し、全然構いませんよー。
アバター
おちゃめ 2018/9/5 23:59 ◆jH1opV6FnGyx
私が作ってきた自作関数の代表作といえばPSTR$()、RVAL()、SUFFIX()などですが、初心者向けのものをチョイスしてみました。

まずは、スライドパッドを十字ボタン代わりに使えるDSTICK()関数です。
十字ボタンと同じ値(右ならば8)を返す関数です。
B=BUTTON()という式をB=DSTICK()に置き換えれば、簡単に使うことができます。B=BUTTON() OR DSTICK()とすれば十字ボタンとスライドパッドのどちらでも操作が可能になります。

スライドパッドを十字ボタンの代わりに使えるようにするプログラムというのはよく見かけますが、よく使われるSTICK OUTのX、Yの値から単純に判断するものと比べて角度で判断しているため上下左右入力と斜め入力で入力のしやすさに差がないというメリットがあります。
アバター
おちゃめ 2018/9/6 0:04 ◆jH1opV6FnGyx
次にCHKNAME()関数です。
これはセーブやロードでファイル名を入力する際にそのファイル名が使えるかどうかを事前に判断が可能になります。(使えないファイル名を入力した場合はエラーでプログラムが終了してしまうため事前に使えるかどうかが分かるこの自作関数は非常に便利)
使えれば1、使えなければ0を返します。(どういう意味かは、サンプルプログラムを実際に入力すれば分かります)

他にも初心者向けの自作関数は多数作っています。
アバター
takumi 2018/9/6 20:06 ◆Ce3Q40uXWJjn
ありがとうございます!!
アバター
はる 2018/9/6 21:24 ◆75Vh4SY8TdKS
アバター
げしゅとるた崩壊 2018/9/8 19:26 ◆2rnOb9CZ1fL6
'JavaScriptのString#formatやJavaのString.splitのように文字列を決まった文字列で分割する
'@#PARAM src delimで分割する文字列
'@#PARAM delim 区切り文字
'@#RETURN(k$[]) 区切られた文字列の集合
def string_split(src,delim)var i,j$,k$[0]:for i=0 to len(src)-1if mid$(src,i,len(delim))==delim then push k$,j$j$=""else j$=j$+src[i]
next:return k$end

'@#LINK{RND}の範囲指定版。
'@#PARAM min 最小値(含まれる)
'@#PARAM max 最大値(含まれる)
'@#RETURN 範囲の中での乱数
def math_ranged_random(min,max)return rnd(max-min)+min:end

'独り言: いい加減ブロック機能を実装しませんか・・・
アバター
みどり 2018/9/11 6:49 ◆UuFOYlGswjhS
公開キー「X37XEN4V」の中のDEF_WNMAPを入れて欲しいです。募集期間は分かりませんが。
書式
WNMAP "何処のラベルを読み込みたいか"
@MAP_96を読み込む場合
WNMAP "_96"
と書きます。

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -