【HSP】へにょりレーザー作ってみたけどバグった…orz【STG】

【HSP】へにょりレーザー作ってみたけどバグった…orz【STG】

未完成のプログラムなので書庫こっちにしときます。
↓のページを参考にHSPで作ってみたんですが、
ドット落ち&左右が反転する謎のバグが発生して、放置になっています…orz

buffer 1,20,256
color : boxf
color 255,200,200
circle 0,0,19,255,1
color 255,127,127
repeat 4
circle cnt,cnt,19-cnt,255-cnt,0
loop
screen 0
ddim l_x,256
ddim l_y,256
ddim l_s,256
ddim local,8
ddim square_x1,4
ddim square_y1,4
dim square_x2,4
dim square_y2,4
ddim local_s,1
gmode 2
*main
redraw 0
color 255,255,255 : boxf
color
local_s+=0.05
repeat 256
l_x(cnt)=cos(local_s+M_PI*cnt/256)*86+320
l_y(cnt)=sin(local_s+M_PI*cnt/256)*86+240
l_s(cnt)=(-1.0)/((local_s+M_PI*cnt/256)\(M_PI*2)+M_PI*2)
loop
local(0)=l_x(0)+cos(l_s(0)+M_PI)*10,l_y(0)+sin(l_s(0)+M_PI)*10
local(2)=l_x(0)+cos(l_s(0))*10,l_y(0)+sin(l_s(0))*10
repeat 256
local(4)=l_x(cnt)+cos(l_s(cnt)+M_PI-0.1)*10,l_y(cnt)+sin(l_s(cnt)+M_PI-0.1)*10
local(6)=l_x(cnt)+cos(l_s(cnt)+0.1)*10,l_y(cnt)+sin(l_s(cnt)+0.1)*10
square_x1=int(local(0)),int(local(2)),int(local(4)),int(local(6))
square_y1=int(local(1)),int(local(3)),int(local(5)),int(local(7))
square_x2=0,19,0,19
square_y2=cnt,cnt,cnt,cnt
gsquare 1,square_x1,square_y1,square_x2,square_y2
if cnt!255 {
local(0)=local(4),local(5)
local(2)=local(6),local(7)
}
loop
redraw
await 15
goto *main

とりあえず画面の真ん中を円状に回るだけです。はい。
ちゃんと軌道を設定すれば、どんな形の曲線でもできる…はずです。
このスクリプトでは、それぞれのX,Y座標を絶対的な数値で出しちゃっていますが、実用を考えるのであれば本当は相対的な値を指定したほうが良いです。とりあえずやってみたかっただけなので、このスクリプトは色々とダメです…orz
ウィンドウの後ろになんか写ってるのは気にしないでください。
短時間で作るとやっぱりバグるなー
そうでなくてもバグるかもしれんけど…orz
まあ時間があれば直します。
ではまたいつか。
↓クリック求む


「【HSP】へにょりレーザー作ってみたけどバグった…orz【STG】」への6件のフィードバック

  1. 意地でもこのサイトを使わずに作る!

  2. そうやって意地っ張りだから試験の点数が伸びないんじゃないですか?
    いや、本当に。

  3. 意地っ張りとかそういう問題じゃなく英語は分からん
    なんなん、例外って
    不規則変化って何って話
    理数はちゃんと理由説明できるやんけ
    水の分子がくの字になってる理由は水素分子同士が引き合う
    ため
    とか
    なんじゃいよ。不規則変化って?
    過去形がedと愛称が悪かったりひねくれてたりするからおかしくなるん?

  4. じゃなくて、これ、英語のとこ読まなくてもできるよ。
    私も英語嫌いだけど、このページは図を見るだけでも行ける。

  5. まだ俺氏初心者よorz
    分かりました。詰んだら参考にします

コメントは受け付けていません。