--.--
--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

09.26
Sat
Rainmeterの自作スキン用に作った背景画像をうp。
投稿上限サイズの2MBを超えていたので、以下サイトで圧縮してあります。
そんなに変わらないけれど、圧縮してないものはPixivにあります。
→改めて比較したらちょっときらめき度合いがさがってます。そのうち未圧縮版をサイトにぶんなげときます。
→試しにJPGにしてみたらそんなに劣化せずに済んだので、JPG置いときます。

PNG圧縮>
https://tinypng.com/

Pixiv>
宇宙ぽい背景 | くらきゆえ [pixiv] http://www.pixiv.net/member_illust.php?mode=medium&illust_id=52606159

参考にさせて頂いた記事>
http://haraita9283.blog98.fc2.com/blog-entry-152.html
http://alphasis.info/2010/10/stars-in-the-sky/

space01.jpg



スポンサーサイト
comment 0 trackback 0
09.22
Tue
*2015/09/22 13:16 ブクマ数がずれてるぽいので要素の順番を入れ替えたコードに差し替えました。

久しぶりの投稿だけどゲーム製作ではないです……
久々にRainmeterのスキン自作に手を出したのでそのメモを。

Rainmeter で.xmlのRSSを表示させるだけなら、公式サイトのサンプルコードコピペでそのままいけます。
RSS Feed Tutorial - Rainmeter Tips & Tricks

けれど今回表示したかったはてなブックマークのRSSは.rssなので、データ取得方法がちょっと違いました。
以下サンプルコードをベースに四苦八苦しながら作った.rss用のRSSプラグインです。
本来であれば、どのRSSフォーマットにも対応できるようにするのが正しいんでしょうが、
自作のスキンだし、そこらへんは追々暇があれば対応する予定。
最大5件表示して、オンマウスでツールチップにDescriptionとdate要素を表示するようにしてあります。

20150922_1.png



-----------------------------------------------------------------------
[Rainmeter]
Update=1000
DynamicWindowSize=1
Backgroundmode=1

[Variables]
FontColor=255,255,255,255
Item=.*<title>(.*)</title>.*<link>(.*)</link>.*<description>(.*)</description>.*<dc:date>(.*)</dc:date>.*<hatena:bookmarkcount>(.*)</hatena:bookmarkcount>

[MeasureSite]
Measure=Plugin
Plugin=WebParser
URL=http://b.hatena.ne.jp/hotentry/it.rss
RegExp=(?siU)<title>(.*)</title>.*<link>(.*)</link>.*<description>(.*)</description>#Item##Item##Item##Item##Item#
;Site info


;-------Site info-------
[MeasureSiteTitle]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=1
DecodeCharacterReference=1
RegExpSubstitute=1
Substitute=#Sub#

[MeasureSiteLink]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=2

[MeasureSiteDescription]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=3


;-------Item1 info-------

[MeasureItem1Title]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=4

[MeasureItem1Link]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=5

[MeasureItem1Description]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=6

[MeasureItem1Date]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=7

[MeasureItem1Bookmark]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=8


;-------Item2 info-------

[MeasureItem2Title]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=9

[MeasureItem2Link]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=10

[MeasureItem2Description]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=11

[MeasureItem2Date]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=12

[MeasureItem2Bookmark]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=13

;-------Item3 info-------

[MeasureItem3Title]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=14

[MeasureItem3Link]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=15

[MeasureItem3Description]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=16

[MeasureItem3Date]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=17

[MeasureItem3Bookmark]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=18

;-------Item4 info-------

[MeasureItem4Title]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=19

[MeasureItem4Link]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=20

[MeasureItem4Description]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=21

[MeasureItem4Date]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=22

[MeasureItem4Bookmark]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=23

;-------Item5 info-------

[MeasureItem5Title]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=24

[MeasureItem5Link]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=25

[MeasureItem5Description]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=26

[MeasureItem5Date]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=27

[MeasureItem5Bookmark]
Measure=Plugin
Plugin=WebParser
URL=[MeasureSite]
StringIndex=28


;-------MeterStyles-------
[TextStyle]
X=5
Y=3R
W=390
H=40
FontFace=Segoe UI
FontColor=255,255,255,255
SolidColor=0,0,0,1
ClipString=1
AntiAlias=1
ToolTipWidth=400

;-------Meters-------

[MeterBackground]
Meter=Image
W=400
H=300
SolidColor=50,50,50,150
[MeterSite]
Meter=String
MeasureName=MeasureSiteTitle
MeterStyle=TextStyle
H=20
Y=5
FontColor=196,245,184,255
StringStyle=Bold
LeftMouseUpAction=["[MeasureSiteLink]"]
ToolTipText=%1#CRLF#[MeasureSiteDescription]
DynamicVariables=1

[MeterItem1]
Meter=String
MeasureName=MeasureItem1Title
Text=[MeasureItem1Bookmark]bm | [MeasureItem1Title]
MeterStyle=TextStyle
Y=10R
LeftMouseUpAction=["[MeasureItem1Link]"]
ToolTipText=[MeasureItem1Description]#CRLF#[MeasureItem1Date]
DynamicVariables=1

[MeterItem2]
Meter=String
MeasureName=MeasureItem2Title
Text=[MeasureItem2Bookmark]bm | [MeasureItem2Title]
MeterStyle=TextStyle
Y=10R
LeftMouseUpAction=["[MeasureItem2Link]"]
ToolTipText=[MeasureItem2Description]#CRLF#[MeasureItem2Date]
DynamicVariables=1

[MeterItem3]
Meter=String
MeasureName=MeasureItem3Title
Text=[MeasureItem3Bookmark]bm | [MeasureItem3Title]
MeterStyle=TextStyle
Y=10R
LeftMouseUpAction=["[MeasureItem3Link]"]
ToolTipText=[MeasureItem3Description]#CRLF#[MeasureItem3Date]
DynamicVariables=1

[MeterItem4]
Meter=String
MeasureName=MeasureItem4Title
Text=[MeasureItem4Bookmark]bm | [MeasureItem4Title]
MeterStyle=TextStyle
Y=10R
LeftMouseUpAction=["[MeasureItem4Link]"]
ToolTipText=[MeasureItem4Description]#CRLF#[MeasureItem4Date]
DynamicVariables=1

[MeterItem5]
Meter=String
MeasureName=MeasureItem5Title
Text=[MeasureItem5Bookmark]bm | [MeasureItem5Title]
MeterStyle=TextStyle
Y=10R
LeftMouseUpAction=["[MeasureItem5Link]"]
ToolTipText=[MeasureItem5Description]#CRLF#[MeasureItem5Date]
DynamicVariables=1
-----------------------------------------------------------------------


comment 0 trackback 0
10.04
Sat
久しぶりの投稿だ……
先月はちょっと稼動高めだったのであまり記憶がない。
むしろ人生最高レベルの黒歴史作ってしまったので思い出したくない。

さて、今日は可愛いフォントを見かけたので覚書き。

ほのかフォント

こんなに可愛くて可読性高いいいフォントなのにフリーで商業利用かとか巣晴らしすぐる。
ただ、ゲーム同梱OKかざっと見た限り記載されてないので、問い合わせしてみないといけないいすね。
同梱だめでも素材の文字入れとかには使えるので是非活用させて頂きたいですね。

--------------------------------------------------
<追記>
明朝の方はIPAフォントの再配布についての規約を守れば一応ゲーム同梱OKぽいですね。
IPAフォントの再配布について
--------------------------------------------------

今月急な引越しが決まったので多分更新はきっと出来ません。
落ち着いたらまたゲーム製作再開します。


comment 0 trackback 0
08.08
Fri
*2014/08/08 01:31 よくよくみたら酷い計算間違いしてたので修正しました……
どう酷かったのかは自分だけ知ってればいいのです……
*2014/08/09 01:27 新旧コードが混じっている上に根本的に間違ってたので修正中…
*2014/08/09 22:27 多分直った…… 直ってなかったらこっそり教えて下さい……

独自の暦を簡単に表示するために関数ちょちょっと作ろうとしたらすごく難しかった……
TJS2って、RIGHT関数的なの、ないんだね……
日付的に「YYY/MM/DD」を実現しようとしたけど、ゼロパディングの実装に至るまでが時間かかってしまいました。
まぁ、結果的に文字列を書式文字列化? することでフォーマット指定できたんで実装自体は簡単でした。
フォーマットにゼロパディングできるパラメータがない言語だと、「RIGHT("0"+ 月数,2)」で対応してたので、
今回もその方法でやろうとしたら無駄な作業だったみたいで、普通にゼロパディングできる書式がありました。
「書式文字列化」って言葉はリファレンスにもあったんですが、なんのこっちゃ?? と理解できませんでした(^p^)
んで、「TJS2 ゼロパディング」で検索したら、わかりやすく解説されてた記事を発見!
ありがたく参考にさせてもらい、無事実装できました。
つか、「書式文字列化」ってそのままの意味だったんですね……
リファレンスはちゃんとわかりやすく書いてくれてたね……
もっとちゃんとリファレンス読み込みせねばね。

で! ゲーム内で独自の暦を使いたかったので、以下の既定事項を元に暦を計算できるようにしました。
 ・一ヶ月 = 32日
 ・一年 = 11ヶ月 = 352日
 ・暦は352年毎に変わる
 ・ゲーム開始日はXX暦352年5月10日

以下例によって雰囲気だけ感じてください的コードです。

<参考文献等>
空想曲線」様 > 「ステータスを表示してみよう
「TJS2 リファレンス」 > 「sprintf」
------------------------------------------
'初期値----------------
f.passedDays = 138; // 1/1を1日目とすると 5/10 は138日目
----------------------

function fncGetDate(){
// 'デフォルトの日付:アルファルファ暦352年5月10日;
dateDef = 123904; //352*352
dateY = ((int) f.passedDays + dateDef) \ 352;
dateM = ((f.passedDays + 32) \ 32) % 11;
dateD = f.passedDays % 32;
return dateY + "/" + '%02d'.sprintf(dateM) + "/" + '%02d'.sprintf(dateD);
}

------------------------------------------


      ↓ダイナミックに計算間違ってたので修正↓

'初期値等----------------
var DNUM = 32;               // ひと月の日数
var MNUM = 11;               // 一年の月数
var YEARDAYS = DNUM * MNUM;    // 一年の日数
f.passedDays = 1;          // ゲーム内経過日数
------------------------

function fncGetDate(){
// デフォルトの日付:アルファルファ暦352年5月10日;
dateDef = YEARDAYS * 351 + 137;
dayCnt = dateDef + f.passedDays;
dayCnt = (dayCnt > YEARDAYS * YEARDAYS) ? dayCnt - YEARDAYS * YEARDAYS :dayCnt;
dateY = (dayCnt + YEARDAYS - 1) \ YEARDAYS;
dateMtmp = (dayCnt > YEARDAYS) ? dayCnt - YEARDAYS * (dateY - 1) : dayCnt;
dateM = (dateMtmp + DNUM -1) \ DNUM ;
dateDtmp = (dayCnt <= DNUM) ? dayCnt : dayCnt % DNUM;
dateD = (dateDtmp != 0) ? dateDtmp : DNUM;
return '%03d'.sprintf(dateY) + "/" + '%02d'.sprintf(dateM) + "/" + '%02d'.sprintf(dateD);
}

------------------------------------------
あとは一日の終りに「f.passedDays」に1足していく感じです。
ようやく修正終わった…… 楽しかったけど、つくづく数学苦手だなと思いました……
もっと綺麗な計算式がありそうだけど、数学で14点取った人間にはこれが限界です……
補足として「'%02'.sprintf(dateD)」だとエラーになりました。C言語のフォーマット指定よくわかりません。

20140808




comment 0 trackback 0
06.12
Thu
今日はサイトデザインやろうとしたらもオンゲののっそい大規模更新が走ったので、
なるべく回線に負荷かけないようローカル作業をとゲーム製作に。
そんなに時間は取れないので、簡単なのをちょろっとやろうかと。
んで、パネルのうちの一つ、PCアクティビティ系のパネルに着手。
そういや所持金のところカンマ区切り表示しなきゃいけないけど、
吉里吉里で正規表現系の関数なんかあんのかなーと調べてみたら
ちゃんとカンマ区切りされる関数用意されてました。素敵。

適当なメッセージレイヤに書いてみました。
例によって雰囲気だけのソースコード。

<参考文献等>
KAG3 ドキュメント」 > 「number_format」
------------------------------------------
var cash = number_format("1000000") + " G";
pcInfoLay.drawText(0, 60, cash, "0xffffff");
------------------------------------------

20140612

そうそう、このコード書いてて変数管理のことを思い出した……
はぁ。変数名考えるのも管理するのも面倒だ……
テンション高い時は楽しいんだけどなぁ。

ようやくオンゲのアップデートが終わったので寝れるー!

comment 0 trackback 0
back-to-top
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。