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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
768
(1): 2019/12/25(水)04:35 ID:19YWrwdS(1) AAS
最初の3つのはenum でいいね
769: 60 某犬犬 ◆HzfAAjcl8nz1 2019/12/26(木)00:02 ID:KYDo60Ky(1/3) AAS
>>768
ツクール2003にenumは無いし
ポインタの代わりに変数番号の変数とかは有るけど
スイッチ番号の変数も無いからしゃーない
使った事の無い環境について
あんまし意見しない方がいい
770: 60 某犬犬 ◆HzfAAjcl8nz1 2019/12/26(木)00:43 ID:KYDo60Ky(2/3) AAS
説明の都合で共通処理の様に書いてるけど
それぞれ別イベントで異なった処理をする
成功なら自動操縦の処理をして着陸させる
オーバーランならメッセージを出して
最初からやり直す
衝突だったら爆発する

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

画像リンク

776: 60 某犬犬 ◆HzfAAjcl8nz1 2019/12/31(火)03:45 ID:LnEPoFcy(1/2) AAS
灯りのマップ配置に道路を追加した
残りは滑走路

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

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

自動接地時に速度を
0まで落とす様にした
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は「変数番号の変数」が使え無いのでプラグインにした
1-
あと 205 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.058s