HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2022
0120
POWシューティングゲームの射撃プログラムについて3解決


POW

リンク

2022/1/20(Thu) 01:57:30|NO.95120

こんばんは、現在HGIMG3で3Dシューティングゲームを作っているのですが
射撃をするときの、プログラムがうまく作動しません。

自分なりに、ネットで調べて連射射撃などを再現しようとしているのですが
どなたか射撃のプログラムの構造を教えていただけないでしょうか?



この記事に返信する


POW

リンク

2022/1/20(Thu) 02:04:41|NO.95121

一応、ネット上にあるhsp2用のEasy3Dの射撃プログラムを改造して試したのですが、
最初は上手く作動したのですが、弾のXモデルオブジェクトが消えなかったりしたので。
弾の処理などは、オブジェクトモデルを削除しないで良いような感じにも出来るのでしょうか?



Makoto

リンク

2022/1/20(Thu) 16:34:48|NO.95123

どこでつまっているかわからないのですが、
とりあえず、スペースキーで弾を発射するサンプルを作ってみました。
押しっぱなしで連射出来るようになっています。

弾のオブジェクトは
発射する時に作成して、消えるときに削除するといった流れですね。
このサンプルにはありませんが、命中した時も同じです。

削除しない方法としては
あらかじめ全ての弾のオブジェクトを登録して非表示(OBJ_HIDE)にしておき
発射するときに表示し、終わったら再び非表示にするといった方法もあります。

#include "hgimg3.as" hgini setpos HGOBJ_CAMERA , 20 , 10 , 30 ; カメラ setang HGOBJ_CAMERA , deg2rad(45) , 0 , deg2rad(45) setcolor 255 , 255 , 255 ; 自機 addbox MDL_PLAYER , 2 , 2 regobj OBJ_PLAYER , MDL_PLAYER setcolor 0 , 255 , 255 ; ショット addbox MDL_SHOT , 1 , 1 SHOT_MAX = 10 ; 最大数 dim OBJ_SHOT , SHOT_MAX ; オブジェクト用 dim SHOT , SHOT_MAX ; 状態 SHOT_COUNT = 0 ; 発射間隔カウント *MAIN getkey SPC_KEY , ' ' ; スペースキー if SPC_KEY { ; 押された if SHOT_COUNT = 0 { ; カウントが0ならば発射 repeat SHOT_MAX if SHOT(cnt) = 0 { ; 未使用か SHOT(cnt) = 1 ; 発射状態に regobj OBJ_SHOT(cnt) , MDL_SHOT ; オブジェクト作成 break ; ループから抜ける } loop } SHOT_COUNT ++ ; 発射カウント+1 } if SPC_KEY = 0 or SHOT_COUNT > 3 { ; スペースが押されていないかカウントが最大 SHOT_COUNT = 0 ; カウントリセット } repeat SHOT_MAX if SHOT(cnt) = 1 { ; 発射状態ならば addpos OBJ_SHOT(cnt) , 0 , -2 , 0 ; 移動 addwork OBJ_SHOT(cnt) , 1 , 0 , 0 ; 移動カウント getwork OBJ_SHOT(cnt) , A , B , C if A > 20 { ; 一定回数移動したら SHOT(cnt) = 0 ; 未使用状態に delobj OBJ_SHOT(cnt) ; オブジェクト削除 } } loop hgdraw hgsync 30 getkey ESC_KEY , 27 ; ESC キー if ESC_KEY { end } ; 押されたら終了 goto *MAIN



POW

リンク

2022/1/24(Mon) 21:40:45|NO.95176

Makoto様
ありがとうございます。!!
組み込んで何とか、応用することが出来ました。
ありがとうございます。m(_ _)m



ONION software Copyright 1997-2023(c) All rights reserved.