[過去ログ] 一人で完成まで頑張るの寂しいからかまって [無断転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
778: [age] 2020/01/03(金)16:22 ID:wvoZmWLS(1) AAS
PSリメイク版ドラゴンクエスト?やる。その2
 
動画リンク[YouTube]

779: 60 某犬犬 ◆HzfAAjcl8nz1 2020/01/15(水)08:09 ID:rOvcYbNu(1) AAS
あけおめ、ことよろ

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

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

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

782: 60 某犬犬 ◆HzfAAjcl8nz1 2020/01/16(木)05:06 ID:yJKk7MsJ(3/3) AAS
去年末は先生ぶってイキって仕舞い大変スマンコ
たまに来るケチを付ける奴と勘違いしますた
三次大戦を前におまいらと和解せよする等した
783
(1): 60 某犬犬 ◆HzfAAjcl8nz1 2020/01/17(金)05:57 ID:PnY//fJ0(1/2) AAS
動画リンク[YouTube]


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

制作:某犬犬
Web: 外部リンク[php]:lnl.osdn.jp
Twitter: Twitterリンク:schrochan

BGM素材は「サイバーレインフォース」さんの提供です
著作者:Cyber-Rainforce
HP:3104式
URL:外部リンク:cyber-rainforce.net
Twitterリンク:5chan_nel (5ch newer account)
784: 60 某犬犬 ◆HzfAAjcl8nz1 2020/01/17(金)06:00 ID:PnY//fJ0(2/2) AAS
>>783
動画リンク[YouTube]

続編では、こんな感じにしたい
785: 60 某犬犬 ◆m6HUWv.YwMNd [age] 2020/10/10(土)13:47 ID:O4TZOpDd(1/2) AAS
今年は図書館でクエスト量産する予定だったが
この世界情勢なので放置してたスマンコ

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

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

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

画像リンク

ミニゲームだから多分そんなに時間かからんじゃろう
787: 60 某犬犬 ◆HzfAAjcl8nz1 2020/10/11(日)08:05 ID:GUOUnJKr(1) AAS
全戦車の座標の最小値と最大値を求めて
最小値が画面の左端、最大値が右端になる様に拡大率%を計算する
キャラがはみ出ない様に、X,Y方向の拡大率の小さい方を優先する

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

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

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

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

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

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

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

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

降下中は水平で、着地の寸前に「着地回転率」で
地形に角度を合わせ始める
790
(1): 2020/10/14(水)17:36 ID:pBSMkFVM(1) AAS
ウディタって何が楽しいの?
技術力が上がるわけでもないし。
791: 60 某犬犬 ◆HzfAAjcl8nz1 2020/10/15(木)03:18 ID:BBzmqpLY(1/2) AAS
>>790
俺は 1 じゃ無くて >>60
792: 60 某犬犬 ◆HzfAAjcl8nz1 2020/10/15(木)23:38 ID:BBzmqpLY(2/2) AA×

793: 60 某犬犬 ◆HzfAAjcl8nz1 2020/10/16(金)10:18 ID:KbkqyE7G(1) AA×

794: 60 某犬犬 ◆HzfAAjcl8nz1 2020/10/21(水)04:33 ID:RUOoQd+z(1/2) AAS
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の変数番号が指すスイッチに入れる
795: 60 某犬犬 ◆HzfAAjcl8nz1 2020/10/21(水)04:33 ID:RUOoQd+z(2/2) AAS
プラグインの引数に変数番号では無く、変数の名前を与える事で
変数の並びを変えた時の修正ミスや手間が省ける

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

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

&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

イテレータを進める

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

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

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

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

爆発中は射撃と移動の両方を禁止にする
802: 60 某犬犬 ◆HzfAAjcl8nz1 2020/11/13(金)16:00 ID:Ne4OzMjC(1/2) AAS
砲弾四種

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

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

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

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

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

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

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

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

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

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

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

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

「学習トリガー」で学習が発生して
「学習データ」を調整する
1-
あと 195 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.059s