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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
1018
ルーレット3解決


リンク

2017/10/18(Wed) 22:21:52|NO.81611

以下の内容を編集して画面上にボタンを円筒状に12個配置して、これらを点灯、消灯させたい
のですができる方教えてください。




;LEDルーレットプログラミング 挑戦用サンプルプログラム
title "LEDルーレット" ;タイトルの設定
#include "hspusbio.as" ;hspusbio プラグイン組み込み

;------------------ 変数等初期化 -------------------------------
randomize ;乱数発生の初期化
wait_c=5 ;待ち時間の設定(1=0.01s)

dim x,12 ;ボタンのX座標配列
dim y,12 ;ボタンのY座標配列
screen 0,400,300 ;画面の大きさを設定
x(6)=190 : y(6)=80
x(5)=220 : y(5)=89
x(4)=242 : y(4)=109
x(3)=250 : y(3)=140
x(2)=242 : y(2)=171
x(1)=220 : y(1)=191
x(12)=190 : y(12)=200
x(11)=159 : y(11)=191
x(10)=139 : y(10)=171
x(9)=130 : y(9)=140
x(8)=139 : y(8)=109
x(7)=159 : y(7)=89

;------------------ 点滅終了 -------------------------------
pos 350,270
objsize 45,25
button "終了", *eend
stop

; port が0の場合、8つの赤LEDを点灯・消灯という選択
; port が1の場合、4つの橙LEDを点灯・消灯という選択
; byte の値によって、どのLEDを点灯させるかを選択
; したがって、port と byte の値の組合せを、適切に決定しつつ、
; wait_c の値を大きくしてやればよいことになる。

*disp
if port=0 : gosub *test8 : else : gosub *test4
return
*test8
objsize 20,20
if byte=1 : pos x(1),y(1)
if byte=2 : pos x(2),y(2)
if byte=4 : pos x(3),y(3)
if byte=8 : pos x(4),y(4)
if byte=16 : pos x(5),y(5)
if byte=32 : pos x(6),y(6)
if byte=64 : pos x(7),y(7)
if byte=128 : pos x(8),y(8)
button " ", *dummy
return

*test4
objsize 20,20
if byte=1 : pos x(9),y(9)
if byte=2 : pos x(10),y(10)
if byte=4 : pos x(11),y(11)
if byte=8 : pos x(12),y(12)
button " ", *dummy
return

*dummy
return
*eend
end



この記事に返信する


f

リンク

2017/10/19(Thu) 09:57:23|NO.81614

自力で頑張ってみた感がひしひしと感じられた為。
なるべく元の形に添って。



;------------------ 変数等初期化 ------------------------------- randomize ;乱数発生の初期化 wait_c=5 ;待ち時間の設定(1=0.01s) dim x,12 ;ボタンのX座標配列 dim y,12 ;ボタンのY座標配列 screen 0,400,300 ;画面の大きさを設定 x( 6 ) = 190 : y( 6 ) = 80 x( 5 ) = 220 : y( 5 ) = 89 x( 4 ) = 242 : y( 4 ) = 109 x( 3 ) = 250 : y( 3 ) = 140 x( 2 ) = 242 : y( 2 ) = 171 x( 1 ) = 220 : y( 1 ) = 191 x( 12 ) = 190 : y( 12 ) = 200 x( 11 ) = 159 : y( 11 ) = 191 x( 10 ) = 139 : y( 10 ) = 171 x( 9 ) = 130 : y( 9 ) = 140 x( 8 ) = 139 : y( 8 ) = 109 x( 7 ) = 159 : y( 7 ) = 89 ;------------------ 点滅終了 ------------------------------- pos 350,270 objsize 45,25 button "終了", *eend ;----------------------------------------------------------- // 画面クリア gosub *clear // ポート0 全(画面)LED ON port = 0 byte = 0xff gosub *disp // ポート1 全(画面)LED ON port = 1 byte = 0x0f gosub *disp ;----------------------------------------------------------- stop *eend end ; port が0の場合、8つの赤LEDを点灯・消灯という選択 ; port が1の場合、4つの橙LEDを点灯・消灯という選択 ; byte の値によって、どのLEDを点灯させるかを選択 ; したがって、port と byte の値の組合せを、適切に決定しつつ、 ; wait_c の値を大きくしてやればよいことになる。 *clear color 0 , 0 , 0 boxf color 255 , 255 , 255 return *disp if port=0 { gosub *test8 } else { gosub *test4 } return *test8 color 255 , 0 , 0 if ( byte & 1 ) != 0 { pos x( 1 ) , y( 1 ) : mes "●" } // 0x01 if ( byte & 2 ) != 0 { pos x( 2 ) , y( 2 ) : mes "●" } // 0x02 if ( byte & 4 ) != 0 { pos x( 3 ) , y( 3 ) : mes "●" } // 0x04 if ( byte & 8 ) != 0 { pos x( 4 ) , y( 4 ) : mes "●" } // 0x08 if ( byte & 16 ) != 0 { pos x( 5 ) , y( 5 ) : mes "●" } // 0x10 if ( byte & 32 ) != 0 { pos x( 6 ) , y( 6 ) : mes "●" } // 0x20 if ( byte & 64 ) != 0 { pos x( 7 ) , y( 7 ) : mes "●" } // 0x40 if ( byte & 128 ) != 0 { pos x( 8 ) , y( 8 ) : mes "●" } // 0x80 color 255,255,255 return *test4 color 255 , 127 , 0 if ( byte & 1 ) != 0 { pos x( 9 ) , y( 9 ) : mes "●" } // 0x01 if ( byte & 2 ) != 0 { pos x( 10 ) , y( 10 ) : mes "●" } // 0x02 if ( byte & 4 ) != 0 { pos x( 11 ) , y( 11 ) : mes "●" } // 0x04 if ( byte & 8 ) != 0 { pos x( 12 ) , y( 12 ) : mes "●" } // 0x08 color 255,255,255 return



リンク

2017/10/23(Mon) 02:56:13|NO.81646

回答いただきありがとうございました。
ボタンが複数表示されるようになりました。



N

リンク

2017/10/24(Tue) 16:11:34|NO.81668





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