トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

MultimediaAnnotation

Multimedia Annotation

  • 文字、音声、画像で、注をつける。

 Curiosity rover

CuriosityRover.zip(6)
CuriosityRover01.hsp(4)

; Curiosity Rover 01
; copyleft 2017-07-12 sugiura@nagoya-u.jp

; テキストを画像として読み込んでおいて、
; 文中の語句(のエリア)を指定して、注を出す。

;-----------------------------------------------------------------------------

;--------------------------------------------------------------------------------------
; 注に使う音声を読み込んで番号をつけておく

	mmload "narration.mp3", 0
	mmload "mechanics.mp3", 1
	mmload "curiosity.mp3", 2
	mmload "algorithm.mp3", 3
	mmload "traction.mp3", 4
	mmload "jet.mp3", 5
	mmload "pasadena.mp3", 6
	mmload "extensive.mp3", 7
	mmload "signs.mp3", 8
	mmload "rugged.mp3", 9
	mmload "level.mp3", 10
	mmload "uneven.mp3", 11
	mmload "incline.mp3", 12
								
	
;------------------------------------------------------------------------------

	buffer 0							; 画像を事前に読み込んでおく場所の番号
	picload "curiosity-text.jpg"		; 画像を読み込んで、bufferに入れておく

;----------------------------------
; 注に使う画像に番号をつけていく

	buffer 2
	picload "rover.jpg"
	
	
	buffer 3
	picload "pasadena.jpg"
	
	
;-------------------------------------------------------------------------------
	screen 1, 660, 660			; ウインドウの初期化 0番、ウインドウの大きさの指定
								; bufferを使って画像を読み込んだときは、明示的にウィンドウを指定する


;------------------------------------------
*main
; テキスト全体を表示
	gsel 1
	
	gmode 0, 657, 479			; 表示モードと大きさ指定
	pos 0,0						; 左上角から、
	gcopy 0, 0, 0, 657, 479		; バッファ0の画像を表示
	
;------------------------------------------
; 一つ目のボタン:

	pos 127, 8				; ボタンの位置
	objsize 100, 20				; ボタンにする画像のサイズ(大きな画像を読み込んでおいて、その一部を
								;  ボタンとして使用することもできる。)
								; ボタンの位置とサイズで、ボタンの位置と大きさを指定することになる
	
	objimage 0, 127, 8, 127, 10, 127, 9	; ボタン画像の指定をする。
								; 最初の番号が buffer番号
								; 次の数字の組み合わせが、表示する画像の中のボタンの左上の位置
								; その次の数字の組み合わせが、ボタンを押したときの位置(省略可)
								; 最後の数字の組み合わせが、ボタンの上にマウスが来たときの位置(省略可)
								
	button gosub "", *mechanics
;-----------------------------------------
; 二つ目のボタン:

	pos 5, 30				; 左上の座標
	objsize 150, 20				; そこから右へいくつ、下へいくつとエリアを指定
	objimage 0, 5, 30, 5, 32, 5, 31	; その指定した範囲をオブジェクト(ボタン)とする
	button gosub "", *curiosity	; ボタンとしての機能、文字は表示させないので""とだけ。
	
;-----------------------------------------
; 3つ目のボタン:

	pos 62, 59				; 左上の座標
	objsize 100, 20				; そこから右へいくつ、下へいくつとエリアを指定
	objimage 0, 62, 59, 62, 61, 62, 60	; その指定した範囲をオブジェクト(ボタン)とする
	button gosub "", *algorithm	; ボタンとしての機能、文字は表示させないので""とだけ。

;-----------------------------------------
; 4つ目のボタン:

	pos 147, 80				; 左上の座標
	objsize 150, 20				; そこから右へいくつ、下へいくつとエリアを指定
	objimage 0, 147, 80, 147, 82, 147, 81	; その指定した範囲をオブジェクト(ボタン)とする
	button gosub "", *traction	; ボタンとしての機能、文字は表示させないので""とだけ。

;-----------------------------------------
; 五つ目のボタン:

	pos 178, 125				; 左上の座標
	objsize 250, 20				; そこから右へいくつ、下へいくつとエリアを指定
	objimage 0, 178, 125, 178, 127, 178, 126	; その指定した範囲をオブジェクト(ボタン)とする
	button gosub "", *jet	; ボタンとしての機能、文字は表示させないので""とだけ。

	pos 456, 124				; 左上の座標
	objsize 120, 20				; そこから右へいくつ、下へいくつとエリアを指定
	objimage 0, 456, 124, 456, 126, 456, 125	; その指定した範囲をオブジェクト(ボタン)とする
	button gosub "", *pasadena

	pos 244, 191				; 左上の座標
	objsize 180, 20				; そこから右へいくつ、下へいくつとエリアを指定
	objimage 0, 244, 191, 244, 193, 244, 192	; その指定した範囲をオブジェクト(ボタン)とする
	button gosub "", *extensive

	pos 465, 242				; 左上の座標
	objsize 135, 20				; そこから右へいくつ、下へいくつとエリアを指定
	objimage 0, 465, 242, 465, 244, 465, 243	; その指定した範囲をオブジェクト(ボタン)とする
	button gosub "", *signs

	pos 6, 285				; 左上の座標
	objsize 65, 20				; そこから右へいくつ、下へいくつとエリアを指定
	objimage 0, 6, 285, 6, 287, 6, 286	; その指定した範囲をオブジェクト(ボタン)とする
	button gosub "", *rugged

	pos 233, 286				; 左上の座標
	objsize 150, 20				; そこから右へいくつ、下へいくつとエリアを指定
	objimage 0, 233, 286, 233, 288, 233, 287	; その指定した範囲をオブジェクト(ボタン)とする
	button gosub "", *level

	pos 493, 307				; 左上の座標
	objsize 145, 20				; そこから右へいくつ、下へいくつとエリアを指定
	objimage 0, 493, 307, 493, 309, 493, 308	; その指定した範囲をオブジェクト(ボタン)とする
	button gosub "", *uneven

	pos 43, 328				; 左上の座標
	objsize 80, 20				; そこから右へいくつ、下へいくつとエリアを指定
	objimage 0, 43, 328, 43, 330, 43, 329	; その指定した範囲をオブジェクト(ボタン)とする
	button gosub "", *incline

;------------------------------------------------------------------
; 下部に、その他のボタンを配置
objimage -1					; objimage命令をデフォルトに戻す(buttonをデフォルトに)

*listen
	pos 580, 600
	button gosub "Listen", *narration

*stopspeech

	button gosub "Stop", *tomare

*Quit
	
	button "Quit", *owari
	
	pos 0, 480
	mes " Notes ----------------------------------------------------------------"
	


;-------------------------------------------------------------------------
stop

*owari
	end

; -------------------------------- sub ---------------------------------------

*tomare
	mmstop
return


*narration
	mmplay 0
return

;-----具体的な注

*mechanics
	mmplay 1
	pos 10, 510
	mes "mechanics = 修理工"
	
	await 3000
	pos 10, 510
	picload "white.jpg", 1
return

*curiosity
	mmplay 2
	pos 10, 510
	mes "Curiosity rover = NASAの火星探索車 Curiosity"
	
	gmode 1, 300, 168				; モード1でメモリ間コピー, x幅ドット, y幅
	gcopy 2, 0, 30, 300, 168			; ウィンドウ番号, x座標, y座標, x幅ドット, y幅
									; 2番のバッファーがジョージアの画像
	
	wait 300
	pos 10, 510
	picload "white.jpg", 1
return

*algorithm
	mmplay 3
	pos 10, 510
	mes "algorithm = アルゴリズム、計算処理方法"
	
	wait 300
	pos 10, 510
	picload "white.jpg", 1
return

*traction
	mmplay 4
	pos 10, 510
	mes "traction control = 駆動制御機構"
	
	wait 300
	pos 10, 510
	picload "white.jpg", 1
return

*jet
	mmplay 5
	pos 10, 510
	mes "Jet Propulsion Laboratory = ジェット推進研究所"
	
	wait 300
	pos 10, 510
	picload "white.jpg", 1
return

*pasadena
	mmplay 6
	pos 10, 510
	mes "Pasadena = ロサンジェルス北東の都市"
	
	gmode 1, 269, 188				; モード1でメモリ間コピー, x幅ドット, y幅
	gcopy 3, 0, 30, 269, 188			; ウィンドウ番号, x座標, y座標, x幅ドット, y幅
									; 3番のバッファーがジョージアの画像
	
	wait 300
	pos 10, 510
	picload "white.jpg", 1
return

*extensive
	mmplay 7
	pos 10, 510
	mes "extensive testing = 広範囲にわたるテスト実施"
	
	wait 300
	pos 10, 510
	picload "white.jpg", 1
return

*signs
	mmplay 8
	pos 10, 510
	mes "signs of wear = 磨り減った兆候、wear = 疲弊"
	
	wait 300
	pos 10, 510
	picload "white.jpg", 1
return

*rugged
	mmplay 9
	pos 10, 510
	mes "rugged = ギザギザの"
	
	wait 300
	pos 10, 510
	picload "white.jpg", 1
return

*level
	mmplay 10
	pos 10, 510
	mes "on level ground = 水平の地面では"
	
	wait 300
	pos 10, 510
	picload "white.jpg", 1
return

*uneven
	mmplay 11
	pos 10, 510
	mes "uneven terrain = 不整地"
	
	wait 300
	pos 10, 510
	picload "white.jpg", 1
return

*incline
	mmplay 12
	pos 10, 510
	mes "incline = 勾配"
	
	wait 300
	pos 10, 510
	picload "white.jpg", 1
return

; End of Script


 I Have a Dream

IHaveADream1.hsp(7)

; I Have a Dream 1

; copyleft 2017-07-11 sugiura@nagoya-u.jp

; テキストを画像として読み込んでおいて、
; 文中の語句(のエリア)を指定して、注を出す。

;-----------------------------------------------------------------------------

;--------------------------------------------------------------------------------------
; 注に使う音声を読み込んで番号をつけておく

	mmload "georgia.mp3", 0
	mmload "mississippi.mp3", 1
	mmload "sweltering.mp3", 2
	mmload "oppression.mp3", 3

;--------------------------------------
	mmload "IHaveADream.mp3", 30
	
;------------------------------------------------------------------------------

	buffer 1					; 画像を事前に読み込んでおく場所の番号
	picload "IHaveADream.png"		; 画像を読み込んで、bufferに入れておく

;----------------------------------
; 注に使う画像に番号をつけていく

	buffer 2
	picload "georgia.jpg"
	
	
	buffer 3
	picload "mississippi.jpg"
	

	
;--------------------------------------
	buffer 30
	picload "king.jpg"
	
;-------------------------------------------------------------------------------
	screen 0,640,640			; ウインドウの初期化 0番、ウインドウの大きさの指定
								; bufferを使って画像を読み込んだときは、明示的にウィンドウを指定する


;------------------------------------------
*main
; テキスト全体を表示

	gmode 0, 640, 480			; 表示モードと大きさ指定
	pos 0,0						; 左上角から、
	gcopy 1,0,0					; バッファ1の画像を表示
	
	
;------------------------------------------
; 一つ目のボタン:一行目 Georgia

	pos 436, 29				; ボタンの位置
	objsize 68, 24				; ボタンにする画像のサイズ(大きな画像を読み込んでおいて、その一部を
								;  ボタンとして使用することもできる。)
								; ボタンの位置とサイズで、ボタンの位置と大きさを指定することになる
	
	objimage 1, 436, 29, 436, 29, 436, 29	; ボタン画像の指定をする。
								; 最初の番号が buffer番号
								; 次の数字の組み合わせが、表示する画像の中のボタンの左上の位置
								; その次の数字の組み合わせが、ボタンを押したときの位置(省略可)
								; 最後の数字の組み合わせが、ボタンの上にマウスが来たときの位置(省略可)
								
	button gosub "", *georgia		; ボタン命令で、上で設定した画像がボタンとして使われる。
;-----------------------------------------
; 二つ目のボタン:5行目 Mississippi

	pos 103, 154				; 左上の座標
	objsize 97, 24				; そこから右へいくつ、下へいくつとエリアを指定
	objimage 1, 103, 154, 103, 154, 103, 154	; その指定した範囲をオブジェクト(ボタン)とする
	button gosub "", *mississippi	; ボタンとしての機能、文字は表示させないので""とだけ。
	
;-----------------------------------------
; 3つ目のボタン:5行目 sweltering

	pos 270, 158				; 左上の座標
	objsize 100, 24				; そこから右へいくつ、下へいくつとエリアを指定
	objimage 1, 270, 158, 270, 158, 270, 158	; その指定した範囲をオブジェクト(ボタン)とする
	button gosub "", *sweltering	; ボタンとしての機能、文字は表示させないので""とだけ。

;-----------------------------------------
; 4つ目のボタン:6行目 sweltering

	pos 116, 190				; 左上の座標
	objsize 100, 24				; そこから右へいくつ、下へいくつとエリアを指定
	objimage 1, 116, 190, 116, 190, 116, 190	; その指定した範囲をオブジェクト(ボタン)とする
	button gosub "", *sweltering	; ボタンとしての機能、文字は表示させないので""とだけ。

;-----------------------------------------
; 五つ目のボタン:6行目 oppression

	pos 352, 190				; 左上の座標
	objsize 100, 24				; そこから右へいくつ、下へいくつとエリアを指定
	objimage 1, 352, 190, 352, 190, 352, 190	; その指定した範囲をオブジェクト(ボタン)とする
	button gosub "", *oppression	; ボタンとしての機能、文字は表示させないので""とだけ。



;------------------------------------------------------------------
; 下部に、その他のボタンを配置
objimage -1					; objimage命令をデフォルトに戻す(buttonをデフォルトに)

*stopspeech
	pos 520, 480
	button gosub "stop", *tomare

*Quit
	
	pos 380, 440
	button "Quit", *owari
	
	pos 0, 480
	mes " Notes ----------------------------------------------------------------"
	
;-----------------------------------------
; キング牧師のスピーチのボタン:右下隅


	pos 500, 340					; 左上の座標
	gmode 1, 140, 140				; モード1(通常)で、コピーする大きさは 140 x 140
	gcopy 30, 0, 0, 140, 140		; キング牧師の画像は30番、左上 0x0から、140x140までを使う
	
	objsize 140, 140			; ボタンにするエリアのサイズを指定
	objimage 0, 500, 340, 500, 340, 500, 340	; その指定した範囲をオブジェクト(ボタン)とする
	button gosub "", *king	; ボタンとしての機能、文字は表示させないので""とだけ。
	

;-------------------------------------------------------------------------
	stop

*owari
	end

; -------------------------------- sub ---------------------------------------
*king
	mmplay 30
return

*tomare
	mmstop
return

*georgia
;	dialog "Georgia", 0
	mmplay 0
	pos 10, 510
	mes "ジョージア州です。"
	gmode 1, 125, 98				; モード1でメモリ間コピー, x幅ドット, y幅
	gcopy 2, 0, 0, 125, 98			; ウィンドウ番号, x座標, y座標, x幅ドット, y幅
									; 2番のバッファーがジョージアの画像
	await 4000
/*
	gmode 1, 640, 160
	gcopy 4, 0, 0, 640, 160		; ウィンドウ番号0番がメインウィンドウ
									; その 3010, 510という座標は何もない(白い)ところ
	redraw 1, 0, 500, 640, 160		; その白いところを取ってきて最初の部分を上書きする(で、消える)
*/
	
	pos 10, 510						; y軸500ピクセルより下が注釈部分
	picload "white.jpg", 1			; 注釈部分に白い画像を張り付けて、注を「消す」(見えないようにする)
	
	
return
	
*mississippi
	mmplay 1
	pos 10, 510
	mes "ミシシッピ州です。"
	
	gmode 1, 125, 98
	gcopy 3, 0, 0, 125, 98			; 3番のバッファーがミシシッピーの画像
	
	
	await 4000
	
	pos 10, 510
	picload "white.jpg", 1
return
	
	
*sweltering
	mmplay 2
	pos 10, 510
	mes "sweltering"
	mes "swelter の現在分詞形"
	mes "swelter = 暑くて汗をかく、うだる"
	
	await 3000
	pos 10, 510
	picload "white.jpg", 1
return


*oppression
	mmplay 3
	pos 10, 510
	mes "oppression = 抑圧"
	
	await 3000
	pos 10, 510
	picload "white.jpg", 1
return
	
; End of Script