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

アバター
ナルミンチョ ◆CMMCJeR8nSC5
2017/12/9 14:52
協力
エミュレータで公開してもいい作品を募集
プチコン3号のエミュレータを製作中です。Webで動作します。まだ、構文解析の処理を書いていますが、動くようになったら、作った作品を共有できるシステムを作りたいと思います。
そこで、公開してもいいよって人がいたら、ここに公開キーを書いてください。試験段階から公開します。
ただし、プチコン3号自体の著作権から標準のスプライト画像BG画像一部のフォントは使えません。ジャイロとか、裸眼立体視とかは無理です。
(投稿した画像は、はめ込み合成)

コメント

アバター
オワたず 2017/12/10 0:00 ◆w7BXxYlkW2NJ
タイピングゲーム「寿司団」
公開キー:TXNY23A4

タイピングゲームです。
アバター
とあるどっかの管理人 2017/12/11 15:29 ◆axVhpqVaW2la
他人のをピックアップになってしまいますが[A2EECKNV]


リズミカルバッティング。
アバター
ナルミンチョ 2017/12/14 19:55 ◆CMMCJeR8nSC5
公開キーを書いてくれてありがとうございます。
書き忘れていましたが、TALK命令は再現できないので、はるさんのシャトルランは音声を読み上げることができません。
アバター
はる 2017/12/14 20:09 ◆75Vh4SY8TdKS
やはりそうですか……
TALK無しのものを作ってきます。
アバター
はる 2017/12/14 20:24 ◆75Vh4SY8TdKS
公開しました。
公開キー【KY5B42D】
アバター
ナルミンチョ 2017/12/14 21:18 ◆CMMCJeR8nSC5
別にTALK命令があっても無視されるだけなんですけどね。
(エミュレータでは使えませんと注意は出る)
アバター
はる 2017/12/14 22:30 ◆75Vh4SY8TdKS
そうなんですね。
アバター
D.K. 2017/12/16 19:20 ◆9jNmxurIj.nG
4DV314X3
アバター
くろんぬ 2017/12/17 13:44 ◆3pk4HjoDFbtn
電卓【V34NNPQP】
古い作品でプログラムに見苦しい所もありますが、
良ければどうぞ。
アバター
はる 2017/12/17 15:55 ◆75Vh4SY8TdKS
電卓
公開キー【LX74Q3KJ】
無駄に機能が多い電卓です。

電子書籍
公開キー【PRELD】
青空文庫の電子書籍を読み込むプログラムです。
まあ、ふりがなをふること位しかできませんが。
アバター
ふじけん 2017/12/17 22:33 ◆RYeSC8hWsRHW
アバター
はる 2017/12/18 7:08 ◆75Vh4SY8TdKS
何故か上のコメントの説明文が消えていたようです。
すいません。
アバター
いぶき 2018/1/4 16:26 ◆IVStLI2uU5F7
トピックの内容とは関係なくなってしまうかもしれないですが、
エミュレーターはどのように実装しているのでしょうか?JSで頑張っている感じですか?
興味が湧いたのと応援したい気持ちになったので書き込ませていただきました。
また、TALKはGoogleなどの読み上げAPIを使うという方法を思いついたので提案します。

長文失礼しました
アバター
ナルミンチョ 2018/1/5 22:22 ◆CMMCJeR8nSC5
エミュレータの実装方法は今のところ、
エディタ等のUIとSmieBASICからJSへのコンパイルをElmで書き、
コンパイルしたJSをscriptタグを生成して埋め込む感じですね。
他に外部のものは使わないですね。
実行ではJSの機能を使っていきます。表示にはCanvasを使います。

また、対応ブラウザはChromeとFirefoxの最新版のみです。

TALK命令も他のAPIを使えばいけそうですね。TALK命令実装の優先順位は低いですけど。ジャイロもやっぱりできるみたいですね。
アバター
ナルミンチョ 2018/1/5 22:24 ◆CMMCJeR8nSC5

SmileBASICをJSに変換するにあったって、
基本的に命令、関数は1対1対応ですね。全体をジェネレーター関数にしてVSYNCとWAITをyieldに置き換えてJSのコードから抜けてブラウザが描画をして、1フレーム過ぎたら、setTimeoutで途中から実行します。
ただ、WHILE 1:WENDのようなVSYNC無しで1フレーム以上過ぎてしまうと、ブラウザがJSの実行に集中してフリーズしてしまいますけどね。いい対策方法あるんですかね?
入力がこんな感じなら
WHILE TRUE
X=X+1
PRINT X
VSYNC
WEND
出力はこんな感じ
"use strict";
const PRINT = (x) => {
//PRINT命令の実装 ↓は仮
console.log(x);
};
function* outputProgram() {
let X = 0;
while(true) {
X = X + 1;
PRINT(X);
yield;
}
}

const main = () => {
const prg = outputProgram();
const frame = () => {
prg.next();
setTimeout(frame, 16);
};
return frame;
};

main()();
どういう方法が良いんだろうかと悩みます。Webで本格的なアプリを作るのが初めてなので。良い方法が思いついたら教えてください。
アバター
はる 2018/1/17 22:33 ◆75Vh4SY8TdKS
自分もJavaScriptはやっていますが、
自分用のブックマークレットしか作っていないので、
そういう大きなプログラムはとてもすごいと思います。
(自分はWayback MachineでWebアーカイブを観るブックマークレットや、
 ログインせずにniconicoを視聴するブックマークレットを作っています。)
アバター
はる 2018/1/29 19:22 ◆75Vh4SY8TdKS
とあるどっかの管理人さんの紹介した
"リズミカルバッティング"は、
moiさんが作った作品のようです。
アバター
ナルミンチョ 2018/2/8 16:37 ◆CMMCJeR8nSC5
Smile BASICの構文解析が難しい。
まだ、PRINT"文字列"と入力したら色がつくくらいしかできませんが、コードはここにあります。
https://github.com/narumincho/SmileBasicPlus

コメントを書く

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

- WEB PATIO -