(投稿前に、内容をプレビューして確認できます)

質問です

  • まっちゃん
  • 2025/01/21 (Tue) 15:46:09
オンライン版には時刻などのシステム命令が使えないのでしょうか?

タイムスタンプ

  • まっちゃん
  • 2025/01/10 (Fri) 09:09:33
チャットの送信した時間のタイムスタンプをつけるにはどのようにしたら良いですか?

シューティングゲーム 質問5

  • YGN
  • 2024/12/25 (Wed) 15:40:03
何度も質問すみません!!

ボタンを押したら弾幕系シューティングゲームが始まるようにしたいのですが、弾を打って来る所まではいいのですが、Zボタンを押し攻撃しようとした時に、
「アイリスオブジェクトが作られていません(”作る”)」と出てきてエラーになってしまいます。
エラーにならずにこちらから攻撃をするにはどうしたらいいでしょうか?
ちなみにプログラムの「はじめ」というところを消すと、上手くプログラムが行くようになります。

//////////////////////////////////////////////////////
///// はじめ /////
年越しそば=タートル! 作る ペンなし 0 120 位置。
年越しそば! "rogo (1).png" 変身する。
ボタン1=ボタン!"PRESS START BUTTON" 作る。
ボタン1!30 文字サイズ。
ボタン1!255 128 255 塗る。
ボタン1!-175 -110 位置。
ボタン1!350 60 大きさ。
ボタン1:動作=「ボタン1!消える。 ////////////////////////////////////////////////////////////////////////////////////////////////////////// ///// 画面 /////
釜玉明太うどん=タートル! 
作る ペンなし 0 0 位置。
釜玉明太うどん!8 拡大する。
釜玉明太うどん! "Wi9Q9GnFxvsRRoE1733024976 (1).png" 変身する。
釜玉明太うどん:種別=”中立”。 ////////////////////////////////////////////////////////////////////////////////////////////////////////// ///// 自機 /////
アイリス=タートル!作る。
アイリス! 90 左回り ペンなし 0 -200 位置。
アイリス! "kiPdHxgJlivrSWH1733027103 (1).png" 変身する。
時計=タイマー!作る。
時計!100秒 時間 0.1秒 間隔。
時計!「アイリス!(マウス!横の位置?) (マウス!縦の位置?) 位置。」実行。   
//
アイリス:衝突=「|相手|「(相手:種別) == ”敵”」!なら「自分!消える。」実行。」。   
// アイリス:発射=「タイマー!作る「自分!30 歩く」実行」。 発射=ボタン!"発射" "Z" 作る -450 -200 位置 100 45 大きさ。
発射! 消える。
発射:動作=[アイリス!作る 55 歩く "MRV1NAXyUHDJGvS1733039394 (1).png" 変身する 発射]。 ////////////////////////////////////////////////////////////////////////////////////////////////////////// ///// 敵 /////
蒼き刹那=タートル! 作る ペンなし  0 1050 位置。
蒼き刹那!"QubSn2PNw5RLj6B1733023759 (1).png" 変身する。
時計=タイマー!作る 0.1秒 間隔 2秒 時間。
時計!「蒼き刹那0 -40 動する」実行。
蒼き刹那! 右回り 90度 100歩 歩く。 蒼き刹那:種別=”敵”。 ////////////////////////////////////////////////////////////////////////////////////////////////////////// ///// 弾幕 ///// ///////////
[攻撃1弾]
敵0=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵2=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵3=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵4=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵5=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵6=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵7=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵8=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵9=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵10=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵11=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵12=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵13=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵14=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵15=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵16=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵17=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵18=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵19=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵20=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。
敵21=タートル!作る "1733039882 (1).png" 変身する ペンなし 90 右回り 0 1050 位置。

時計=タイマー!作る 0.1秒 間隔  2秒 時間。 時計!「敵0!0 -40 移動する」実行。
時計!10 回数「敵0!0 0 移動する」実行。
時計!25 回数「敵0!-15 -15 移動する」実行。 敵0:種別=”敵”。
     
//

時計2=タイマー!作る 0.1秒 間隔  2秒 時間。
時計2!「敵2!0 -40 移動する」実行。
時計2!10 回数「敵2!0 0 移動する」実行。
時計2!25 回数「敵2!15 -15 移動する」実行。
敵2:種別=”敵”。      

//

時計3=タイマー!作る 0.1秒 間隔  2秒 時間。
時計3!「敵3!0 -40 移動する」実行。
時計3!10 回数「敵3!0 0 移動する」実行。
時計3!25 回数「敵3!-10 -30 移動する」実行。
敵3:種別=”敵”。
     
//

時計4=タイマー!作る 0.1秒 間隔  2秒 時間。
時計4!「敵4!0 -40 移動する」実行。
時計4!10 回数「敵4!0 0 移動する」実行。
時計4!25 回数「敵4! 10 -30 移動する」実行。
敵4:種別=”敵”。      

//

時計5=タイマー!作る 0.1秒 間隔  2秒 時間。
時計5!「敵5!0 -40 移動する」実行。
時計5!10 回数「敵5!0 0 移動する」実行。
時計5!25 回数「敵5! 0 -30 移動する」実行。
敵5:種別=”敵”。      

//

時計6=タイマー!作る 0.1秒 間隔  2秒 時間。
時計6!「敵6!0 -40 移動する」実行。
時計6!10 回数「敵6!0 0 移動する」実行。
時計6!25 回数「敵6! -20 -25 移動する」実行。
敵6:種別=”敵”。      

//

時計7=タイマー!作る 0.1秒 間隔  2秒 時間。
時計7!「敵7!0 -40 移動する」実行。
時計7!10 回数「敵7!0 0 移動する」実行。
時計7!25 回数「敵7! 20 -25 移動する」実行。
敵7:種別=”敵”。      

//

時計8=タイマー!作る 0.1秒 間隔  2秒 時間。
時計8!「敵8!0 -40 移動する」実行。
時計8!10 回数「敵8!0 0 移動する」実行。
時計8!30 回数「敵8!10 -20 移動する」実行。
敵8:種別=”敵”。      

//

時計9=タイマー!作る 0.1秒 間隔  2秒 時間。
時計9!「敵9!0 -40 移動する」実行。
時計9!10 回数「敵9!0 0 移動する」実行。
時計9!30 回数「敵9!-10 -20 移動する」実行。
敵9:種別=”敵”。      

//

時計10=タイマー!作る 0.1秒 間隔  2秒 時間。
時計10!「敵10!0 -40 移動する」実行。
時計10!10 回数「敵10!0 0 移動する」実行。
時計10!30 回数「敵10!-4 -23 移動する」実行。
敵10:種別=”敵”。      

//

時計11=タイマー!作る 0.1秒 間隔  2秒 時間。
時計11!「敵11!0 -40 移動する」実行。
時計11!10 回数「敵11!0 0 移動する」実行。
時計11!30 回数「敵11!4 -23 移動する」実行。
敵11:種別=”敵”。      

//

時計12=タイマー!作る 0.1秒 間隔  2秒 時間。
時計12!「敵12!0 -40 移動する」実行。
時計12!10 回数「敵12!0 0 移動する」実行。
時計12!30 回数「敵12!-25 -20 移動する」実行。
敵12:種別=”敵”。      

//

時計13=タイマー!作る 0.1秒 間隔  2秒 時間。
時計13!「敵13!0 -40 移動する」実行。
時計13!10 回数「敵13!0 0 移動する」実行。
時計13!30 回数「敵13!25 -20 移動する」実行。
敵13:種別=”敵”。      

//

時計14=タイマー!作る 0.1秒 間隔  2秒 時間。
時計14!「敵14!0 -40 移動する」実行。
時計14!10 回数「敵14!0 0 移動する」実行。
時計14!40 回数「敵14! -10 -10 移動する」実行。
敵14:種別=”敵”。      

//

時計15=タイマー!作る 0.1秒 間隔  2秒 時間。
時計15!「敵15!0 -40 移動する」実行。
時計15!10 回数「敵15!0 0 移動する」実行。
時計15!40 回数「敵15! 10 -10 移動する」実行。
敵15:種別=”敵”。      

//

時計16=タイマー!作る 0.1秒 間隔  2秒 時間。
時計16!「敵16!0 -40 移動する」実行。
時計16!10 回数「敵16!0 0 移動する」実行。
時計16!70 回数「敵16! -5 -10 移動する」実行。
敵16:種別=”敵”。      

//

時計17=タイマー!作る 0.1秒 間隔  2秒 時間。
時計17!「敵17!0 -40 移動する」実行。
時計17!10 回数「敵17!0 0 移動する」実行。
時計17!70 回数「敵17! 5 -10 移動する」実行。
敵17:種別=”敵”。      

//

時計18=タイマー!作る 0.1秒 間隔  2秒 時間。
時計18!「敵18!0 -40 移動する」実行。
時計18!10 回数「敵18!0 0 移動する」実行。
時計18!70 回数「敵18! 0 -10 移動する」実行。
敵18:種別=”敵”。      

//

時計19=タイマー!作る 0.1秒 間隔  2秒 時間。
時計19!「敵19!0 -40 移動する」実行。
時計19!10 回数「敵19!0 0 移動する」実行。
時計19!70 回数「敵19! 0 -18 移動する」実行。
敵19:種別=”敵”。    
  
//

時計20=タイマー!作る 0.1秒 間隔  2秒 時間。
時計20!「敵20!0 -40 移動する」実行。
時計20!10 回数「敵20!0 0 移動する」実行。
時計20!70 回数「敵20! -8 -3 移動する」実行。
敵20:種別=”敵”。      

//

時計21=タイマー!作る 0.1秒 間隔  2秒 時間。
時計21!「敵21!0 -40 移動する」実行。
時計21!10 回数「敵21!0 0 移動する」実行。
時計21!70 回数「敵21! 8 -3 移動する」実行。
敵21:種別=”敵”。

/////////////

時計22=タイマー!作る 0.3秒 間隔 3秒 時間。
時計22!12 回数「蒼き刹那!0 0 移動する」実行。
時計22!「蒼き刹那!-15 0 移動する」実行。

////////////////////////////////////////////////////////////////////////////////////////////////////////// ///// 周り /////
釜揚げうどん=タートル! 作る ペンなし -470 0 位置。
釜揚げうどん! "2AVbyIYbE2V7flb1733022119 (1).png" 変身する。   
//
釜玉うどん=タートル! 作る ペンなし 470 0 位置。
釜玉うどん! "gJL61ShsNbdaPn91733022043 (1).png" 変身する。 ////////////////////////////////////////////////////////////////////////////////////////////////////////// ///// 壁 /////
かめた=タートル! 作る。
かめた!(青)線の色 10 線の太さ。
かめた!600 歩く 90 右回り 800 歩く 90 右回り 600 歩く 90 右回り 870 歩く。
かめた!図形を作る -300 400 位置。
かめた! 消える。
かめた:種別=”中立”。
」。

シューティングゲーム 質問2

  • YGN
  • 2024/12/01 (Sun) 14:16:54
2つ目の質問です。
敵の体力を作りたいのですが、作ることは可能でしょうか?
自分(亀)が出した球が当たると体力が減っていくようにしたいです。そして、それを表示するゲージも作りたいです。
どなかか教えてください。

Re: シューティングゲーム 質問2

  • YGN
  • 2024/12/25 (Wed) 15:21:16
何となくでやってみたんですけど、全然形にならなくて…
体力の増減と体力に応じた消滅処理はどうやったらいいですか?

Re: シューティングゲーム 質問2

  • きつね
  • 2024/12/04 (Wed) 13:04:25
体力に相当する変数(属性)を用意し、敵の当たり判定をしていく中で、その体力の増減と体力に応じた消滅処理を行えばいいかと思います。

ゲージも、この変数に応じて表示を変えていけばできるような気がします。

簡単に実現するなら、■のテキストで、まずは体力を表示するところから始めてみてはどうでしょう?
体力が5なら■■■■■、体力が2なら■■みたいにしたら、当たり判定時に更新する形である程度形になる気がします。

スクロール その2

  • まっちゃん
  • 2024/12/13 (Fri) 08:52:30
お世話になります。
以前の投稿への返信ありがとうございます。
使用しているものはオンラインドリトルです。
メッセージを受信したら受け取ることは出来るのですが、受信リスト枠の下に入ってしまい手動でクリックしないと下のものが表示できません。受信リストが枠いっぱいになったら自動で上にスクロールさせるにはどのようなプログラムにすれば良いでしょうか❓
不勉強ですみません。ご教示ください。

シューティングゲーム 質問4

  • YGN
  • 2024/12/01 (Sun) 18:10:33
○○秒後に敵から発射させるプログラムってできますか?
時間差で発射されるようなプログラムを作りたいです。

Re: シューティングゲーム 質問4

  • きつね
  • 2024/12/04 (Wed) 13:23:14
これも状況により、適切な実現方法かわかりますが、例だけ一つ紹介します。

タイマーは間隔を指定すると、生成されてからその時間が経過したときに、指示された内容を実行します。
これを利用して、タイマーの処理の中に、弾を生成したり弾を動かすためのタイマーを生成すれば、●秒後に動き出す処理は可能になります。
ただ、数が多くなったりする場合などに工夫が必要になりますが、考えてみると面白いと思います。



時計=タイマー!作る 5 間隔 1 回数。
時計!「

   時計2=タイマー!作る 0.5 間隔 10 回数。
   時計2!「ラベル!"*"作る」実行。
」実行。

シューティングゲーム 質問3

  • YGN
  • 2024/12/01 (Sun) 14:20:26
3つ目の質問です。
敵から発射される弾(攻撃)が、自分(亀)のいる方向に半円のように飛んでいくプログラムを作りたいです。
例えるならば、東方Projectの弾幕ゲームのような攻撃を作りたいです。
どなたか教えてください!!

Re: シューティングゲーム 質問3

  • きつね
  • 2024/12/04 (Wed) 13:14:01
これは、いろいろな方法が考えられますね。
「ゲーム、追尾」とか「2点間の距離 角度 座標 求め方」とかでGoogle先生に質問してみると、ヒントが出てくるかもしれません。

たとえば、タイマーを使って移動を実現しているなら、
1.玉と自分の2つの座標からそこから直線の式をもとめる。
2.フレーム時間(次のタイマー処理が実行されるまでの時間)だと、その直線上のどこにあたるかを計算する。
3.その座標に弾を移動する
とかで、簡易的に実現できるんじゃないかなと思います。



シューティングゲーム 質問1

  • YGN
  • 2024/12/01 (Sun) 14:12:56
マリオの床のように、亀が作った床から下に行かない(進まない)プログラムが作りたいです。
僕が作りたいのは壁なので、そこから進まないようなプログラムが作りたいです。
どなたか教えてください。

Re: シューティングゲーム 質問1

  • きつね
  • 2024/12/04 (Wed) 12:58:45
ボタンを押したときの動作など、タートルの操作の命令を行う中で、タートルの位置に応じた条件分岐を行えば実現できると思いますよ。(一定より下がったら動かないようにする)

タートルの命令の中には、自分の座標を取得する命令があります。
https://dolittle.eplang.jp/ref_graphics33

スクロール

  • まっちゃん
  • 2024/11/05 (Tue) 14:24:52
不勉強ですみません。
チャットの受信画面を自動てスクロールさせるにはどのようにしたらどなたかご教授ください。

Re: スクロール

  • きつね
  • 2024/11/07 (Thu) 13:21:41
スクロールということはリストオブジェクトなどでしょうか?
インストール版での記憶ですが、「書く」の命令を実行したときは、最新の追加内容が表示されるように、自動的にスクロールされていたように思います。


たとえば、以下のプログラムだと、最新の追加内容が表示されるように自動的にスクロールされていました。



エリア1=リスト!作る。
タイマー!作る 1秒 間隔 「|x|
エリア1!(x)書く。
」実行。


サーバー接続について

  • 2024/09/26 (Thu) 21:49:06
ドリトルでチャットを作っている者です。
サーバー! 接続。 のIPを指定する部分は、""で囲んだ数字でないと行けないのでしょうか?
例えば 

サーバーIP=フィールド! 作る。
サーバー! (サーバーIP! 読む) 接続。

といったプログラムでは接続できないでしょうか?
言葉足らずで申し訳ございませんがどなたかご教授いただけませんでしょうか?

Re: サーバー接続について

  • omura
  • 2024/09/26 (Thu) 22:31:09
あ さんの質問にお答えします。

結論から言いますと、「サーバ! *** 接続。」の***部分には”IPアドレスを示す文字列の情報”が設定されればOKです。
したがって、あ さんが記述してくれた礼の通り、「サーバー! (サーバーIP! 読む) 接続。」という書き方でも、接続は可能です。


ドリトルでは、文字列の前後に””をつけることで、囲まれた部分が文字列の情報を示す情報であることをプログラム上で明示することができます。

あ さんはフィールドの部品として「サーバーIP」を作っています。「サーバーIP! 読む」という命令は、フィールド内に記述された文字列を取り出す命令です。
この命令を実行した結果を「サーバ! *** 接続。」の***部分にいれていますので、「サーバー! (サーバーIP! 読む) 接続。」でも問題なく接続処理は実現できます。


ただし、実際にフィールドに入力した文字列を使ってIPアドレスを指定しようとする際には工夫が必要です。

もしも、記載いただいているプログラムを実行しているのに、フィールドに入力したIPアドレスのサーバに接続できないということに悩んでいるならば、このプログラムがいつ実行されるかを考えてみてください。

プログラムの最初に記載していたとすると、実行ボタンを押した瞬間に、このプログラムは実行されます。(しかも一回だけ実行するだけになる)

ほとんどの場合、人間の文字入力の動作はコンピュータに比べてとても遅いですから、あ さんがIPアドレスをフィールドの中に実行する前に、このプログラムは実行完了してしまいます。
そうなると、正しいIPアドレスが「サーバ!***接続」の***部分に渡されないことになるので、接続処理は失敗してしまうわけです。

この対応方法はいくつかありますが、考え方としては、「フィールドへのIPアドレスの入力が完了したら接続処理を実行するようにする」というのがわかりやすいと思います。


たとえば、以下のように、接続ボタンを用意し、ボタンを押したタイミングで接続処理を行うようにすれば、フィールドにIPアドレスを入力した後に、サーバの接続処理を行うこともできるようになります。
参考にしてみてください。

サーバIP=フィールド! 作る。
接続ボタン=ボタン!”接続”作る。
接続ボタン:動作=「
     サーバ!(サーバIP!読む)接続。
     サーバ!”msg” "テスト文字列です" 書く。
」。