ウソボスイメージ ver.1.1

DENZIさんがウソザナ用のエフェクトを作ってくれたので、早速ウソボスに炎を吐かせてみました。


適当なフォルダに次のファイルを用意し、HSPでusoboss.hspを実行してみて下さい。

  • common.hsp (ここからゲット)
  • usoboss.hsp (↓からゲット)テストスクリプト
  • Xana_tile081213-1.PNGDENZI部屋さんのところからゲット) ※XANADU風タイル(マップ)をbmp保存して下さい
  • Xana_tile081213-2.PNGDENZI部屋さんのところからゲット) ※XANADU風タイル(敵キャラ)をbmp保存して下さい
  • Xana_tile091129-2.PNGDENZI部屋さんのところからゲット) ※XANADU風タイル(ステータス、他)をbmp保存して下さい

うまく起動するとこんな画面でウソボスが炎を吐きます。

  • 一応、ウソボスはアニメーションします。
  • SPACEキーで炎を放射します。(いまいちですが、ランダムで3段階の放射角度に変わります)


今回のスクリプトも画面イメージを見たかっただけなので、コメント無しでソースも汚いです。
しかも、セコ技で100行以内の短いものにしています。(ますます見にくい><)
ですが、放射ロジックを改良したので前回よりもカッコよく見えます。


DENZIさん、ウソザナ用エフェクトセットを作ってくれてありがとうございました。
次回は、自キャラ用のエフェクトに挑戦しようかと考えています。

usoboss.hsp

;
; プログラム  :「ウソボス」を作ってみる
;
; 作成     :ふじぽん
;
; Copyright   :http://d.hatena.ne.jp/fujiponXP
;
; 利用素材   :
;
;     □ドット絵   :DENZI部屋(http://www3.wind.ne.jp/DENZI/diary/)
;                     タイトル  :XANADU風タイル(マップ)
;                     更新日    :2008年12月22日
;                     ファイル名:Xana_tile081213-1.PNG  ※BMP形式で利用します。
;
;                     タイトル  :XANADU風タイル(敵キャラ)
;                     更新日    :2008年12月22日
;                     ファイル名:Xana_tile081213-2.PNG  ※BMP形式で利用します。
;
;                     タイトル  :XANADU風タイル(ステータス、他)
;                     更新日    :2009年11月30日
;                     ファイル名:Xana_tile091129-2.PNG  ※BMP形式で利用します。
;
; 変更履歴
;  ver.1.0 2009/11/27 新規作成
;  ver.1.1 2009/12/01 炎をXANADU風タイル(ステータス、他)に変更、スペースキーで放射するように変更
;

; ライセンスに関する表示
#include "common.hsp"
about_lisence

#module m_fire x, y, pt, zoom, life

	#modinit int px, int py, double pzoom
		x = px:	y = py: life = 10: zoom = pzoom
		return

	#modcfunc m_fireDraw
		gsel 0: color 0,133,111: gmode 4,32,32,255
		pos x, y: celput 2, 13+pt, 1.0*zoom, 1.0*zoom, 6.28*45/360
		pt = (pt+1) \ 3: life--
		return life
#global

#define cs 32
#define w  14
#define h  7
#define d  (628/8)
#define z  0.5

screen 0, w*cs, h*cs: title "ウソボス"
celload "Xana_tile091129-2.bmp", 2, 0: celdiv 2,32  ,32  ,16,16
celload "Xana_tile081213-2.bmp", 3, 0: celdiv 3,32*3,32*3, 0, 0
buffer 4:picload "Xana_tile081213-1.bmp"

randomize
gsel 0: posx=10*cs: posy=4*cs: ho=2
newmod fire, m_fire, 0, 0, 0

*main
	redraw 0: gmode 0:pos 0, 0: gcopy 4,0,14*cs, 14*cs, 7*cs
	color 0,143,122:gmode 4,32,32,255
	pos posx, posy: celput 3, 37+m_pt(pt), 1, 1, 0

	if f {
		df = 10.0 - f: f--
		newmod fire, m_fire, posx-(df*df), posy+(df*df/ho)+cs, limitf(df*df/50, 0.2, 4.0)
	}  else {
		stick key,16
		if key&16 : f=10: ho=rnd(3)+1
	}

	foreach fire
		ret = m_fireDraw(fire.cnt)
		if ret < 1 : delmod fire.cnt
	loop

	redraw 1: await 80
	pt=(pt+1)\4
	goto *main

#defcfunc m_pt int p
	ret=p
	if p>2 : ret=1
	return ret