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


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0616
がお画面を自由に動き回る画像1未解決


がお

リンク

2013/6/16(Sun) 06:41:51|NO.54937

パソコンの画面から外れないように
ウィンドウを自由に動き回る画像のサンプルスクリプト誰か記述してもらえませんか?
画面の端にいくと逆の方向に跳ね返るようなものがいいです。
一定方向ではなく、四方八方に動きまわるようなものがいいです
画像は用意していただかなくても大丈夫です



この記事に返信する


ht.

リンク

2013/6/16(Sun) 08:27:38|NO.54941

かなり適当ですが、ゴミが動き回るサンプルです。
正弦余弦が分かるならそっちを使ったほうが楽ですが。

#const WIN_CX 640 #const WIN_CY 480 #const IMG_MAX 20 // ゴミの数 #const IMGCX_MAX 10 #const IMGCY_MAX 10 #const VECTOR_MAX 3 dim x, IMG_MAX dim y, IMG_MAX dim vx, IMG_MAX dim vy, IMG_MAX dim cx, IMG_MAX dim cy, IMG_MAX repeat IMG_MAX cx.cnt = 1 + rnd(IMGCX_MAX) cy.cnt = 1 + rnd(IMGCY_MAX) x.cnt = rnd(WIN_CX - IMGCX_MAX) y.cnt = rnd(WIN_CY - IMGCY_MAX) vx.cnt = 1 + rnd(VECTOR_MAX) vy.cnt = 1 + rnd(VECTOR_MAX) if rnd(2) == 0 : vx.cnt = -vx.cnt if rnd(2) == 0 : vy.cnt = -vy.cnt loop repeat redraw 0 color : boxf : color 255, 0, 255 repeat IMG_MAX x.cnt += vx.cnt y.cnt += vy.cnt // 速度と方向を不規則に if rnd(5) == 0 { vx.cnt = limit(vx.cnt + rnd(3) - 1, -VECTOR_MAX, VECTOR_MAX) } if rnd(5) == 0 { vy.cnt = limit(vy.cnt + rnd(3) - 1, -VECTOR_MAX, VECTOR_MAX) } // 壁の衝突判定 if x.cnt < 0 : x.cnt = 0 : vx.cnt = -vx.cnt if (x.cnt + cx.cnt) > WIN_CX : x.cnt = WIN_CX - cx.cnt : vx.cnt = -vx.cnt if y.cnt < 0 : y.cnt = 0 : vy.cnt = -vy.cnt if (y.cnt + cy.cnt) > WIN_CY : y.cnt = WIN_CY - cy.cnt : vy.cnt = -vy.cnt color rnd(256), rnd(256), rnd(256) boxf x.cnt, y.cnt, x.cnt + cx.cnt, y.cnt + cy.cnt loop redraw 1 wait 2 loop




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