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


HSPTV!掲示板


未解決 解決 停止 削除要請

2024
0930
cgrotateの使い方4解決


c

リンク

2024/9/30(Mon) 23:56:06|NO.102291

ゲームを制作していますがgrotateを使いこなせず苦戦しています。


buffer 314 : picload "314.png" 画面横=640 画面縦=360 screen 0,画面横,画面縦 傾き=deg2rad(1) *メインループ ;------------------------------ redraw 1 redraw 0 clrobj if 画面=0 : gosub *物語 await 5 goto *メインループ *物語 ;------------------------------ gmode 4,640,360,256 pos 0,0 gcopy 314,0,0,640,360 傾き=傾き+deg2rad(1) color 0,255,0 pos 320,180 grotate 0,0,0,傾き,640,360 return

これを実行すると下記画像のようになってしまいます。
grotate 314,0,0,傾き,640,360
にすればうまく回転するのですが、加工しながら回転させたいのです。
うまく回転させることができる方法を教えてください。

https://53.gigafile.nu/1005-da99548ab38f7b4204fd309d4ffe2d0fe
https://53.gigafile.nu/1005-ba655a24fe0e962168f2e9e35090d9bf6



この記事に返信する


wl

リンク

2024/10/1(Tue) 13:58:19|NO.102303

grotateはコピー先とコピー元が同じだと上手く動かないようです。
また、gmodeの設定によっても挙動が変わるみたいですね。
一度別のバッファにコピーして何らかの加工をしてから、さらにgrotateで回転コピーすると良いと思います。



c

リンク

2024/10/1(Tue) 16:12:02|NO.102307

wlさん返信ありがとうございます。
加工用バッファに書き込んでスクリーンに呼び出すやり方を試してみたところ、画面がひどくチラついてしまいました。
ゲームのように毎秒画面を更新するものとは相性が悪いようです。
この演出は諦めたほうがいいのかもしれませんね。
gmodeの設定による変化は確認できなかったのでもうちょっといじってみます。



wl

リンク

2024/10/1(Tue) 20:57:07|NO.102309

redrawを使っていれば、重たくはなってもちらつくことはないはず。
加工が具体的にどんなものか分かりませんが、こんな感じでコピーするのではどうですか?
	buffer 314 : picload "314.png"
buffer 315 //加工用バッファ 画面横=640 画面縦=360 screen 0,画面横,画面縦 傾き=deg2rad(1) *メインループ ;------------------------------ redraw 1 redraw 0 clrobj if 画面=0 : gosub *物語 await 5 goto *メインループ *物語 ;------------------------------ gmode 4,640,360,256 gsel 315 pos 0,0 gcopy 314,0,0,640,360//加工用バッファにコピー gsel 0 傾き=傾き+deg2rad(1) color 0,255,0 pos 320,180 grotate 315,0,0,傾き,640,360//加工用バッファからコピー return
ただ、私の環境ではちょっと処理落ちしました。(チラついてはいない)
ゲームにしても待ち時間5ms(200FPS)で更新は早すぎると思うので、16ms毎(60FPS)位にしてもよいのではと思います。



c

リンク

2024/10/1(Tue) 22:31:21|NO.102310

gselを使うということに思い至っておりませんでした!
bufferとscreenで無理矢理やろうとしていました。
描画のチラつきではなくそもそも描画ができていなくて窓が点滅していました。
解法を教えてもらったあとでは「なんて馬鹿なことを」と頭を抱えています。

wlさんはゲーム作りに手慣れていらっしゃるようですね。
FPSについてまでも知恵を授けてくださりありがとうございました。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.102291への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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