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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0211
むしcペイントソフトを作っているのですが・・29解決


むしc

リンク

2008/2/11(Mon) 21:37:19|NO.13528

何度も質問すいませんが、
またペイントソフトで問題が出ました。

ペイントのソフトに、戻るってありますよね?
その効果を使いたいのですが、どうすればいいのかわかりません。
どうしたらいいでしょうか?教えてください。



この記事に返信する


f

リンク

2008/2/11(Mon) 23:30:13|NO.13533

とりあえずbufferに作業前の画像コピーしときゃ良いんでね。



むしc

リンク

2008/2/12(Tue) 18:18:59|NO.13535

ありがとうございます!
何とかやってみます!



むしc

リンク

2008/2/12(Tue) 21:58:28|NO.13550

すいません、また質問ができました…

戻るといっても、戻し方があまり分からないので、具体的な
例を出してくれませんでしょうか?
お願いします。



f

リンク

2008/2/12(Tue) 22:44:19|NO.13551

とりあえず、bufferとgcopyとgselあたりをエディタで入力して、
それぞれにカーソル合わせてF1でも押せば良いんでね。



じった

リンク

2008/2/13(Wed) 00:32:52|NO.13553

こんばんは。考え方の一例ですが、参考までに。

変数A1=0 ;---現在のループで、描画等の作業が行われたか?のチェック変数
変数A2=0 ;---1つ前のループで、描画等の作業が行われたか?のチェック変数

ループ開始
  変数A1=0
   :
   :もしUndoボタンが押されたら、
   :  Undoバッファと、現在の画面を入れ替え、変数A1,A2ともに0にする。
   :
  もし描画作業が行われたら変数A1=1にする。
  もし(変数A2=1)AND(変数A1=0)ならば、
     Undo用バッファに、現在の画像状態をコピーする。
  変数A2=変数A1
ループ終了。ループ開始位置へ戻る。

…と、大雑把ですが、こんな感じでいけると思います。
要は『ドローなどが終わった瞬間に、現在の状態をバッファにコピーする』
そして『Undoボタンが押されたら、逆にバッファから現在の画面へコピーする』

使用する命令は、fさんのご指摘どおりで良いんじゃないでしょうか。

P.S. Undoバッファと、現在の画面を『入れ替える』ためには、
         テンポラリ用に もうひとつバッファが必要です。



むしc

リンク

2008/2/13(Wed) 17:59:34|NO.13554

大体のスクリプトを作ってもらえませんか?
お願いします!



a

リンク

2008/2/13(Wed) 19:39:25|NO.13555

じったさんの発言を見ても理解できないなら
HSPの基礎を勉強し直すか、諦めたほうが良いと思います。



じった

リンク

2008/2/13(Wed) 19:46:36|NO.13556

えっと・・・
僕も『もう少し自分でやってみて!』と言おうと思ったら、
先に書き込んだ『考え方一例』にちょっとミスがあったので、
お詫びに やっつけサンプルを書いておきます。

もちろん自分なりに応用を利かせないと、このまんまじゃ使いもんにならないでしょう。
頑張ってみてください。

screen 0,200,400,0,0,100 title "メイン:ここに描いて!" screen 1,200,400,0,210,100 title "バッファ1" screen 2,200,400,0,420,100 title "バッファ2" ;↑実際はバッファ画面は『screen』ではなく『buffer』で宣言する。 gsel 0 button gosub "Undo" ,*Undo A1=0:A2=0 *main A1=0 stick st,256 if st and 256 {;左クリックで点を打つ pset mousex,mousey A1=1 } if (A2=1)and(A1=0){;Undoバッファに退避させる gsel 2:pos 0,0:gcopy 1,0,0,200,400 gsel 1:pos 0,0:gcopy 0,0,0,200,400:gsel 0 } A2=A1:await 10 goto *main *Undo gsel 0:pos 0,0:gcopy 2,0,0,200,400 gsel 2:pos 0,0:gcopy 1,0,0,200,400:gsel 0 return



むしc

リンク

2008/2/13(Wed) 22:31:40|NO.13563

皆さん、本当にありがとうございました!
自力でやってみて、無理だったら皆さんの
スクリプトを使わせてもらいます!

これからは、諦めないで自力でがんばります!

本当にありがとうございました!



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