ザビタン開発日記
2009 | 01
2008 | 01 | 02 | 06 | 12
2007 | 10 | 11 | 12
10月 14 (日曜日) 2007
14:42
関数化できんかな
 
さて先日背景にパターンを置きました。
こんどはウィンドゥだーーー!
と思ったのですが、そこでも今回のように一定のパターンを敷き詰める
形になりますね。うーん。今回は簡単なfor文でできたけど、ウィンドゥ
や飾りバーなどもその都度計算式を考えるってのも・・・・

そこで、背景埋め尽くしをputfontみたいに関数化できないかと思い、
ちょっとやってみます。(うまくできるかな〜???)

モデルになるのはすぐ上にあったboxfill8かなぁ。
この関数は

  1. vramの番地は?
  2. 画面のx方向の幅は?
  3. 塗る色は?
  4. 開始点のx,y座標は?
  5. 終了点の  〃

こういうパラマータがいる関数だよね?

同じような関数を妄想し、必要なパラメータを考える・・

  1. vramの番地は?
  2. 画面のx方向の幅は?
  3. パターンを格納している番地は?
  4. パターンのx幅、Y高は?
  5. 敷く積める場所の開始点、終了点

・・・とりあえずこんなところかな?
graphic.cの下辺りにとりあえず置いてみて、init_screen8から呼んでみよう。


void ptboxfill8(char *vram, int xsize, int ysize){
int y2,x2;
for (y2=0; y2 <= ysize; y2=y2+4) {
if (y2 % 8 == 0){
x2=1;
}
else{
x2=3;
}
for(x2; x2 <=xsize; x2=x2+3){
vram[y2 * xsize + x2] = 0;
}
}

return;
}

・・・おぉ! うまくいったぞ!??
今はこんなふうに呼んでいるけど

ptboxfill8(vram,x,y);



static char *ptn[8][8] = {
"........",
"........",
"........",
"........",
"........",
"........",
"........",
"........"
};
ptboxfill8(vram,x,y,ptn);

こんなパターンで呼べないかなぁ。えとえと・・・・



あっれぇ〜クソ! 配列を渡すのってポインタじゃないのかな・・・
こんな基礎的な所で引っかかる俺って・・・・orz

・・・ん? まてよ??






 
30日を過ぎたBlogにはコメントできません。
10月 13 (土曜日) 2007
22:15
背景パターン
 
・・・こうしてみますた!








void init_screen8(char *vram, int x, int y)
{
boxfill8(vram, x, COL8_FFFFFF, 0, 0, x - 1, y - 1);

int y2,x2;
for (y2=0; y2 <= y; y2=y2+2) {
for(x2=0; x2 <=x; x2=x2+2){
vram[y2 * x + x2] = 0;
}
}
:
:


・・・うーん・・・網目模様にはなったけど、なんかちょっと
色気ないなぁ・・・・


もうちょっとイジってみてと・・・・・






int y2,x2;
for (y2=0; y2 <= y; y2=y2+4) {
if (y2 % 8 == 0){
x2=1;
}
else{
x2=3;
}

for(x2; x2 <=x; x2=x2+3){
vram[y2 * x + x2] = 0;
}








こうなりますたぁ!!! (^^)
 
30日を過ぎたBlogにはコメントできません。
16:11
まずは見た目
 
どっから手を入れていこうかっていうと・・・

ズバリ! 見た目!(笑

まあ復習と練習を兼ねてまずはそこいらへんからですな。

画面が広過ぎ


ウチのマシンだと、QEMUのVESAが思いっきり効きすぎちゃって
大きくなりすぎなんだよねぇ。800x600くらいがちょうどよさそう。
えーっと。画面の広さを定義してるのが・・・

/haribote/asmhead.nas で行われている。(P280辺り)

VBEMODE EQU を 0x103 (800x600x8bitカラー)に変更〜。

マウスポインタがちょっと・・・


マウスポインタをもうすこしカコヨクしたいなぁ・・・
えっと、マウスポインタは・・・
graphic.c で行われてるね。

"**************..",
"*OOOOOOOOOOO*...",
"*OOOOOOOOOO*....",
"*OOOOOOOOO*.....",
"*OOOOOOOO*......",
"*OOOOOOO*.......",
"*OOOOOOO*.......",
"*OOOOOOOO*......",
"*OOOO**OOO*.....",
"*OOO*..*OOO*....",
"*OO*....*OOO*...",
"*O*......*OOO*..",
"**........*OOO*.",
"*..........*OOO*",
"............*OO*",
".............***"


オリジナルはこうだけど、これを


"*...............",
"*O*.............",
"*OO*............",
"*OOO*...........",
"*OOOO*..........",
"*OOOOO*.........",
"*OOOOOO*........",
"*OOOOOOO*.......",
"*OOOOOOOO*......",
"*OOOOO*****.....",
"*OO*OO*.........",
"*O*.*OO*........",
"**..*OO*........",
"*....*OO*.......",
".....*OO*.......",
"......**........"


こうしますた!!

壁紙?をold Mac風? に・・・


背景。Win95風の単色カラーですが、これをパターンで塗りつぶしてみよう。

背景の緑の部分もシートとして管理されてたはずだよね?
ええと・・・どこだったかな??

あったあった。bootpack.cからinit_screen8をコールしてるね。これが
背景やニセタスクバーの描画をしている。
init_screen8はgraphic.c内にあるからここを書き換えよう。
一番最初の行のboxfill8でズドーンと背景を塗っている。まずは

boxfill8(vram, x, COL8_FFFFFF, 0, 0, x - 1, y - 29);

こんなことして背景を真っ白に。
で、Mac風のパターンで塗りつぶそう。
 
30日を過ぎたBlogにはコメントできません。

Referer  (10)
12:23
ツール類更新
 
えーっと。たしかz_tools内のツール類って、本発売の後に
いくつか更新されてなかったっけ?
さっそくチェック・・・
 
30日を過ぎたBlogにはコメントできません。
01:34
開発開始!
 
さてさて〜。
そんなわけで、THE-BBL OSの開発とまいりましょう。

OS自作本の最終形。harib27fをベースに少しづつ改造してゆこうと。

うーむ。そーいえばBBLって、SF.jpにアカウントもらってるんだよ
なぁ。どうしよう。いい機会だし、ちょっとだけバージョン管理機構
の活用にチャレンジしてみようかなぁ。ベイサイド氏もかなり
便利だと言ってたし・・・。

 
30日を過ぎたBlogにはコメントできません。

Referer  (1)
1 2 3 4 5 6 (7) » 

PopnupBlog V3 Denali created by Bluemoon inc.