2012年4月8日投稿 / 投稿者 : hoy@kayama / タグ : 投稿プログラム 色調合 QRコード 初代対応
フルカラーLEDと3つのスライドボリュームを組み合わせて、色を自在に光らせる電子工作を作り、光奏器(こうそうき)と名づけました。(写真参照) DSでソフト化したいと考えていたら、プチコンに出会い、久々にプログラミングしました。
タッチパネルで赤、緑、青のバーを上下して、好みの色を作ります。
プチコンmkII 向けの QR コードです。
- ’ ─────────────────────
- ’−−−−−−−−−−−−−−−−−−−−−
- ’| Kousouki |
- ’| Color Player |
- ’| 2011.06.30 by hoy |
- ’−−−−−−−−−−−−−−−−−−−−−
- GOSUB @INIT
- ?
- ?” Kousouki ver1.2”
- ?
- ?” Color Player”
- ?
- ?” by hoy 2011.06.30”
- ?
- ?
- ?” Slide Bars with Pen.”
- ?
- ?
- ?” A: ON/OFF”
- ?” Y: OFF/ON Reverse”
- ?” X: RGB VoL ON/OFF”
- ?
- ?” ↑↓←→: Show Colors”
- ?” B+↑↓←→: Memory”
- ?
- @MATI
- B=BUTTON()
- IF B!=0 THEN GOTO @EXIT
- IF TCHST==FALSE THEN GOTO @MATI
- @EXIT
- CLS
- GOSUB @PUTCOL
- GOSUB @UPDWN
- ’−−−−− MAIN LOOP −−−−
- @LOOP
- B=BUTTON()
- IF B==64 THEN GOSUB @NUMOFF
- IF B==16 AND FLAG==1 THEN VISIBLE 1,1,1,1,1,1
- IF B==16 AND FLAG==−1 THEN VISIBLE 1,1,1,1,1,0
- IF B==0 AND FLAG==1 THEN VISIBLE 1,1,1,1,1,0
- IF B==0 AND FLAG==−1 THEN VISIBLE 1,1,1,1,1,1
- IF B==128 THEN GOSUB @REVERSE
- IF B==1 THEN GOSUB @PUT1
- IF B==2 THEN GOSUB @PUT2
- IF B==4 THEN GOSUB @PUT4
- IF B==8 THEN GOSUB @PUT8
- IF B==33 THEN GOSUB @SET1
- IF B==34 THEN GOSUB @SET2
- IF B==36 THEN GOSUB @SET4
- IF B==40 THEN GOSUB @SET8
- TST=TCHST
- IF TST==FALSE THEN GOTO @LOOP
- X=TCHX:Y=TCHY
- IF FLAG2==−1 THEN VISIBLE 0,1,1,1,1,1
- IF FLAG2==1 THEN VISIBLE 1,1,1,1,1,1
- IF X>15 AND X<55 THEN GOSUB @R
- IF X>75 AND X<115 THEN GOSUB @G
- IF X>135 AND X<175 THEN GOSUB @B
- IF X>185 THEN GOSUB @3UPDWN
- GOTO @LOOP
- ’−−−−− SUB −−−−
- @R
- YR=FLOOR((190−Y)*256/186)−1
- IF YR>255 THEN YR=255
- IF YR<0 THEN YR=0
- GOSUB @COLORSET
- GOSUB @BARR
- RETURN
- @G
- YG=FLOOR((190−Y)*256/186)−1
- IF YG>255 THEN YG=255
- IF YG<0 THEN YG=0
- GOSUB @COLORSET
- GOSUB @BARG
- RETURN
- @B
- YB=FLOOR((190−Y)*256/186)−1
- IF YB>255 THEN YB=255
- IF YB<0 THEN YB=0
- GOSUB @COLORSET
- GOSUB @BARB
- RETURN
- @ALLUP
- YR=YR+2:IF YR>255 THEN YR=255
- YG=YG+2:IF YG>255 THEN YG=255
- YB=YB+2:IF YB>255 THEN YB=255
- GOSUB @PUTCOL
- RETURN
- @ALLDWN
- YR=YR−1:IF YR<0 THEN YR=0
- YG=YG−1:IF YG<0 THEN YG=0
- YB=YB−1:IF YB<0 THEN YB=0
- GOSUB @PUTCOL
- RETURN
- @3UPDWN
- IF Y<96 THEN GOSUB @ALLUP
- IF Y>96 THEN GOSUB @ALLDWN
- RETURN
- ’−−−−−−−−
- @COLORSET
- R$=HEX$(YR)
- G$=HEX$(YG)
- B$=HEX$(YB)
- IF LEN(R$)==1 THEN R$=”0”+R$
- IF LEN(G$)==1 THEN G$=”0”+G$
- IF LEN(B$)==1 THEN B$=”0”+B$
- C$=R$+G$+B$
- GPAGE 0
- COLSET ”GRP”, 100, C$
- GPAGE 1
- COLSET ”GRP”, 100, C$
- CLS
- IF FLAG2==−1 GOTO @SKIP
- LOCATE 3,22
- ?”<R> <G> <B> ”
- LOCATE 3,20 : ? YR;
- LOCATE 10,20 : ? YG;
- LOCATE 17,20 : ? YB;
- @SKIP
- RETURN
- ’−−−−−−−
- @BARR
- GLINE 15,OLDYR,55,OLDYR,100
- GLINE 15,Y,55,Y,4
- OLDYR=Y
- RETURN
- @BARG
- GLINE 75,OLDYG,115,OLDYG,100
- GLINE 75,Y,115,Y,4
- OLDYG=Y
- RETURN
- @BARB
- GLINE 135,OLDYB,175,OLDYB,100
- GLINE 135,Y,175,Y,4
- OLDYB=Y
- RETURN
- @REVERSE
- FLAG=FLAG*−1
- FOR I = 0 TO 10000
- NEXT I
- RETURN
- @NUMOFF
- FLAG2=FLAG2*−1
- CLS
- GOSUB @COLORSET
- FOR I = 0 TO 10000
- NEXT I
- RETURN
- @PUTCOL
- GOSUB @COLORSET
- Y=FLOOR(190−(YR+1)*186/256)
- GOSUB @BARR
- Y=FLOOR(190−(YG+1)*186/256)
- GOSUB @BARG
- Y=FLOOR(190−(YB+1)*186/256)
- GOSUB @BARB
- RETURN
- @UPDWN
- GLINE 205,76,220,56,4
- GLINE 220,56,235,76,4
- GLINE 205,116,220,136,4
- GLINE 220,136,235,116,4
- RETURN
- @PUT1
- YR=MEMORY(0,0)
- YG=MEMORY(0,1)
- YB=MEMORY(0,2)
- GOSUB @PUTCOL
- RETURN
- @PUT2
- YR=MEMORY(1,0)
- YG=MEMORY(1,1)
- YB=MEMORY(1,2)
- GOSUB @PUTCOL
- RETURN
- @PUT4
- YR=MEMORY(2,0)
- YG=MEMORY(2,1)
- YB=MEMORY(2,2)
- GOSUB @PUTCOL
- RETURN
- @PUT8
- YR=MEMORY(3,0)
- YG=MEMORY(3,1)
- YB=MEMORY(3,2)
- GOSUB @PUTCOL
- RETURN
- @SET1
- MEMORY(0,0)=YR
- MEMORY(0,1)=YG
- MEMORY(0,2)=YB
- RETURN
- @SET2
- MEMORY(1,0)=YR
- MEMORY(1,1)=YG
- MEMORY(1,2)=YB
- RETURN
- @SET4
- MEMORY(2,0)=YR
- MEMORY(2,1)=YG
- MEMORY(2,2)=YB
- RETURN
- @SET8
- MEMORY(3,0)=YR
- MEMORY(3,1)=YG
- MEMORY(3,2)=YB
- RETURN
- @INIT
- CLEAR
- VISIBLE 1,1,1,1,1,1
- COLOR 2
- GPAGE 0
- GCLS 100
- PNLTYPE ”OFF”
- GPAGE 1
- GCLS 100
- DATA 58,13,31,48,136,161
- DATA 211,71,0,30,68,18
- DIM MEMORY(4,3)
- FOR I= 0 TO 3
- FOR J = 0 TO 2
- READ MEMORY(I,J)
- NEXT J
- NEXT I
- FLAG=−1 : FLAG2=1
- YR=131 : YG=21 : YB=39
- GOSUB @PUTCOL
- GOSUB @UPDWN
- CLS
- RETURN
- ’−−− END −−−
この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)
表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.119 秒 | このページの最終更新 : 2022/09/20 (火) 12:44:12 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30