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


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0324
Recompressed文字の3色グラデーションのやり方5解決


Recompressed

リンク

2013/3/24(Sun) 21:19:47|NO.53221

Recompressedと申します。
文字に中間色を含む3色のグラデーションをつけたいと思っています。
そこで、colorで色をつけてmesで色つき文字を表示するような感じで、

3色を指定して、
gcolor 30,70,30,70,30,30,30,30,70
グラデーション表示
gmes "gradation"

できるようなモジュールを作成したいと思っているのですが、いろいろ調べてみても、2色のグラデーションに関する情報しかなく、困っています;;

どなたかサンプルを提示して頂けないでしょうか..?
他力本願になってしまいすいません..
ある程度理解できれば自分なりに試行錯誤してみようと思ってます

ちなみにこんな感じのグラデーションです↓
http://uploda.cc/img/img514eeb610ba3e.jpg



この記事に返信する


YSR

リンク

2013/3/24(Sun) 22:18:26|NO.53225

なんか既出の手法でなんとかなる(gmode 7を使う)気がするんだけどな……
まあ、とりあえず作ってみた。コードの意味は自力で解読してくれ。

dim gcolor_,3,3 ;gcolor命令用に予約 #define fontset font msgothic,99 ;ここは好みで弄ってください #define gmes_id@ 99 ; #module #deffunc gcolor int r1,int g1,int b1,int r2,int g2,int b2,int r3,int g3,int b3 gcolor_@.0.0=r1,g1,b1 gcolor_@.0.1=r2,g2,b2 gcolor_@.0.2=r3,g3,b3 return #deffunc gmes str string id_tmp=ginfo_act cx_tmp=ginfo_cx cy_tmp=ginfo_cy gcolor_1=(gcolor_@.0.0<<16)+(gcolor_@.1.0<<8)+gcolor_@.2.0 gcolor_2=(gcolor_@.0.1<<16)+(gcolor_@.1.1<<8)+gcolor_@.2.1 gcolor_3=(gcolor_@.0.2<<16)+(gcolor_@.1.2<<8)+gcolor_@.2.2 buffer gmes_id@ ;gmes_id@で指定した画面IDはgmes命令用に予約 fontset@ :mes string mesx=ginfo_mesx :mesy=ginfo_mesy buffer gmes_id@,mesx*2,mesy*2 title "ID1" :boxf gradf 0,0,mesx,mesy/2,1,gcolor_1,gcolor_2 gradf 0,mesy/2,mesx,mesy-mesy/2,1,gcolor_2,gcolor_3 fontset@ :color 255,255,255 :pos mesx,0 :mes string pos 0,mesy :gmode 7,mesx,mesy pos 0,mesy :gcopy gmes_id@,0,0,mesx,mesy gsel id_tmp,2 pos cx_tmp,cy_tmp :gmode 2 :gcopy gmes_id@,0,mesy,mesx,mesy return #global color 128,128,128 :boxf gcolor 0,255,0,255,0,0,0,0,255 pos 100,50 :gmes "gradation" stop



暇人

リンク

2013/3/24(Sun) 23:57:10|NO.53234

アンチエリアスを残すなら
17行目からreturnまで

screen gmes_id@ ;gmes_id@で指定した画面IDはgmes命令用に予約(何やってるか分かり安いようにscreen) fontset@ :mes string mesx=ginfo_mesx :mesy=ginfo_mesy screen gmes_id@,mesx*2,mesy title "ID1" :boxf gradf 0,0,mesx,mesy/2,1,gcolor_1,gcolor_2 gradf 0,mesy/2,mesx,mesy-mesy/2,1,gcolor_2,gcolor_3 fontset@ :color 255,255,255 :pos mesx,0 :mes string gsel id_tmp,2 :gmode 7,mesx,mesy pos cx_tmp,cy_tmp :gcopy gmes_id@,0,0,mesx,mesy return
に変えてみる



Recompressed

リンク

2013/3/25(Mon) 00:16:52|NO.53236

gmesに変数を使うと"パラメータの型が違います"って怒られました...



暇人

リンク

2013/3/25(Mon) 00:30:45|NO.53238

> #deffunc gmes str string
を変更すれば良い


新規命令を登録する
#deffunc p1 p2 p3,…

var : 変数(配列なし)
array : 変数(配列あり)
str : 文字列



Recompressed

リンク

2013/3/25(Mon) 01:28:56|NO.53239

ありがとうございます、gmode 7にこんな使い道があるんですねΣ(゚д゚;)
(というかgmode 7についてあまり理解してなかったようです;;)
いろいろ弄ってみて試行錯誤してみます



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