X



一人で完成まで頑張るの寂しいからかまって [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
垢版 |
2017/03/08(水) 22:06:31.71ID:OX0NO28I
・ウディタ製
・RPG
・ぼくがたのしいとおもったしすてむ
・ぼくがたのしいとおもったばらんす
・基本システム流用できるところは流用して楽していく
・エタらないように頑張る
073660 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/11/10(日) 21:30:10.11ID:E7AyrBA7
>>733
プログラミングと言うものを
始めた頃からずっと
数か月周期のやる気の波が有って
引き潮の間は放置して
他の事に集中するのだけど
今回はスレ乗っ取りの手前も有って
2年くらい持続させてます
ちょと息切れしててるね

「アスペ=ゲーム作れる人 定型=作れない人」スレ
http://peace.5ch.net/test/read.cgi/gamedev/1409165402/
073960 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/11/12(火) 22:12:56.27ID:RVrN6ozE
プラズマとボスの当たり判定を作った

ビームとプラズマのZ軸の二分探索に
バグが隠れてたのがHPが多いボスで
明らかになったので直しとく
074160 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/11/12(火) 22:34:30.98ID:RVrN6ozE
>>738
ツクール2003はGUIで1行ずつ組み立てる
専用のスクリプト言語を使う
アセンブラライク x BASICな感じ

Cより低レベルな処理をしている様な気分だけど
スクリプトなので高級言語と言う感覚
0742名前は開発中のものです。
垢版 |
2019/11/13(水) 20:56:25.83ID:8c1rupru
さすがにBASICって言うならウディタくらいの自由度がないと無理がないかw
ExcelのVBAで無理やりテトリス作ってるのが近いと思う
074360 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/11/13(水) 23:32:07.40ID:ji5Jy4vZ
>>742
8/16bit時代のBASICよりは自由度に溢れてるぞ
ニコ動はオワコンかも知れんが
ニコフェスで職人wとか謎の技術wって
弾幕貼られるのを目指してはいる
まぁ現実は鳴かず飛ばずじゃろう

ブログに日に3人もアクセス有れば燃料として十分だし
モチベの燃費については良い性格してると思う
0744名前は開発中のものです。
垢版 |
2019/11/13(水) 23:42:22.63ID:8c1rupru
俺も2003で謎技術やってたからわかるw
DBの存在や変数操作のやりやすさ、何より同じことやっても軽いってので俺はウディタに移行したが応援してるぜ!
074660 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/11/15(金) 00:05:52.36ID:O3yIpSQO
自ミサイルとボスの当たり判定を作った

ミサイルに目標のボスのイテレータを追加して
雑魚のイテレータを優先で、目標へ向けて
ロックオン、発射、移動、当たり判定
を実行する処理を追加した
074760 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/11/15(金) 23:03:45.36ID:O3yIpSQO
自ブラスターとボスの当たり判定を作った
ラム衝突のダメージも実装したけど
今のボスは無限遠にいるので
テストは動き回るボスが出来てからにする
074860 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/11/17(日) 03:56:15.47ID:gTLgSfna
>>739
ビームかプラズマを1発だけ撃つと
連続で当たり続けるバグを修正した

二分探索は問題無くて
ポインタの参照外しのミスだった
074960 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/11/22(金) 01:57:32.19ID:4PXBWt8O
ボスのパーツのスケルトンを作った
変数とイベントの領域を確保したので
肉付けして行く
先を見据えて予約して行かないと
後で修整効かなくなって詰む

激しく単純労働の上
ツクールの編集機能の弱さに氏ぬ
マウスだけ or キーボードだけで
操作できると良いのだが
ツクールはキーボード見ながら
一本指打法する人向け
075060 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/11/25(月) 07:43:15.30ID:8cUkMcKw
ボスのパーツの処理を実装した
生成、移動、仮の描画、当たり判定
まで作った
今のはキャラ表示無しのパーツなので
適当に雑魚キャラを仮描画して
座標と当たりを確認してる

ボスとパーツの生成座標を即値で無く
視点との角度から求める様にした
脳内で三角比とか計算しないで済む
075160 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/11/27(水) 12:33:57.55ID:DZOH0y96
ボスがレーザー砲を発射できる様にした
砲塔の部位オブジェクトで管理する

フレーム数をカウント・アップして
一定値になったら発射する
砲塔が画面外にいる時は
カウンタを0に戻す
075260 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/11/28(木) 05:33:33.94ID:QgLaEhK3
ボスのミサイル・ポッドを実装した
レーザーと同様に
砲塔の部位オブジェクトで管理する

砲塔が画面外にいる時はカウンタを1
画面内にいる時は2ずつ増やして
一定値になったら発射する
レーザーより間隔を長く取った
075360 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/11/29(金) 03:46:53.44ID:DkdXvi8m
ボスの部位ダメージを実装した
ダメージと破壊のエフェクトも
描画できる様にした

ボスのミサイル・ポッドを
2つに増やした
075460 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/05(木) 06:39:29.77ID:vhbgjkdW
ボスの武器の領域を確保した

ボスの関連イベント一式を予約
変数は種類毎に用意すると
多過ぎるので、全部共有にする
075560 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/13(金) 15:55:14.78ID:fQHc9uWN
ボスの武器の変数関連を一式揃えた
ボス共通の構造体と
それのイテレータ等
075660 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/13(金) 23:02:44.10ID:fQHc9uWN
ボスのロケット・ランチャを実装した
放射状に広がってから
収束しつつホーミングする

「発射」
・半径 = 0
・半径速度 = 200
・Z速度 = 0

「移動」
・半径速度 -= 20
・半径速度 < 0
 ・半径 < 500 なら
  ・半径速度 = 半径速度 * 2 / 3
 ・半径 < 30 なら
  ・半径 = 30
  ・半径速度 = 0
・半径 += 半径速度

ミサイルの個数と角度を
指定して発射する

中心の座標を通常のミサイルと
同様に移動させながら
中心から半径分離れた位置に
ミサイルを複数描画する
075760 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/13(金) 23:04:23.21ID:fQHc9uWN
・Z > 0 なら
 ・Z速度 -= 5
・Z <= 0 なら
 ・Z速度 += 5
・Z速度 < -50 なら
 ・Z速度 = -50
・Z速度 > 110 なら
 ・Z速度 = 110
・Z += Z速度

前方から来る時は
Z速度を遅めにする
一定フレーム追尾後、消滅する
075860 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/14(土) 15:52:24.34ID:G2I+cy/Z
ボス攻撃のスプライトのチラつきを実装した

ボス攻撃のピクチャの最大数を
「ピクチャ数 = Nウェイ攻撃 x ボス最大数」
にすると滅多に使い切れ無いのに
無駄に確保して仕舞うので
「ピクチャ数 = 32」
とか適当に設定して
この中で遣り繰りする

するとピーク時にピクチャが
足り無くなる事が有り得るので
ピクチャを複数のキャラで共有して
フレーム毎に交代で描画する様にした

「描画開始」
・フリッカーN = 1

「描画ループ」
・ピクチャN >= ピクチャMax なら
 ・フリッカーN++
 ・N = (現在フレーム % フリッカーN + 1)
 ・N == フリッカーN なら
  ・描画フラグ = On
 ・違うなら
  ・描画フラグ = Off
 ・ピクチャN %= ピクチャMax
 ・垂直同期待ち
・描画フラグ == On なら 描画
075960 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/14(土) 15:53:42.73ID:G2I+cy/Z
ファミコンの横16ドットのスプライトが
水平に4個を超えて並ぶとチラつくのと
原理的に同じ技術を使ってる
何にも考えて無いとスプライトが
チラつくどころか消えて
見え無い敵が襲って来る事になる
チラつきには文句言わずに感謝すべき
076060 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/14(土) 16:19:58.66ID:G2I+cy/Z
ツクールの場合は
ピクチャ数が最大を超える度に

・ピクチャN %= ピクチャMax
・垂直同期待ち

とするだけでも1フレームの
チラつき表示が出来る

逆に、狙って無いのに
ピクチャが勝手にチラつく時は
ピクチャ番号が被ってるバグを
疑うと良い
076160 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/15(日) 17:55:01.82ID:sv5UVbwj
「夜間着陸」のサブ・ゲームの
スケルトンを用意した
特別なイベント時のみプレイ出来る

大型艦は大気圏内では
現代の旅客機程度の機動力しか無く
無防備なので、夜間に熱光音電波重力
ネット等の全てのステルスを駆使して
着陸する必要が有ると設定した

揚力は、PDS物理学を使って
高次元で折り畳まれた宇宙の
何処か遠くに有る天体の重力を
艦の上方に透過させ、惑星重力と
釣り合いを取って発生させる
地球以外の惑星上も
同様の重力制御で1Gに保たれている

ボスは行き成り大量生産は無理ゲー
なのでネタが降りて来る度に
一つずつ追加します
シナリオの量産は
特別な手法を開発済み
076260 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/18(水) 20:45:05.20ID:EbqUSCJ1
夜間着陸の夜景の描画を作った
取り敢えずランダムに
街の灯りを配置して
前進と上昇下降できる様にした
076360 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/19(木) 23:37:37.28ID:xB7rodAs
夜間着陸の旋回移動を作った

・まず機体をロールで傾けて
 X-Y回転した後
・そのロール角に応じてヨーの
 X-Z回転で進行方向を転回する
・そしてヨーの分だけX移動
076460 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/22(日) 01:20:34.16ID:62atMCRt
座標を実数から整数に変更した
固定小数点を無くしたので
繰り上がりのシンクロによる
プルプル振動が無くなった
076560 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/24(火) 04:37:59.09ID:y0irDSzS
着陸地点とガイド・ビーコンを実装した

着陸の目標地点から複数の四角い枠を
一定の間隔と角度で配置する様にした

線の細い枠の画像を縮小すると
潰れて見えたり消えたりするので
沙羅曼蛇レーザーの時と
同じ仕組みで線を描いた

ローリングによる回転は省いた
076760 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/25(水) 03:29:47.29ID:neaAzoKf
夜間着陸の終了チェックを作った

各終了条件を満たしたら
フラグを立てる
・着陸地点に接近で成功フラグ
・着陸地点を通り過ぎたら
 オーバーラン・フラグ
・地面に衝突したら衝突フラグ

各フラグの処理
・フレーム・カウンタ == 0 なら
 ・対応する効果音を鳴らす
 ・キー入力無効化フラグを立てる
・フレーム・カウンタ >= 20 なら
 ・終了/リトライ/ゲームオーバー
・フレーム・カウンタを
 インクリメントする
076960 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/26(木) 00:02:22.12ID:KYDo60Ky
>>768
ツクール2003にenumは無いし
ポインタの代わりに変数番号の変数とかは有るけど
スイッチ番号の変数も無いからしゃーない
使った事の無い環境について
あんまし意見しない方がいい
077060 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/26(木) 00:43:21.27ID:KYDo60Ky
説明の都合で共通処理の様に書いてるけど
それぞれ別イベントで異なった処理をする
成功なら自動操縦の処理をして着陸させる
オーバーランならメッセージを出して
最初からやり直す
衝突だったら爆発する

>・フレーム・カウンタ >= 20 なら
> ・終了/リトライ/ゲームオーバー

暫定的に20としてるけど
終了は自動操縦が終わってからだし
ゲームオーバーは40位まで爆発させる

書籍の様に完成したコードを
解説してる訳じゃ無く
作りながらの進捗報告と言う体で
進めてるので、弄ってる最中の部分への
意見はしなくてえぇよ

つうかワイがツクール先生で
おまいさんらが生徒だからな
勘違いすると単位やらんぞ
077160 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/26(木) 02:38:40.66ID:KYDo60Ky
墜落後の爆発を作った
恒星系の処理からコピペして
ダメージの部分を取り除いた
爆発中は自機の移動をキャンセル
爆発が止んだらゲームオーバー

未使用のガイドの消去を追加
間違って描画されていたので修正
077260 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/27(金) 05:56:02.73ID:GhGUwzRL
着陸成功後の自動操縦を実装した

着陸地点に到着したら
自動操縦で下記の方向へ
微調整して接地する
・ロール、ピッチ、ヨーを正面
・X,Y座標を着陸地点(Zは停止)

接地直後にピッチを上下して
画面を縦揺れさせる

成功フラグ等は実際には
状態遷移を表す整数になっている
・開始
 ↓
・接近、効果音
 ↓
・自動操縦
 ↓
・画面振動
 ↓
・完了、フェードアウト
077360 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/28(土) 22:32:01.64ID:MSF0br0h
自機のプラズマ球が一つだけ
点滅するバグを修正した

ボスの部位の攻撃が画面に
ゴミとして残るバグを修正した

何方もピクチャ番号の計算が
間違っていただけ
077460 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/29(日) 00:45:19.76ID:ig6nZgh8
ガイドの通過判定を入れた

ガイド・ビーコンを
潜り抜けた時と外した時に
其々の効果音鳴らす様にした

自機に一番近いガイドの
イテレータを保持して置いて
それ限定で当たり判定を
する事で最適化した
077560 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/30(月) 01:58:32.50ID:9MHHNgfE
夜間着陸のマップを作った

20x20サイズのマップを
左上から1タイルずつ舐めて行き
タイルのIDに応じて
500x500の座標範囲に
ビルや道路等の灯りを配置する
全体でX,Z座標が-5000から+5000の
領域に収まる

スタート地点や着陸地点の
タイルIDが有ったら
変数に座標を入れて置く

余った灯りのピクチャは
ランダムに配置する

http://lnl.osdn.jp/images/Space-SSS/blog/2019/12/l/sss-2019-12-30-001.png
077660 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/31(火) 03:45:00.66ID:LnEPoFcy
灯りのマップ配置に道路を追加した
残りは滑走路

街灯りと着陸地点の画像を作った
仮当てしてたものと挿げ替えた
077760 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2019/12/31(火) 06:23:15.81ID:LnEPoFcy
夜間着陸のHUDを作った

ビル街の速度のHUD処理を呼ぶ
最高速度とブーストの設定を弄って
速度メーターをレッドゾーン無しにした

自動接地時に速度を
0まで落とす様にした
077960 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/01/15(水) 08:09:16.23ID:rOvcYbNu
あけおめ、ことよろ

着陸が成功した時と
着地点を通り越してオーバーランした時に
それのメッセージを描画する様にした

墜落時は空の画像にして置いたので
仕様変更で描画する事になったら
画像を差し替えるだけで対応できる
078060 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/01/16(木) 02:51:52.31ID:yJKk7MsJ
街灯りのマップ配置処理に
滑走路の分を追加した

これで夜間着陸は一通り出来た
後はS-IIIのパワーアップを
受け取れる惑星の数だけマップを作る
多分あんまし考えずに
フィーリングで量産できる
078160 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/01/16(木) 04:50:32.70ID:yJKk7MsJ
細かく手を入れた

着地点の直前で艦首を
水平まで持ち上げる様に
ガイド・ビーコンを設定した
Y座標を地面の下から始めて
半径より下に有る時は
半径分の高さに描画する
          |
        |
      |
_ | |
真横から見るとこんな感じ

着地後、ガイドを潜れた数によって
得点とメッセージを表示する様にした
100%:パーフェクト!
80%以上:グレート
50%以上:グッド
10%以上:バッド
0%以上:クレイジー!!
078260 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/01/16(木) 05:06:52.90ID:yJKk7MsJ
去年末は先生ぶってイキって仕舞い大変スマンコ
たまに来るケチを付ける奴と勘違いしますた
三次大戦を前におまいらと和解せよする等した
078360 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/01/17(金) 05:57:28.14ID:PnY//fJ0
https://www.youtube.com/watch?v=a9VBHAsIqlg

「スペースSSS」RPGツクール2003用3DシューティングRPG 進捗動画 #014
夜間着陸のサブ・ゲームが出来ました。
緑のガイド枠を潜り抜けて、戦艦を滑走路に着地させます。
ブログ、Twitter、5chで毎日進捗と技術解説をしているので見に来てね。

制作:某犬犬
Web: http://lnl.osdn.jp/pukiwiki/index.php?works
Twitter: https://twitter.com/schrochan

BGM素材は「サイバーレインフォース」さんの提供です
著作者:Cyber-Rainforce
HP:3104式
URL:http://cyber-rainforce.net/
https://twitter.com/5chan_nel (5ch newer account)
078560 某犬犬 ◆m6HUWv.YwMNd
垢版 |
2020/10/10(土) 13:47:17.77ID:O4TZOpDd
今年は図書館でクエスト量産する予定だったが
この世界情勢なので放置してたスマンコ

ネットで図書館の代用できそうなのだが
その前に2件ほど別プロジェクトを割り込ませる事にした

取りあえず、昔誰かが作った戦車のフリゲをリメイクする
078660 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/10/10(土) 14:21:58.92ID:O4TZOpDd
トリップ違ったな これか?
Linux版ツクールMV用にJavaScriptでプラグイン書いた
スタック管理、構造体、文字列、スプライト等の
個人的便利ライブラリになった

MVはスーファミ時代のアセンブラ風味で
ゲーム職人気分が味わえるので良い

http://lnl.osdn.jp/images/BankerKiller/blog/2020/10/l/bk-2020-10-10-001.png
ミニゲームだから多分そんなに時間かからんじゃろう
078760 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/10/11(日) 08:05:52.37ID:GUOUnJKr
全戦車の座標の最小値と最大値を求めて
最小値が画面の左端、最大値が右端になる様に拡大率%を計算する
キャラがはみ出ない様に、X,Y方向の拡大率の小さい方を優先する

拡大率 = 100 * マップ幅 / (最大値 - 最小値)

最小値と最大値の平均を画面の中央にする

描画X = ((X - 平均X) * 拡大率 / 100) + 画面中央X

スマブラみたいにキャラが接近すると、画面がズームインする
078860 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/10/13(火) 21:44:10.21ID:XF7fjAAi
戦車は直ぐ下に地面が無ければ落下して
地面より下にいるなら、地面の表面に瞬間移動する
地面が坂道なら、戦車も斜めに移動する

斜め移動用Y = 戦車X % タイル幅 * 地面の傾斜正負
MaxY = 地面Y + 斜め移動用Y - 地面からの高さ
戦車Y < MaxY なら 戦車Y += 重力の速度
戦車Y > MaxY なら 戦車Y = MaxY

スプライトゲーなのでY座標は
画面上がマイナス、下がプラス
ゲームなので定速度運動させるため
重力加速度でなくて「重力の速度」を使ってる
地面の傾斜は45度にしているので
「戦車X % タイル幅」から「斜め移動用Y」が出てくる
078960 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/10/14(水) 00:01:13.11ID:IG25C6ZR
地形に合わせて戦車の車体の角度を変える

着地回転率 = タイル高さ - (MaxY - 戦車Y)
着地回転率 < 0 なら 着地回転率 = 0
角度 = 戦車の右端の地面の角度 - 戦車の左端の地面の角度
角度 = 角度 * (戦車の左端X % タイル幅) / タイル幅
角度 += 戦車の左端の地面の角度
角度 = 角度 * 着地回転率 / タイル高さ

戦車が移動しながら
「戦車の右端の地面の角度」と「戦車の左端の地面の角度」の
差の分だけ車体が回転する

降下中は水平で、着地の寸前に「着地回転率」で
地形に角度を合わせ始める
0790名前は開発中のものです。
垢版 |
2020/10/14(水) 17:36:12.42ID:pBSMkFVM
ウディタって何が楽しいの?
技術力が上がるわけでもないし。
079260 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/10/15(木) 23:38:08.82ID:BBzmqpLY
ラウンド開始時に地面を自動生成する
適当な初期値を入れた後、下記をループする

連続カウントが0になる度に
_上下符号に-1から+1の乱数を入れる
_連続カウントに1から3の乱数を入れる
Yが天井なら
_上下符号に0から+1の乱数を入れる
Yが底なら
_上下符号に-1から0の乱数を入れる
地面X = X
地面Y = Y
X++
Y += 上下符号
連続カウント--

-45度、0度、+45度の何れかの坂道が、1から3の長さで続く

ループ終了後、そのまま逆順にendからbeginへループして
上下符号を地面配列の各要素に入れて行く
1つ先と現在の地面の高さの差で上下符号が決まるけど
それだとイテレータが1つ先に進んで仕舞っているので
endから逆に舐める必要が有る
079360 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/10/16(金) 10:18:55.32ID:KbkqyE7G
上下キーで、砲身の角度が0から90度に変えられて
目押しの溜め撃ちで、弾の初速が調整できる

「溜め撃ちの処理」
発射キーが押されてるなら
_チャージ率 <= 0 なら
__チャージ開始音SE
_チャージ率 < 100% なら
__チャージ率 += チャージ速度
__チャージ率 >= 100% なら
___フルチャージ音SE
発射キーが押されて無いなら
_チャージ率 > 0 なら
__チャージ率 < 30% なら
___チャージ率 += チャージ速度
__チャージ率 >= 30% なら
___発射処理
___発射音SE
___チャージ率 = 0%

チャージ率が30%未満の時は、自爆しない様に発射を見送る
発射角に応じて、初速にcos/sinしてX,Yの速度を決める
079460 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/10/21(水) 04:33:14.68ID:RUOoQd+z
JSプラグインで、変数番号の変数にアクセス出来る様にした
変数番号をアドレス、変数番号の変数をポインタ外し、として扱った

getEfxAdr nDst nSrc:
 nDst = &nSrc;
 nSrcの変数番号をnDstに入れる

getIndVar nDst pSrc:
 nDst = *pSrc;
 pSrcの変数番号が指す変数の値をnDstに入れる

setIndVar pDst nSrc:
 *pDst = nSrc;
 nSrcの値をpDstの変数番号が指す変数に入れる

getEfxAdrSwitch bDst pSrc:
 bDst = &pSrc;
 pSrcのスイッチ番号をbDstに入れる

getIndSwitch bDst pSrc:
 bDst = *pSrc;
 pSrcの変数番号が指すスイッチのOn/OffをbDstに入れる

setIndSwitch pDst bSrc:
 *pDst = bSrc;
 bSrcのOn/OffをpDstの変数番号が指すスイッチに入れる
079560 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/10/21(水) 04:33:45.07ID:RUOoQd+z
プラグインの引数に変数番号では無く、変数の名前を与える事で
変数の並びを変えた時の修正ミスや手間が省ける

「変数名から変数番号(アドレス)を得る方法」
・キャッシュ[変数名] に値が入っているなら
 ・キャッシュ[変数名] を変数番号として返す
・ループ
 ・$dataSystem.variables[i] == 変数名 なら
  ・キャッシュ[変数名] = i
  ・i を変数番号として返す

「$dataSystem.variables[]」に
ツクールの変数が変数番号順に入っている
079660 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/10/25(日) 06:44:52.05ID:Gy2RzjYB
構造体の配列をプラグインで管理した

&foo は変数名 foo を指定する参照渡し
struct は、プラグインのサブ・コマンド
struct iter は、サブ・コマンドのサブ・コマンド

BkkSprite struct init &ctrlHead &iterHead &iterTail &max
BkkSprite struct alloc &ctrlHead

init で管理領域を設定して
alloc で実際にスタック上にデータ領域を確保する

BkkSprite struct iter isBegin &ctrlHead &result
BkkSprite struct iter isEnd &ctrlHead &result
BkkSprite struct iter begin &ctrlHead
BkkSprite struct iter end &ctrlHead

イテレータの終了チェックと、イテレートの開始/終了

BkkSprite struct iter at &ctrlHead &idx

イテレータの値を直接指定して、そこへ飛ぶ

BkkSprite struct iter ++ &ctrlHead
BkkSprite struct iter -- &ctrlHead

イテレータを進める

基本的に要素の削除は無くて
代わりに使用中フラグをメンバーに入れて置くか
またはスタックごと開放して、リセットで最確保する
079760 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/10/25(日) 07:20:07.14ID:Gy2RzjYB
データへのポインタを列べたイテレート領域を使って
構造体のメンバーにアクセスする(管理領域とは別物)

「構造体 Tank のイテレート領域」
Tank.type
Tank.x
Tank.y

BkkSprite getIndVar n Tank.type

で Tank のメンバー type を変数 n に読み込む
Tank.type はイテレート領域のポインタ変数名

BkkSprite setIndVar Tank.type n

は、逆に変数 n の値をメンバー Tank.type に書き出す

要するに、スタック上のデータ配列に対して
メンバー名でアクセスする為の仕組み

モトローラの680x0系アセンブラが分かる人なら
「ディスプレースメント付きアドレスレジスタ間接アドレッシングモード」
見たいなものと言えば伝わるだろう

ツクール2003では、コモンイベントのコマンドで実装してたけど
MVは「変数番号の変数」が使え無いのでプラグインにした
079860 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/11/06(金) 04:44:38.28ID:R9EDHC1C
被弾時の爆発が何処かを弄ってる内に描画できなくなったけど
MVの変数は設定した上限を超えるとアクセス出来ない様だ
2003ではおkだけど、多分変数番号の変数で扱える為なのだろう
見た感じコードには何処にも間違いが無さげで数日ハマった
079960 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/11/11(水) 13:37:00.53ID:0pHfwJIV
爆発はテクスチャ・アニメの種類毎に
「けむり」「閃光」「炎」に別けて画像をロードする
構造体の配列は共有してるので
描画する時は種類を見て別々に処理する

「けむり」のアニメをゆっくり目に描画しながら
始めに「閃光」を一度だけ生成して
一定フレーム毎に「炎」も生成する

「けむり」のアニメが終わったら
マップや戦車を再生成して次の対戦に遷移する
080060 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/11/11(水) 13:44:12.99ID:0pHfwJIV
砲弾のチャージ・ゲージは、飾りの付いた外枠と
上下にグラデーションが掛かったゲージを組み合わせる
ゲージをチャージ率に応じて横方向に縮小表示する
080160 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/11/11(水) 13:56:28.65ID:0pHfwJIV
対戦開始時の「Ready」表示中は
射撃禁止/移動おkで、間合いを取れる
「GO!」で射撃禁止フラグをOffにする

爆発中は射撃と移動の両方を禁止にする
080260 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/11/13(金) 16:00:33.71ID:Ne4OzMjC
砲弾四種

「スタンダード」単発、高速、早チャージ
 通常弾

「バースト」二連発、高速、遅チャージ
 通常弾を発射後、チャージ率x90%で最発射

「スプレッド」三分裂、低速、遅チャージ
 発射後カウンタが0になったら
 通常弾二つ生成とそれ自身を通常弾に変える

「サイト」着弾地点表示、フェイント
 発射後、予想地点にレティクル描画
 左右の移動で速度微調整
080360 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/11/13(金) 16:18:50.25ID:Ne4OzMjC
マップ選択と障害物の生成をやった

キャラ名を[x][ ]か(x)( )に変更して
メニューから「\N[1]」で表示して
チェックボックスとラジオボタンにした
マップの選択はチェックボックスで選んだ中から
ランダムに選ばれる

マップの種類に応じて、障害物を描画
効果はまだ未実装
080460 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2020/11/14(土) 08:40:21.32ID:HwzKAcsU
マップと障害物の三種を実装した
「草原」「林」視覚的に隠れられる
「岩地」「岩」水平方向の弾除け
「砂漠」「流砂」移動速度を半減
080560 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2021/02/10(水) 15:48:50.83ID:YnlIq0em
「草原」の「林」だけ戦車より手前に描画した
スプライトのZ座標を使って実装しようとしたが
ツクールのプライオリティ処理が
機能していないっぽいので
別のスプライトを手前に確保して回避した
080660 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2021/02/10(水) 16:41:51.38ID:YnlIq0em
AIを実装し始めた
・AI
 ・行動トリガー
 ・行動
 ・学習トリガー

・弾避け
 ・敵が射撃
 ・左、中、右に移動
 ・敵の着弾

・射線外し
 ・ランダム
 ・左、中、右の山の裏へ移動
 ・敵の着弾

・ランダム移動
 ・ランダム
 ・左、中、右に移動
 ・敵の着弾
080760 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2021/02/10(水) 16:42:17.43ID:YnlIq0em
・チャージ
 ・AIがチャージ開始
 ・敵の左、中、右を狙う
 ・AIの着弾

・発射
 ・敵が射線上に入る
 ・発射
 ・無し

・山越え
 ・AIの着弾
 ・砲身を上下
 ・無し

「行動トリガー」で行動が発生して
「学習データ」を元に「行動データ」を設定する
「行動データ」によって毎フレームの行動を決める

「学習トリガー」で学習が発生して
「学習データ」を調整する
080860 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2021/02/10(水) 17:00:53.00ID:YnlIq0em
学習の例として「弾避け」の場合

・敵が射撃したら
左、中(移動無し)、右の比率に応じて
乱数で移動先を決める

・敵の着弾で当たらなければ
選んだ行動の比率を+2して
それ以外の比率を-1する

・当たった場合は
選んだ行動を-20して
それ以外を+10する
080960 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2021/02/10(水) 17:10:35.93ID:YnlIq0em
・正しい選択をしたっぽいなら
微妙に正の強化学習をして
・間違っていたなら
ペナルティとして多めに
負の強化学習をする

ゲームを繰り返すにつれて
どんどん強くなって行く(と良いなー)
リセットするか終了すると初期化
081160 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2021/02/11(木) 18:58:12.18ID:0LtU3bBr
SE はデフォ素材のを再生速度変えたりして使ってる
BGM はフリー素材
作曲は時々やりたい病になるけど、出来無い
0812名前は開発中のものです。
垢版 |
2021/02/12(金) 22:53:35.52ID:1LHSZjPr
再生速度、変えるってのがあるのか

商用にする場合、フリーでも著作権問題になる場合あったかも
081360 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2021/02/17(水) 18:06:12.79ID:PoSk5NNh
チャージ、発射、山越えを仮実装した

・常にチャージし続けて、弾道計算が当たりなら発射
・目標に当たらなければ、砲身角度を上げて
 ロフテッド軌道で山越えを狙う
・当たるかランダムで角度を多めに下げる
081460 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2021/02/17(水) 18:13:33.80ID:PoSk5NNh
弾避けを仮実装した

・敵弾が発射されたら
 左、中(その場)、右のステップ座標を指定する
・移動処理で指定座標へ向けて移動する
081560 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2021/02/21(日) 15:39:42.09ID:/QexS5oq
AIが敵の方向を向く様にした

移動の指示が無い時か、画面端にいる時に
前方に敵が居なければ、振り向く様に
移動先を一歩後ろへと指示する
081660 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2021/03/13(土) 16:46:17.16ID:nG7hvE7Y
ランダム移動を実装した

乱数 % ランダム・フレーム数
が 0 ならランダムにステップ移動
移動距離は弾避けの値を流用

学習は、敵の弾が外れる度に
ランダム・フレーム数 += 1
当たったら
ランダム・フレーム数 -= 10
081760 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2021/03/21(日) 14:05:52.87ID:IeCjnlr6
「射線外し」を実装した
敵から見て、山頂の1ブロック向こう側は
ロフテッド軌道でないと当て憎いので
そこに隠れる様に移動する

乱数 % フレーム数
が 0 なら隣の山陰まで移動

学習は、敵の弾が外れる度に
 移動先 += 2%
 移動先以外 -= 1%
 フレーム数 += 1
当たったら
 移動先 -= 20%
 移動先以外 += 10%
 フレーム数 -= 10
081860 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2021/03/21(日) 15:35:19.02ID:IeCjnlr6
CPU 同士で対戦させてみた
強い順に
1.ノーマル
2.バースト
3.スプレッド
4.サイト

サイトは AI にフェイントは逆効果
スプレッドは溜めと弾速遅すぎ
バーストは溜め遅い割に奮闘
ノーマルは普通が一番強いっぽい

負けると、チョコマカ動く様になるし
動き過ぎると、狙える弾数が減って
更に負ける傾向が有る
082060 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2021/05/20(木) 18:17:33.45ID:fb4MItLz
プレイヤー2をテンキーで動かせる様にした
スクリプトでテンキーのキーの名前を
変えて初期化した

Input.keyMapper[98] = 'down_numpad'

デフォだとカーソルとテンキーに
同じ名前が付けられてるので
語尾に '_numpad' を加えた

内部的には4人同時プレイ出来る様に
作ってあるので、2番目のCPU以外の
プレイヤーに割り当ててる
082260 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2023/09/24(日) 23:44:35.53ID:4tyLFpBf
生存報告(ガチで)

ツクール2003がサポート終了したので
心機一転MSX3に移植する
PyGameで作ってるのでLinuxでも動く

解説は2chでレス開始するより前の一番最初からになる
082360 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2023/09/24(日) 23:44:45.76ID:4tyLFpBf
生存報告(ガチで)

ツクール2003がサポート終了したので
心機一転MSX3に移植する
PyGameで作ってるのでLinuxでも動く

解説は2chでレス開始するより前の一番最初からになる
082460 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2023/09/24(日) 23:46:20.77ID:4tyLFpBf
pygameのブログ見た
放ったらかしになってたpythonの
オライリー本の続きを読んでる
082560 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2023/09/24(日) 23:47:09.79ID:4tyLFpBf
今時のゲーム開発は、工場のライン工と変わらない
職人の腕を発揮する要素が無いし詰まらない
ツクールでもやってる方がまし

オールドスクールのスプライトゲーが作ってて一番楽しい
082660 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2023/09/24(日) 23:47:40.26ID:4tyLFpBf
モジュール関連まで読んだ
082760 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2023/09/24(日) 23:48:11.52ID:4tyLFpBf
久し振りにSSS起動したけど、もの凄い重くて、
どうしようか思案中
082860 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2023/09/24(日) 23:48:46.27ID:4tyLFpBf
初めてのPythonの22章まで読んだ
PyGame版と2003版を同時進行で作りたい
082960 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2023/09/24(日) 23:49:12.96ID:4tyLFpBf
pygame版の推奨スペックは、ラズパイ以上にしとけば、
問題ないだろう

今年の小遣いで、MSX3が買えるかは微妙
083060 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2023/09/24(日) 23:50:31.16ID:4tyLFpBf
爆速のdragonballを並列で128個くらい繋いだ
近代化改修X68kなら弄りたいと妄想してたけど
ただ復刻しただけだと、今からまたやるの?
もう思いでの中でいいよってなってる

MSX3のスーパーリッチなスプライトで
スーファミ時代の業務用ゲームみたいなの作る方が楽しそう
083160 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2023/09/24(日) 23:50:49.04ID:4tyLFpBf
pygameのリファレンス読んでる
083260 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2023/09/24(日) 23:51:10.65ID:4tyLFpBf
続くかどうかは知らね
083360 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2023/09/24(日) 23:51:38.10ID:4tyLFpBf
PyGameのリファレンス全部読んだ
MSXまだだけど、見切り発車するかも
083460 某犬犬 ◆HzfAAjcl8nz1
垢版 |
2023/09/24(日) 23:52:22.63ID:4tyLFpBf
PyGameインスコして、メインルーチン作った
取り敢えず、スクリーンを明滅させて、EscキーかXボタンで終了する
0835名前は開発中のものです。
垢版 |
2023/09/24(日) 23:58:31.73ID:Iwqz8dU2
なんか、さらーっと流し読みした程度なんだけど、そこまで凝りたいんだったら、ウディタじゃなくてDXライブラリ使った方がいいんじゃない?
ウディタめんどいよ。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況