Ignore:
Timestamp:
Aug 23, 2017, 9:27:43 AM (7 years ago)
Author:
coas-nagasima
Message:

文字コードを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sPanCake.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    11/*
    2  * PanCake関連
     2 * PanCake関連
    33 *
    44 * Copyright (c) 2016 Wakayama.rb Ruby Board developers
     
    2727
    2828/******************************************************/
    29 /* 画面を消去: PanCake.clear*/
     29/* 画面を消去: PanCake.clear*/
    3030/*  PanCake.clear(cn)*/
    31 /*  cn: 色番号*/
     31/*  cn: 色番号*/
    3232/******************************************************/
    3333mrb_value mrb_pancake_Clear(mrb_state *mrb, mrb_value self)
     
    4444        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    4545
    46         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    47 }
    48 
    49 /******************************************************/
    50 /* 画面に線を引く: PanCake.line*/
     46        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     47}
     48
     49/******************************************************/
     50/* 画面に線を引く: PanCake.line*/
    5151/*  PanCake.line(x1,y1,x2,y2,cn)*/
    52 /*  (x1,y1)-(x2,y2)に線を引きます*/
    53 /*  cn: 色番号*/
     52/*  (x1,y1)-(x2,y2)に線を引きます*/
     53/*  cn: 色番号*/
    5454/******************************************************/
    5555mrb_value mrb_pancake_Line(mrb_state *mrb, mrb_value self)
     
    7474        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    7575
    76         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    77 }
    78 
    79 /******************************************************/
    80 /* 画面に円を描く: PanCake.circle*/
     76        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     77}
     78
     79/******************************************************/
     80/* 画面に円を描く: PanCake.circle*/
    8181/*  PanCake.circle(xc, yc, ra, cn)*/
    82 /*  (xc,yc)を中心に円を描く*/
    83 /*  ra: 半径*/
    84 /*  cn: 色番号*/
     82/*  (xc,yc)を中心に円を描く*/
     83/*  ra: 半径*/
     84/*  cn: 色番号*/
    8585/******************************************************/
    8686mrb_value mrb_pancake_Circle(mrb_state *mrb, mrb_value self)
     
    103103        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    104104
    105         return mrb_nil_value();                 /*戻り値は無しですよ。*/
     105        return mrb_nil_value();                 /*戻り値は無しですよ。*/
    106106}
    107107
    108108int hex2int(char s)
    109109{
    110         /* '0' から '9' の文字なら*/
     110        /* '0' から '9' の文字なら*/
    111111        if ('0' <= s && s <= '9') {
    112112                return(s - '0');
    113113        }
    114         /*'A' から 'F' の文字なら*/
     114        /*'A' から 'F' の文字なら*/
    115115        else if ('A' <= s && s <= 'F') {
    116116                return(s - 'A' + 10);
    117117        }
    118         /*'a' から 'f' の文字なら*/
     118        /*'a' から 'f' の文字なら*/
    119119        else if ('a' <= s && s <= 'f') {
    120120                return(s - 'a' + 10);
     
    125125
    126126/******************************************************/
    127 /* 画面に8x8の絵を描く: PanCake.stamp*/
     127/* 画面に8x8の絵を描く: PanCake.stamp*/
    128128/*  PanCake.stamp(px, py, tc, string)*/
    129 /*  px,py: 絵の左上座標*/
    130 /*  tc: 透明色*/
    131 /*  string: 16進数の文字列が64個*/
     129/*  px,py: 絵の左上座標*/
     130/*  tc: 透明色*/
     131/*  string: 16進数の文字列が64個*/
    132132/******************************************************/
    133133mrb_value mrb_pancake_Stamp(mrb_state *mrb, mrb_value self)
     
    155155        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    156156
    157         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    158 }
    159 
    160 /******************************************************/
    161 /* 画面に8x8の1色の絵を描く: PanCake.stamp1*/
     157        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     158}
     159
     160/******************************************************/
     161/* 画面に8x8の1色の絵を描く: PanCake.stamp1*/
    162162/*  PanCake.stamp1(px, py, cn, string)*/
    163 /*  px,py: 絵の左上座標*/
    164 /*  cn: 描く色*/
    165 /*  string: 16進数の文字列が16個*/
     163/*  px,py: 絵の左上座標*/
     164/*  cn: 描く色*/
     165/*  string: 16進数の文字列が16個*/
    166166/******************************************************/
    167167mrb_value mrb_pancake_Stamp1(mrb_state *mrb, mrb_value self)
     
    189189        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    190190
    191         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    192 }
    193 
    194 /******************************************************/
    195 /* 画面に組み込み画像を描く: PanCake.image*/
     191        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     192}
     193
     194/******************************************************/
     195/* 画面に組み込み画像を描く: PanCake.image*/
    196196/*  PanCake.image(num)*/
    197 /*  num: 組み込み画像の番号*/
     197/*  num: 組み込み画像の番号*/
    198198/******************************************************/
    199199mrb_value mrb_pancake_Image(mrb_state *mrb, mrb_value self)
     
    210210        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    211211
    212         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    213 }
    214 
    215 /******************************************************/
    216 /* ビデオ出力のON/OFF: PanCake.video*/
     212        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     213}
     214
     215/******************************************************/
     216/* ビデオ出力のON/OFF: PanCake.video*/
    217217/*  PanCake.video(sw)*/
    218 /*  sw: スイッチON/OFF[01/00]*/
     218/*  sw: スイッチON/OFF[01/00]*/
    219219/******************************************************/
    220220mrb_value mrb_pancake_Video(mrb_state *mrb, mrb_value self)
     
    231231        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    232232
    233         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    234 }
    235 
    236 /******************************************************/
    237 /* 4ch同時に音を鳴らす: PanCake.sound*/
     233        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     234}
     235
     236/******************************************************/
     237/* 4ch同時に音を鳴らす: PanCake.sound*/
    238238/*  PanCake.sound(o0, s0, o1, s1, o2, s2, o3, s3)*/
    239 /*  o0,o1,o2,o3: オクターブ(0~4~7)*/
    240 /*  s0,s1,s2,s3: 音程(0~b) eはノイズ音*/
    241 /*               HighBits4は音色(0~3)*/
    242 /*               éŸ³ã‚’消すのは FF*/
     239/*  o0,o1,o2,o3: オクターブ(0~4~7)*/
     240/*  s0,s1,s2,s3: 音程(0~b) eはノイズ音*/
     241/*               HighBits4は音色(0~3)*/
     242/*               音を消すのは FF*/
    243243/******************************************************/
    244244mrb_value mrb_pancake_Sound(mrb_state *mrb, mrb_value self)
     
    263263        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    264264
    265         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    266 }
    267 
    268 /******************************************************/
    269 /* 1ch音を鳴らす: PanCake.sound1*/
     265        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     266}
     267
     268/******************************************************/
     269/* 1ch音を鳴らす: PanCake.sound1*/
    270270/*  PanCake.sound1(cn, on, sn)*/
    271 /*  cn: チャネル*/
    272 /*  on: オクターブ(0~4~7)*/
    273 /*  sn: 音程(0~b) eはノイズ音*/
    274 /*      HighBits4は音色(0~3)*/
    275 /*      音を消すのは FF*/
     271/*  cn: チャネル*/
     272/*  on: オクターブ(0~4~7)*/
     273/*  sn: 音程(0~b) eはノイズ音*/
     274/*      HighBits4は音色(0~3)*/
     275/*      音を消すのは FF*/
    276276/******************************************************/
    277277mrb_value mrb_pancake_Sound1(mrb_state *mrb, mrb_value self)
     
    290290        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    291291
    292         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    293 }
    294 
    295 /******************************************************/
    296 /* 初期状æ
    297 ‹ã«ã™ã‚‹: PanCake.reset*/
     292        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     293}
     294
     295/******************************************************/
     296/* 初期状態にする: PanCake.reset*/
    298297/*  PanCake.reset()*/
    299298/******************************************************/
     
    306305        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    307306
    308         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    309 }
    310 
    311 /******************************************************/
    312 /* OUTポートに出力: PanCake.out*/
     307        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     308}
     309
     310/******************************************************/
     311/* OUTポートに出力: PanCake.out*/
    313312/*  PanCake.out(pf)*/
    314 /*  pf: HIGHにするポート番号を16進数で指定*/
     313/*  pf: HIGHにするポート番号を16進数で指定*/
    315314/******************************************************/
    316315mrb_value mrb_pancake_Out(mrb_state *mrb, mrb_value self)
     
    327326        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    328327
    329         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    330 }
    331 
    332 /******************************************************/
    333 /* スプライトを開始する: Sprite.start*/
     328        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     329}
     330
     331/******************************************************/
     332/* スプライトを開始する: Sprite.start*/
    334333/*  Sprite.start(num)*/
    335 /*  num: 背景に使う組み込み画像番号*/
    336 /*       èƒŒæ™¯ã‚’ベタ塗りにする場合は num のHighBitsを1にします。*/
    337 /*      スプライト処理を停止するには num を FF にします。*/
     334/*  num: 背景に使う組み込み画像番号*/
     335/*       背景をベタ塗りにする場合は num のHighBitsを1にします。*/
     336/*      スプライト処理を停止するには num を FF にします。*/
    338337/******************************************************/
    339338mrb_value mrb_pancake_Start(mrb_state *mrb, mrb_value self)
     
    350349        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    351350
    352         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    353 }
    354 
    355 /******************************************************/
    356 /* スプライトを作る: Sprite.create*/
     351        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     352}
     353
     354/******************************************************/
     355/* スプライトを作る: Sprite.create*/
    357356/*  Sprite.create(sn, si)*/
    358 /*  sn: スプライト番号 0~15*/
    359 /*  si: 組み込みスプライト画像番号*/
    360 /*      消すのは FF*/
     357/*  sn: スプライト番号 0~15*/
     358/*  si: 組み込みスプライト画像番号*/
     359/*      消すのは FF*/
    361360/******************************************************/
    362361mrb_value mrb_pancake_Create(mrb_state *mrb, mrb_value self)
     
    374373        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    375374
    376         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    377 }
    378 
    379 /******************************************************/
    380 /* スプライトの移動: Sprite.move*/
     375        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     376}
     377
     378/******************************************************/
     379/* スプライトの移動: Sprite.move*/
    381380/*  Sprite.move(sn, px,py)*/
    382 /*  sn: スプライト番号 0~15*/
    383 /*  px,py: 画面座標*/
     381/*  sn: スプライト番号 0~15*/
     382/*  px,py: 画面座標*/
    384383/******************************************************/
    385384mrb_value mrb_pancake_Move(mrb_state *mrb, mrb_value self)
     
    398397        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    399398
    400         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    401 }
    402 
    403 /******************************************************/
    404 /* 音楽再生する: Music.play*/
     399        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     400}
     401
     402/******************************************************/
     403/* 音楽再生する: Music.play*/
    405404/*  Music.play(sw)*/
    406405/*  sw: START/STOP[01/00]*/
     
    419418        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    420419
    421         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    422 }
    423 
    424 /******************************************************/
    425 /* C D E F G A B を0x0 ~ 0xBに置き換えます*/
     420        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     421}
     422
     423/******************************************************/
     424/* C D E F G A B を0x0 ~ 0xBに置き換えます*/
    426425/* C  D  E  F  G  A  B*/
    427426/* 0  2  4  5  7  9  B*/
     
    454453
    455454/******************************************************/
    456 /* MMLをサウンドchに登録する: Music.score*/
     455/* MMLをサウンドchに登録する: Music.score*/
    457456/*  Music.score(ch, pn, tt, string)*/
    458 /*  ch: チャンネル(00~03)*/
    459 /*  pn: 01:即再生、00:後で再生*/
    460 /*  tt: テンポ(0~F)+音色 [ex. 30 == テンポ3、音色0]*/
    461 /*  string: MML 64バイトまで*/
     457/*  ch: チャンネル(00~03)*/
     458/*  pn: 01:即再生、00:後で再生*/
     459/*  tt: テンポ(0~F)+音色 [ex. 30 == テンポ3、音色0]*/
     460/*  string: MML 64バイトまで*/
    462461/******************************************************/
    463462mrb_value mrb_pancake_Score(mrb_state *mrb, mrb_value self)
     
    539538        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    540539
    541         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    542 }
    543 
    544 /******************************************************/
    545 /* PanCakeで使うシリアルポート番号を指定: PanCake.serial*/
     540        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     541}
     542
     543/******************************************************/
     544/* PanCakeで使うシリアルポート番号を指定: PanCake.serial*/
    546545/*  PanCake.serial(num)*/
    547 /*  num: シリアルポート番号(1~3)*/
     546/*  num: シリアルポート番号(1~3)*/
    548547/******************************************************/
    549548mrb_value mrb_pancake_Serial(mrb_state *mrb, mrb_value self)
     
    560559        SerialNum = num;
    561560
    562         /*シリアル通信の初期化をします*/
     561        /*シリアル通信の初期化をします*/
    563562        if (serial[SerialNum] != 0) {
    564563                serial_free(serial[SerialNum]);
     
    567566
    568567        if(!portToPins(SCI_SCI0P2x, &txpin, &rxpin))
    569                 return mrb_nil_value();                 /*戻り値は無しですよ。*/
     568                return mrb_nil_value();                 /*戻り値は無しですよ。*/
    570569
    571570        serial[SerialNum] = mrb_malloc(mrb, sizeof(serial_t));
     
    573572        serial_baud(serial[SerialNum], PANCAKE_BAURATE);
    574573
    575         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    576 }
    577 
    578 /******************************************************/
    579 /* スプライトの左右反転: Sprite.flip*/
     574        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     575}
     576
     577/******************************************************/
     578/* スプライトの左右反転: Sprite.flip*/
    580579/*  Sprite.flip(sn, fs)*/
    581 /*  sn: スプライト番号 0~15*/
     580/*  sn: スプライト番号 0~15*/
    582581/*  fs: ON/OFF[01/00]*/
    583582/******************************************************/
     
    596595        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    597596
    598         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    599 }
    600 
    601 /******************************************************/
    602 /* スプライトの回転: Sprite.rotate*/
     597        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     598}
     599
     600/******************************************************/
     601/* スプライトの回転: Sprite.rotate*/
    603602/*  Sprite.rotate(sn, ra)*/
    604 /*  sn: スプライト番号 0~15*/
    605 /*  ra: 角度[0:0°,1:-90°,2:180°,3:90°]*/
     603/*  sn: スプライト番号 0~15*/
     604/*  ra: 角度[0:0°,1:-90°,2:180°,3:90°]*/
    606605/******************************************************/
    607606mrb_value mrb_pancake_Rotate(mrb_state *mrb, mrb_value self)
     
    619618        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    620619
    621         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    622 }
    623 
    624 /******************************************************/
    625 /* スプライト用8x8画像の定義: Sprite.user*/
     620        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     621}
     622
     623/******************************************************/
     624/* スプライト用8x8画像の定義: Sprite.user*/
    626625/*  Sprite.user(dn, tc, string)*/
    627 /*  dn: スプライトの定義番号 FD か FE*/
    628 /*  tc: 透明色*/
    629 /*  string: 16進数の文字列が64個(色の番号です)*/
     626/*  dn: スプライトの定義番号 FD か FE*/
     627/*  tc: 透明色*/
     628/*  string: 16進数の文字列が64個(色の番号です)*/
    630629/******************************************************/
    631630mrb_value mrb_pancake_User(mrb_state *mrb, mrb_value self)
     
    650649        serial_write(serial[SerialNum], (const unsigned char *)PanSend, PanSend[1]);
    651650
    652         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    653 }
    654 
    655 /******************************************************/
    656 /* ライブラリを定義します*/
     651        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     652}
     653
     654/******************************************************/
     655/* ライブラリを定義します*/
    657656/******************************************************/
    658657void pancake_Init(mrb_state *mrb)
Note: See TracChangeset for help on using the changeset viewer.