æèšã¯ãã¡ããè¯ãã®ã§ããããµã€ãå
šäœãããã§è©°ãŸã£ãŠããŸãã ãã£ãšé¢çœãããšãããå¿
èŠããããŸãã

ããã©ãã¯60ãã®ããŒã«ãèŠããŠããŸããïŒ ã¢ããã°ãäœæããŸããã-質åã«çããã¢ããªã±ãŒã·ã§ã³ã§ãã
çããäžããããŒã«å°ç³
ç§ãã¡ã ããããŒã«ãæã£ãŠããŸããããå°ç³ãã€ãŸãå°ç³:)
ããã«ã¯äœãå¿
èŠã§ããïŒ åçã®ãªã¹ããšä¹±æ°ãžã§ãã¬ãŒã¿ãŒã
ãŠã£ãããã£ã¢ã§åçã®ãªã¹ããååŸããŸãã é
åãäœæããåçãå
¥åããŸãã
static const char* messages[] = {"", " "," "," "," "," - "," "," ",""," - "," , "," "," "," "," "," "," - "," - "," "," ","",};
é åºã¯éèŠã§ã¯ãããŸããããšã«ããã©ã³ãã ã«éžæãããŸãã
åã®
ã¬ãã¹ã³ãšåãæ¹æ³ã§ããã°ã©ã ã®ã¡ã€ã³ãŠã£ã³ããŠãšããã¹ãã¬ã€ã€ãŒãäœæããŸãããå°ãã®éãã¯ãããŸããã
window_set_fullscreenïŒïŒé¢æ°ã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ã®ãããããŒãåé€ããŸãã 次ã®ããã«åŒã³åºãããŸãã
window_set_fullscreen(window, true);
æåã®åŒæ°ã¯ãããããŠã£ã³ããŠã®ååã2çªç®ã¯åŒæ°ã§ãããtrueã¯å
šç»é¢ãfalseã¯ããŒã§ãã 埮åŠ-ãã®é¢æ°ã¯window_stack_pushã®
åã«åŒã³åºãå¿
èŠããããŸããããããªããšãå¥è·¡ã¯èµ·ãããŸããã
次ã«ãä¹±æ°ãžã§ãã¬ãŒã¿ãŒãèŠãŠã¿ãŸãããã ãããè¡ãããã«ãååŒã³åºãã§ä¹±æ°ãè¿ã
randïŒïŒé¢æ°ããããŸãã ä»ã®ãœãããŠã§ã¢RNGãšåæ§ã«ãäœæ¥ãéå§ããåã«ä¹±æ°ã§åæåããå¿
èŠããããŸããããããªããšãéå§ãããã³ã«æ°åã®è¡ãç¹°ãè¿ãããŸãã ããã¯srandïŒïŒé¢æ°ã«ãã£ãŠè¡ãããŸãã ããšãã°ãSDKã«ã¯çŸåšã®æå»ã§åæåãããäŸããããŸãã ããã°ã©ã ã¯ãã€éå§ããããããããªãããããã®æéã¯æ¯åç°ãªããããããã¯ã¢ã€ãã¢ã®ãšã³ããããŒã®ååãªãœãŒã¹ã§ãã ãã®ããã«ããŸãïŒ
srand(time(NULL));
確ãã«ããžã§ãã¬ãŒã¿ãŒã¯ããªãå€ãã®æ°ãçæã§ããããã«ãªããŸãã-æããã«ç§ãã¡ãå¯èœãªçããæã£ãŠãã以äžã§ãã ãããã£ãŠããã®
ã¡ãã»ãŒãžã®æ§æ[randïŒïŒïŒ
21]ã䜿çšãããšã ïŒ
ã¯æŽæ°é€ç®ã®å°äœã§ãã ãžã§ãã¬ãŒã¿ã456ãè¿ãããããã21ã§é€ç®ãããæ®ãïŒ456-21 * 21ïŒ-15ãå¿ççªå·ãšããŠäœ¿çšããããšããŸãã 21ãè¶
ããããšã¯ã§ããŸããããã®å Žåãé€ç®ã®æ®ãã®éšåããŒãã«ãªãããã§ãã
äžèšã®ãã¹ãŠã1ã€ã®å
šäœã«çµåãããšã次ã®ãããªé¢æ°åŒã³åºããåŸãããŸãã
text_layer_set_text(text_layer, messages[rand() % 21]);
以äžããœãŒã¹å
šäœã§ãã
#include "pebble.h" Window *window; TextLayer *text_layer; static const char* messages[] = {"", " "," "," "," "," - "," "," ",""," - "," , "," "," "," "," "," "," - "," - "," "," ","",}; int main(void) { window = window_create(); window_set_background_color(window, GColorBlack); window_set_fullscreen(window, true); window_stack_push(window, true); text_layer = text_layer_create(GRect(1, 47, 142, 77)); text_layer_set_text_color(text_layer, GColorWhite); text_layer_set_background_color(text_layer, GColorClear); text_layer_set_font(text_layer, fonts_get_system_font(FONT_KEY_GOTHIC_24)); text_layer_set_text_alignment(text_layer, GTextAlignmentCenter); layer_add_child(window_get_root_layer(window), text_layer_get_layer(text_layer)); srand(time(NULL)); text_layer_set_text(text_layer, messages[rand() % 21]); app_event_loop(); text_layer_destroy(text_layer); window_destroy(window); }
ããã°ã©ã ã¯èµ·åæã«ã¡ãã»ãŒãžã衚瀺ããäœãããŸããã å¥ã®ã¡ãã»ãŒãžã衚瀺ããã«ã¯ãããã°ã©ã ãåèµ·åããå¿
èŠããããŸãã

次ã®ã¹ãããã¯ããã¿ã³ãã¯ãªãã¯ãããšãã«ã¡ãã»ãŒãžã衚瀺ããããšã§ãã
Pebble APIã§ã¯ãããµãã¹ã¯ãªãã·ã§ã³ããšããçšèªã¯ãã¡ã€ã³ã«ãŒãã§ã¯èµ·åãããªãããããã€ãã®ã¢ã¯ã·ã§ã³ïŒã¿ã€ããŒã®ãã§ãã¯ããã¿ã³ãæŒããªã©ïŒã®åŸã«èµ·åãããæ©èœãæå®ããããã«äœ¿çšãããŸãã ååã®ã¬ãã¹ã³ã§ã1ç§ã«1åç»é¢æŽæ°æ©èœãåŒã³åºãã¿ã€ããŒã«ãµã€ã³ã¢ããããããšãèŠããŠããŸããïŒ ããã¯äŒŒããããªãã®ã§ãããã¿ã³ã¯ãªãã¯ããµãã¹ã¯ã©ã€ããïŒAPIã«ã¯æ¢ã«ããã€ãã®æ¢è£œã®ãªãã·ã§ã³ããããŸã-
ã·ã³ã°ã«ã¯ãªã㯠ã
ããã«ã¯ãªã㯠ã
ããŒã«ããªã© ïŒããã®åŸãèšå®ããé¢æ°ãèµ·åããŸãã
APIã¯ãã¯ãªãã¯ããã£ãããããŠã£ã³ããŠãžã®ãã€ã³ã¿ãŒãšãµãã¹ã¯ãªãã·ã§ã³ãèšè¿°ãããé¢æ°ã®ååãåŒæ°ãšããŠåã
window_set_click_config_providerïŒïŒã¡ãœãããåŒã³åºãå¿
èŠããããšèšã£ãŠããŸãã ããã§ã¯ãã¿ã³ããµãã¹ã¯ã©ã€ãããã
window_set_click_config_providerã§æå®ãããé¢æ°ã§ã®ã¿ãµãã¹ã¯ã©ã€ãããããšã«æ³šæããŠãã ããã ããã¯æ¬¡ã®ããã«è¡ãããŸãã
window_set_click_config_provider(window, WindowsClickConfigProvider);
ãŠã£ã³ããŠãã€ã³ã¿ãŒã¯windowãé¢æ°ã®ååã¯WindowsClickConfigProviderã§ãã äœæããïŒ
void WindowsClickConfigProvider(void *context) { }
ãããŠã
window_single_click_subscribeã¡ãœããã
å
éšã«è¿œå ããŸãã
ãããã®ã¡ãœããã¯ããã¿ã³ã®ååãšã³ã³ãããŒã«ãæž¡ãããé¢æ°ã
åãåããŸãïŒ
window_single_click_subscribe(BUTTON_ID_UP, click);
ãã®å Žåããã¿ã³ãæŒãäžãããšãã¯ãªãã¯ãåŒã³åºãããŸãã
ãã¿ã³ïŒ3ã€ãããŸãïŒã¯ãããããBUTTON_ID_UPãBUTTON_ID_SELECTãBUTTON_ID_DOWNãšåŒã°ããŸãã ãæ»ãããã¿ã³ããµãã¹ã¯ã©ã€ãããããšãã§ããŸãããã¡ãã¥ãŒã«ã¢ããªã±ãŒã·ã§ã³ã®ç»é¢ã1ã€ããå Žåã¯åžžã«åã®ç»é¢ã«ç§»åããŸãã
ããã§ãã¢ããªã±ãŒã·ã§ã³ã¯æ¬¡ã®ããã«ãªããŸãã

ãããŠãã®ãœãŒã¹ïŒ
#include "pebble.h" Window *window; TextLayer *text_layer; static const char* messages[] = {"", " "," "," - "," "," - "," "," ",""," - "," , "," "," "," "," "," "," - "," - "," "," ","",}; void click(ClickRecognizerRef recognizer, void *context) { text_layer_set_text(text_layer, messages[rand() % 21]); } void WindowsClickConfigProvider(void *context) { window_single_click_subscribe(BUTTON_ID_UP, click); window_single_click_subscribe(BUTTON_ID_SELECT, click); window_single_click_subscribe(BUTTON_ID_DOWN, click); } int main(void) { window = window_create(); window_set_background_color(window, GColorBlack); window_set_fullscreen(window, true); window_stack_push(window, true); text_layer = text_layer_create(GRect(0, 7, 144, 168)); text_layer_set_text_color(text_layer, GColorWhite); text_layer_set_background_color(text_layer, GColorClear); text_layer_set_font(text_layer, fonts_get_system_font(FONT_KEY_GOTHIC_24)); text_layer_set_text_alignment(text_layer, GTextAlignmentCenter); layer_add_child(window_get_root_layer(window), text_layer_get_layer(text_layer)); srand(time(NULL)); window_set_click_config_provider(window, WindowsClickConfigProvider); text_layer_set_text(text_layer, "Magic Pebble \n , \"\" \"\" "); app_event_loop(); text_layer_destroy(text_layer); window_destroy(window); }

ããŸãããïŒ ããŒãžã§ã³0.1ãå²ãåœãŠãããšãã§ããŸã:)
ããããäœããæ¬ ããŠããŸãã ããã€ãã®å¹æãè¿œå ãããšããã§ãããã ãã¿ã³ãã¯ãªãã¯ããŠãæèšãããã«å¿çããªãããã«ãæ°ç§éãªãã·ã§ã³ããæŽçãããããã«ãåçãå€æŽããã¢ãã¡ãŒã·ã§ã³ãäœæã§ããŸãã åŒçšç¬Šã§-çãã¯ã©ããªå Žåã§ãã©ã³ãã ã«ãªããŸãããæåã®ã±ãŒã¹ã§ã¯ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ã«èªä¿¡ãæã£ãŠãããããå®ããããããšãã«ããã°ãæ°åã®å
¥ã£ãããŒã«ããã«ãŒããéžæããã©ã³ãã ãªããã»ã¹ã«æ
£ããŠããŸãã
ç©çåŠãå°ãè¿œå ãããšãããã«çŸãããªããŸãã å®éã人ã
èªèº«ã¯ãçãããªããéææ°ã§é²è¡ããããã»ã¹ã«å²ãŸããŠããŸããããã»ã¹ãæåã«ãé«éãã§ããå Žåãããã»ã¹ã¯çŽç·çã«é²è¡ããŸããããæåããæéãçµéããã»ã©é床ãäœäžããŸãã
ããã¯äœã§ãæ§ããŸãã-äŸãã°ãããŒãã«ã®äžã®ç±ããè¶ã®å·åŽã ãè¶ãšåšå²ã®ç©ºæ°ã®æž©åºŠå·®ã倧ããå Žåãå°ãæããå Žåãããã¯ããã«éãå·åŽãããŸãã ãŸãã¯ã1æ¯ã®ã¹ããŒã¯ãªã³ã°ãŠã©ãŒã¿ãŒã«æ³¡ãç«ãŠãŸãã æåã¯ãæ°Žäžã®çé
žã®æ¿åºŠãé«ãå Žåãéåžžã«æŽ»çºã«å解ããŸããããã°ãããããšæ¿åºŠãäœäžããããã«äŒŽãæ°æ³¡ã®æ°ãæžå°ããŸãã
ãã®å Žåãç§ã¯éåœã®èŒªã®ãããªäœããããããšæããŸã-ã»ã°ã¡ã³ããæåã«ãäºããçŽ æ©ã亀æããåŸã
ã«æžéããŸãã ããã§æ©æŠã¯ãæ眪ãã§ã-é床ãé«ãã»ã©ããã€ãŒã«ã軞ã«å¯ŸããŠæ©æŠãããšãã«ã®ãŒã倱ããç±ã«å€æãããŠæžéããŸãã ããããé床ãäœäžãããšæ©æŠæ倱ãæžå°ããŸãããã®çµæããã€ãŒã«ã¯æåã®20ïŒ
ã§é床ã®50ïŒ
ã倱ããæ®ãã®70ïŒ
ã§æ®ãã®50ïŒ
ã倱ããŸãã
ã¡ãã»ãŒãžãå€æŽããééãããªç§åäœã§ã«ãŠã³ãããŸãã å®éšã«ãããé©åãªå€ã®ç¯å²ã¯0ã300ã400ããªç§ã§ããããšãããããŸããã ééãé·ããªããšããã§ã«è¡šç€ºãããŠããåçãçªç¶å€æŽãããããã«æããããŸãã
ãã®åäœãæäŸããæãåçŽãªé¢æ°ã¯ãx = x * 2ã®ãããªãã®ã§ãã ãã ãã2ãæãããšãé¢æ°ã°ã©ãã¯æ¥æ¿ã«äžæããå埩ããšã«é
延æéã2åã«ãªããŸãã 256ïŒæ¬¡ã®å€-512ã¯ãã§ã«äŸ¿å©ãªå¢çãè¶
ããŠãããããæ倧é
延ïŒãæ¢ã«ã¹ããã8ã«ãããæç¶æéã¯1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 = 511msã®ã¿ã§ãã 0.5ç§ã¯éãããŸãã
çµéšçã«ãä¹æ°ã¯1.08ã1.2ã®ç¯å²ã«ããå¿
èŠãããããšã«æ°ã¥ããçŽ30ã¹ããããšçŽ3ç§ã®æç¶æéãååŸããŸãã ããããç§ã¯é¢æ°x = x * yã奜ãã§ã¯ãããŸãã-ããã¯ããŸãã«ãäžç©ºã«äžæããã¡ãã€ããé
ããªããããŸãïŒã¯ããç§ã¯å¥åŠã§ãïŒãç§ã¯ããããéããé·ãç¹æ»
ãããã®åŸçªç¶åæ¢ããããšãæã¿ãŸãã
ããã¯ãã£ãšç°¡åãããããŸãã-é
延ã®å€ãé
åã«æã¡èŸŒãã§ãããããããŸãã«ãå€ããªãã®ã§ããããç·šéããŠæºè¶³ããã-çŽ40åã§ããããããç§ãã¡ãå¿
èŠãšããæ¹æ³ã§æ©èœããé¢æ°ãå°åºããããšã¯ã¯ããã«èå³æ·±ãã§ãã ä¹ç®ã¯ç§ãã¡ã«é©ããŠããªãã®ã§ãé€ç®ãè©Šã¿ãŸãã x = x / 0.7ã®ãããªãã®ã ããããããèªäœã¯æ¥æ¿ã«äžæããŸã-ã¹ããã18ã§æ¢ã«300ãååŸããŠããŸãããããå°ã欲ããã§ãã ãã ããããšãã°ã100ã§å²ã£ããã1000ã§å²ã£ããããããšãã§ããŸãããã¹ãŠã®é¢æ°ã®ã°ã©ããåæå€1ã§ããããããŸããã°ã©ãã®äžã®æ°åã¯ã¹ãããæ°ã§ãã

ããã¯ãy = y / 0.7 x = y / 100ãç§ãã¡ã«éåžžã«é©ããŠããããšãæå³ããŸãã
ããããæåã«ã1ã€ã®äžå
·åãä¿®æ£ããŸãã èµ·åæã®æ
å ±ãšã¡ãã»ãŒãžãåãã¬ã€ã€ãŒã«è¡šç€ºãããç»é¢ã®äžéšã«ã¡ãã»ãŒãžã衚瀺ãããŸãïŒæ®å¿µãªãããåçŽæ¹åã®é
眮ïŒã ã¯ããå°ããªæŽ»åã§ãããã«äœæããããšãã§ããŸã-ãããã¯ã¯ããã«çããç»é¢ã«åãŸããŸãã ã¬ã€ã€ãŒã®ãµã€ãºãå€æŽããããã®APIã¡ãœãããèŠã€ãããªãã£ããããã¬ã€ã€ãŒãåé€ããŠå床äœæããå¿
èŠããããŸããã座æšã¯ç°ãªããŸãã ãã ããããã¯èŠèŠãããªããŸã-ã³ãŒãã®äžéšãè€è£œããïŒäœæåŸã®ã¬ã€ã€ãŒèšå®ïŒãããã¯çºçããŸãã-å¥ã®é¢æ°ã§ã³ãŒãã®äžéšãåãåºããŸãã
ç§ãã¡ã¯äœæããŸãïŒ
void config_text_layer(int16_t x,int16_t y,int16_t h,int16_t w, const char *font_key) { }
æåã®4ã€ã®ãã©ã¡ãŒã¿ãŒã¯ã¬ã€ã€ãŒã«é¢ããæ
å ±ã§ãããã€ã³ãã®åº§æšãšãµã€ãºã5çªç®ã®ãã©ã¡ãŒã¿ãŒã¯ãã©ã³ãã§ãã ãããã£ãŠããããã®å€æ°ã䜿çšããããã«åæåé¢æ°ãæžãçŽããŸãã
text_layer = text_layer_create(GRect(x, y, h, w)); text_layer_set_font(text_layer, fonts_get_system_font(font_key));
ãããŠãããããã¬ã€ã€ãŒèšå®ã³ãŒãã®æ®ããšäžç·ã«é¢æ°ã«æ¿å
¥ããŸãã ããã§ã次ã®ãããªé©åãªå Žæã§ãããè¡ãããšãã§ããŸãã
text_layer_destroy(text_layer); config_text_layer(5, 40, 134, 120, FONT_KEY_GOTHIC_28);
ããã§ã¯ããã¿ã³ãã¯ãªãã¯ãããšãã«åŒã³åºãããã¯ãªãã¯é¢æ°ã§ãããè¡ããŸãããã ã¯ãããã¿ã³ãæŒããããã³ã«ã¬ã€ã€ãŒãäœæãããŸããããã¯æ¬¡ã®ãããªç°¡åãªãã§ãã¯ã§åé¿ã§ããŸãã
bool first_time=true; if (first_time == true) { text_layer_destroy(text_layer); config_text_layer(5, 40, 134, 120, FONT_KEY_GOTHIC_28); first_time = false; }
ããããç§ã¯æ°ã«ããŸããã§ããã ã¿ã€ããŒãæ¹åããã APIã§ã®æ€çŽ¢ã«ãããé¢æ°
app_timer_registerïŒïŒãäžããããŸããããã®é¢æ°ã¯ãã¿ã€ããŒãæ©èœããmsã®å€ãããªã¬ãŒæã«åŒã³åºãããå¿
èŠãããé¢æ°ã®ååãããã³ãã®é¢æ°ã«æž¡ãå¿
èŠãããããŒã¿ãžã®ãã€ã³ã¿ãŒãåŒæ°ãšããŠåãåããŸãã æ®å¿µãªããããã€ã³ã¿ãŒã®æäœæ¹æ³ãç解ã§ããªãã£ããããã³ãŒãã®çŸããã«åŸãåããã°ããŒãã«å€æ°ã䜿çšããŠãããè¡ãå¿
èŠããããŸãã
float timer_delay=1;
ééãå¢ãããªããã¿ã€ããŒãååž°çã«åŒã³åºãé¢æ°ãäœæããŸãã
void timer_call() { text_layer_set_text(text_layer, messages[rand() % 21]); if (timer_delay < 300*100 ) { timer_delay=timer_delay/0.7; app_timer_register(timer_delay/100, timer_call, NULL); } else { timer_delay=1; } }
é¢æ°ã®äžå¿ã¯ãtimer_delayæµ®åå°æ°ç¹å€æ°ã§ãã 30000ã«éãããŸã§0.7ã§é€ç®ãããŸããå€æ°ã®æ°ããå€ã¯ãããã100ã§é€ç®ãããé
延é¢æ°app_timer_registerã®åŒæ°ãšããŠäžããããŸããããã¯ãããªã¬ãŒããããšãåã³ãã®é¢æ°ãåŒã³åºããŸãã
ã¯ãªãã¯ïŒïŒã§ãã®é¢æ°ãžã®åŒã³åºããè¿œå ããã ãã§ãã
void click(ClickRecognizerRef recognizer, void *context) { text_layer_destroy(text_layer); config_text_layer(5, 40, 134, 120, FONT_KEY_GOTHIC_28); timer_call(); }
ãããŠãããªãã¯çµæã楜ããããšãã§ããŸãïŒ
ç§ãã¡ããã£ãããšã«ã€ããŠå°ãèããŠã¿ããšãå®éã®äžçã§RNGãšããŠäœ¿çšãããŠããããŒã¹ãã·ãã¥ã¬ãŒãããããã®ãã©ãããã©ãŒã ãäœæããããšãããããŸãã ããŒã«å
éšã®æµäœã«ãããå€é¢çãªå³ã®è€éãªåãã¯ãäºæž¬ã§ããªãããã»ã¹ã§ãã ãµã€ã³ãã ãã§ãªãã ã¡ãªã¿ã«ãµã€ã³ãïŒ å¥ã®ã¢ããªã±ãŒã·ã§ã³ã®ãªãã·ã§ã³ã§ã¯ãªããã®ã¯äœã§ããïŒ
ç§ã¯æ¬åœã«éªšã®ç«¯ã«ããçµµãæ¢ãããã«ãªããåºäŒã£ã...ããããŸããããããçµµã§ãã ãŸãããµã€ã³ãã«ãã ãããã§ã¯ãããŸããã äžè¬çã«ãç§ã¯ããã«åºããããŸããïŒ
ãããŠããã ãã§ãã ãã®ãããªçŽ æŽãããã¢ã€ãã¢ããããšãããµã€ã³ãã¯äœã§ããã ãããå®è£
ããŠãããŸãããïŒ
ã»ãã¯ã¹ã«ãŒã¬ãã
ããã°ã©ã ã®ããžãã¯ã¯åããŸãŸã§ãã ã¡ãã»ãŒãžé
åãå€æŽããŸãã
static const char* messages[] = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ",};
èµ·åæã®ã¡ãã»ãŒãžïŒ
text_layer_set_text(text_layer, "Sex Roulette \n , -->");
ã°ã©ãã£ãã¯é
åãæãã¡ã¢ãªå
ã«äœæãã座æšã瀺ããŸãã æ§æã¯ãtext_layer_createãšãŸã£ããåãã§ãã
image_layer = bitmap_layer_create(GRect(0 , 0, 144, 144));
äœæãããã¬ã€ã€ãŒãã¡ã€ã³ãŠã£ã³ããŠã¬ã€ã€ãŒã®åã«ããŸãã ãªããããå¿
èŠãªã®ã§ããïŒ ããã¯ãä»ã®ã¬ã€ã€ãŒã«é¢é£ããã¬ã€ã€ãŒã®ãé«ããïŒCSSã®èŠ³ç¹ããã誰ããz-indexã§ãããšç解ããŠããå ŽåïŒã調æŽããŸãã ãã¹ãŠã®åã¯èŠªå
šäœã®äžã«ãããçµè«ã§éããŸãã
layer_add_child(window_get_root_layer(window), bitmap_layer_get_layer(image_layer));
ãã¬ã³ãã¢ãŒããèšå®ããŸãã ãã®ãã©ã¡ãŒã¿ãŒã«å¿ããŠãç»åã¯èæ¯ãšç°ãªãçžäºäœçšãããŸãã
bitmap_layer_set_compositing_mode(image_layer, GCompOpAssignInverted);
ãã¹ãŠã®ãªãã·ã§ã³ã¯
ããã§èª¬æã§ã
ãŸã ããŸãã¯ãåçã«åºå·ããããšãã§ããŸã

ãã®å ŽåããœãŒã¹ã¯ã°ã©ãã£ãã¯ã¬ã€ã€ãŒã§ããããã¹ãã£ããŒã·ã§ã³ã¯ãã®èŠªããŠã£ã³ããŠã®ã¡ã€ã³ã¬ã€ã€ãŒã§ãã ã¢ãã¯ãåçã§äœæ¥ãããšãã«ã6ã€ã®ãªãã·ã§ã³ã«åãŸãã»ã©ã·ã³ãã«ã§çŽ æŽããã...
次ã«ãã©ã³ãã ãªç»åãåºåããŸãã Googleã§ã
ããŒãºã¢ã€ã³ã³ ããªã©ã®ã¯ãšãªã«é©ããç»åïŒ2è²ãšå°ããïŒãæ¢ããŠã¿ãŸãããã
ãã®ãµã€ãã¯ãããèŠã€ããŸããïŒ
ãã¯ã¿ãŒãããŠã³ããŒãããå¢çç·ãåé€ããããé«ã解å床ã§PNGã«ãšã¯ã¹ããŒãããäœããã®ã°ã©ãã£ãã¯ãšãã£ã¿ãŒã§éããŸãã
åç»åãéžæãã倱æããç解ã§ããªããã®ãåé€ããæ£æ¹åœ¢ã«å
¥åãã144ãã¯ã»ã«ã«çž®å°ããŠãæ¬ é¥ãã¯ãªãŒã³ã¢ããããŸãã ç§ãã¡ã®ä»äºã®çµæã¯ãåçã®å
¥ã£ããã©ã«ããŒã«ãªãã¯ãã§ãã
åçã®1ã€ããã24x28ãã¯ã»ã«ã®ãµã€ãºã®ã¡ãã¥ãŒã®ããŽãäœæããŸãã
->
ãããžã§ã¯ããã©ã«ããŒã®appinfo.jsonãã¡ã€ã«ãéããäœæãããªãœãŒã¹ãè¿œå ããŸãã æ®å¿µãªãããCloudPebbleã§ãããã©ã®ããã«è¡ãããŠãããã¯ããããŸããããã¹ã¯ãŒããåãå
¥ããããã¹ãŠã®ãããžã§ã¯ãã®ãœãŒã¹ãææ¡ã§ãããçªç¶åäœããªããªããŸããã ããã§ãå
¬åŒãµã€ãã®
æ瀺ã«åŸã£ãŠéçºç°å¢ãã³ã³ãã¥ãŒã¿ãŒã«ã€ã³ã¹ããŒã«ããããã«æžããŸããã
ãããã£ãŠãappinfo.jsonã«ã€ããŠã§ãã 次ã®ããã«ãªããŸãã
{ "uuid": "0f7b8336-d72d-4806-9191-566ffd8f3a8c", "shortName": "SexRoulette", "longName": "SexRoulette", "companyName": "vvzvlad", "versionCode": 1, "versionLabel": "1.0.0", "watchapp": { "watchface": false }, "appKeys": { "dummy": 0 }, "resources": { "media": [ { "menuIcon": true, "type": "png", "name": "DEFAULT_MENU_ICON", "file": "img/logo.png" }, { "type": "png", "name": "POSE_1", "file": "img/1.png" },
æåã¯ããªãã¿ã®ãããã£ãŒã«ããããããã®æå³ã¯èª¬æããªããŠãæ確ã§ããã32æã®åçãã¹ãŠã説æãããŠããŸãã æ§é ã¯æ¬¡ã®ããã«ããå¿
èŠãããããšã«æ³šæããŠãã ããã
{ "type": "png", "name": " ", "file": "img/1.png" }, { "type": "png", "name": " ", "file": "img/1.png" }
æåŸã®è§æ¬åŒ§ã®åŸã«ã¯ããã¡ã€ã«ã¢ãã¬ã¹ãæå®ããåŸãšåæ§ã«ãã³ã³ãã¯ãããŸããã ãããŠããã£ãŒã«ãã¯ãã¿ã€ããååããã¡ã€ã«ã®é ã«æ£ç¢ºã«ç¶ãå¿
èŠããããŸãã
ããã¯ãããŸããŸããã
å
¬åŒææžã«åããŠã
ãŸã ïŒ
è©°ã蟌ããå°»ã®ããŒããŒãïŒ ç§ã¯ãã®ææžãæžãã人ãã¡ã«äžç¢ã®å
ç·ãéããŸããããç§ã¯30åé銬鹿ã«ãªãã圌ãäœã«ã€ããŠåªã£ãŠããã®ã ãããšæããŸããã ãŸãã圌ã¯éåžžã«äžæçã§ããã®ã§ãããªãã¯åœŒãããã奜ãã§ã¯ãªãããšãæ¬åœã«ç解ããªãã§ãããã
Traceback (most recent call last): File "/Users/vvzvlad/Documents/PebbleSDK-2.0-BETA2/Pebble/.waf-1.7.11-478a7e7e9ed077304a8092741524bf8b/waflib/Scripting.py", line 351, in execute return execute_method(self) File "/Users/vvzvlad/Documents/PebbleSDK-2.0-BETA2/Pebble/.waf-1.7.11-478a7e7e9ed077304a8092741524bf8b/waflib/Build.py", line 106, in execute self.execute_build() File "/Users/vvzvlad/Documents/PebbleSDK-2.0-BETA2/Pebble/.waf-1.7.11-478a7e7e9ed077304a8092741524bf8b/waflib/Build.py", line 109, in execute_build self.recurse([self.run_dir]) File "/Users/vvzvlad/Documents/PebbleSDK-2.0-BETA2/Pebble/.waf-1.7.11-478a7e7e9ed077304a8092741524bf8b/waflib/Context.py", line 128, in recurse user_function(self) File "/Users/vvzvlad/Documents/PebbleSDK-2.0-BETA2/SexRoulette/wscript", line 18, in build ctx.load('pebble_sdk')
ãŸãã圌ãšå°çã«ã ãã§ã«ç解ããããã«ãã¡ãã¥ãŒã®ç»åã¢ã€ã³ã³ã«ã¯
ãmenuIconããã£ãŒã«ãã
trueã§ããŒã¯ãããŠãããããã°ã©ã ãããã¢ã¯ã»ã¹ã§ããŸãã
åçã«æ»ããŸãããã ããã¥ã¡ã³ãã§ã¯ã次ã®ãããªç»åã®ã¢ããããŒããæšå¥šããŠããŸãã
image = gbitmap_create_with_resource(RESOURCE_ID_POSE_1);
ããã¯ç§ãã¡ã«ã¯é©ããŠããŸããã çš®ã®å·šå€§ãªæ§é ã®å€§éšããããªãã§ãã ãã
select rand() % 31 case 1 image = gbitmap_create_with_resource(RESOURCE_ID_POSE_1); case 2 image = gbitmap_create_with_resource(RESOURCE_ID_POSE_2);
ããã¯ãã§ãã ããã¥ã¡ã³ããããRESOURCE_ID_POSE_2ã¯ããªãœãŒã¹çªå·ãæ ŒçŽãããuint32_tåã®å€æ°ã«ãããªãããšãããããŸãã
å¿
èŠãªåã®é
åãäœæããŸãã
static const uint32_t images[]
ãããŠãå¿
èŠãªãªãœãŒã¹ããªã¹ãããŸãã
static const uint32_t images[] = {RESOURCE_ID_POSE_1,RESOURCE_ID_POSE_2,RESOURCE_ID_POSE_3,RESOURCE_ID_POSE_4,RESOURCE_ID_POSE_5,RESOURCE_ID_POSE_6,RESOURCE_ID_POSE_7,RESOURCE_ID_POSE_8,RESOURCE_ID_POSE_9,RESOURCE_ID_POSE_10,RESOURCE_ID_POSE_11,RESOURCE_ID_POSE_12,RESOURCE_ID_POSE_13,RESOURCE_ID_POSE_14,RESOURCE_ID_POSE_15,RESOURCE_ID_POSE_16,RESOURCE_ID_POSE_17,RESOURCE_ID_POSE_18,RESOURCE_ID_POSE_19,RESOURCE_ID_POSE_20,RESOURCE_ID_POSE_21,RESOURCE_ID_POSE_22,RESOURCE_ID_POSE_23,RESOURCE_ID_POSE_24,RESOURCE_ID_POSE_25,RESOURCE_ID_POSE_26,RESOURCE_ID_POSE_27,RESOURCE_ID_POSE_28,RESOURCE_ID_POSE_29,RESOURCE_ID_POSE_30,RESOURCE_ID_POSE_31,RESOURCE_ID_POSE_32,};
ããã§ãããã¹ããšåãæ¹æ³ã§ã©ã³ãã ãªç»åãåŒã³åºãããšãã§ããŸãã
image = gbitmap_create_with_resource(images[rand() % 31]);
ãã©ãã·ã¥ã¡ã¢ãªã«
ååšããªãç»åãåŒã³åºããŠãRAMã«é
眮ããŸããã ããã§ãç»åé¢æ°bitmap_layer_set_bitmapã®ä¿åå Žæã«ãã€ã³ã¿ãŒãæž¡ãå¿
èŠããããŸããããã«ãããç®çã®ã°ã©ãã£ãã¯ã¬ã€ã€ãŒã«è¡šç€ºãããŸãã
ããã¯æ¬¡ã®ããã«è¡ãããŸãã
bitmap_layer_set_bitmap(image_layer, image);
image_layerã¯ã°ã©ãã£ãã¯
ã¹ã¬ã€ã€ãŒã®ã¡ã¢ãªãžã®ãã€ã³ã¿ãŒã§ããã
imageã¯ã¡ã¢ãªãŒå
ã®
ç»åãžã®ãã€ã³ã¿ãŒã§ãã
ãã¹ãŠã奜ãã§ãã çºå°ïŒ
ã¯ããã¯ãåæ¢ããŠããåèµ·åãã2åç®ã®èµ·ååŸããªã«ããªã«é²ã¿ãã¢ããã°ã¬ãŒããèŠæ±ããŸããã
ããã§ããåãµã€ã¯ã«ã§ç»åãã¡ã¢ãªã«ããŒãããŠããããããã¢ã³ããŒãããŸããã§ããã 圌ãã¯RAMãç²åŸããæèšãããŒããæåŠãããšããäºå®ããå€æããŠãä»ã®å Žæã«ç»ããŸããã
ããã¯
ã¹ããŒã¢ã«ã¿ã§ãïŒ åã蟌ãŸããïŒ åœŒãã¯ãããèš±ããŸããã
ç§ãã¡ã¯ãããæ£ããè¡ããŸãã , .
gbitmap_destroy(image); image = gbitmap_create_with_resource(images[rand() % 31]); bitmap_layer_set_bitmap(image_layer, image);
image , gbitmap_destroy . App CrashedâŠ
, , - . , - . :
bool first_time=true;
, :
void timer_call() { first_time = false;
gbitmap_destroy â first_time == false,
text_layer_destroy config_text_layer click â , first_time == true:
void timer_call() { if (first_time == false) { gbitmap_destroy(image); bitmap_layer_destroy(image_layer); } first_time = false; ..... void click(ClickRecognizerRef recognizer, void *context) { if (first_time == true) { text_layer_destroy(text_layer); config_text_layer(0, 146, 144, 168-146, FONT_KEY_GOTHIC_18); }
ããŸãããïŒ
, . :
text_layer_destroy(text_layer); window_destroy(window); gbitmap_destroy(image); bitmap_layer_destroy(image_layer);
gbitmap. , ! , â . . â , :
if (first_time == false) { gbitmap_destroy(image); }
.
#include "pebble.h" float timer_delay=1; Window *window; TextLayer *text_layer; static BitmapLayer *image_layer; static GBitmap *image; bool first_time=true; static const char* messages[] = {" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ",}; static const uint32_t images[] = {RESOURCE_ID_POSE_1,RESOURCE_ID_POSE_2,RESOURCE_ID_POSE_3,RESOURCE_ID_POSE_4,RESOURCE_ID_POSE_5,RESOURCE_ID_POSE_6,RESOURCE_ID_POSE_7,RESOURCE_ID_POSE_8,RESOURCE_ID_POSE_9,RESOURCE_ID_POSE_10,RESOURCE_ID_POSE_11,RESOURCE_ID_POSE_12,RESOURCE_ID_POSE_13,RESOURCE_ID_POSE_14,RESOURCE_ID_POSE_15,RESOURCE_ID_POSE_16,RESOURCE_ID_POSE_17,RESOURCE_ID_POSE_18,RESOURCE_ID_POSE_19,RESOURCE_ID_POSE_20,RESOURCE_ID_POSE_21,RESOURCE_ID_POSE_22,RESOURCE_ID_POSE_23,RESOURCE_ID_POSE_24,RESOURCE_ID_POSE_25,RESOURCE_ID_POSE_26,RESOURCE_ID_POSE_27,RESOURCE_ID_POSE_28,RESOURCE_ID_POSE_29,RESOURCE_ID_POSE_30,RESOURCE_ID_POSE_31,RESOURCE_ID_POSE_32,}; void timer_call() { if (first_time == false) { bitmap_layer_destroy(image_layer); gbitmap_destroy(image); } first_time = false; image = gbitmap_create_with_resource(images[rand() % 31]); bitmap_layer_set_bitmap(image_layer, image); text_layer_set_text(text_layer, messages[rand() % 23]); if (timer_delay < 300*100 ) /* 300... */ { timer_delay=timer_delay/0.7; /* ... ... */ app_timer_register(timer_delay/100, timer_call, NULL); /* ... */ } else /* 300... */ { timer_delay=1; /* - */ } } void config_text_layer(int16_t x,int16_t y,int16_t h,int16_t w, const char *font_key) /* , , */ { text_layer = text_layer_create(GRect(x, y, h, w)); /* , */ text_layer_set_text_color(text_layer, GColorWhite); /* */ text_layer_set_background_color(text_layer, GColorClear); /* */ text_layer_set_font(text_layer, fonts_get_system_font(font_key)); /* */ text_layer_set_text_alignment(text_layer, GTextAlignmentCenter); /* */ layer_add_child(window_get_root_layer(window), text_layer_get_layer(text_layer)); /* */ } void click(ClickRecognizerRef recognizer, void *context) /* , */ { if (first_time == true) /* ... */ { text_layer_destroy(text_layer); /* ... ... */ config_text_layer(0, 146, 144, 168-146, FONT_KEY_GOTHIC_18); /* ... */ } timer_call(); /* */ } void WindowsClickConfigProvider(void *context) /* , */ { window_single_click_subscribe(BUTTON_ID_UP, click); /* click */ window_single_click_subscribe(BUTTON_ID_SELECT, click); window_single_click_subscribe(BUTTON_ID_DOWN, click); } int main(void) { window = window_create(); /* */ window_set_background_color(window, GColorBlack); /* */ window_set_fullscreen(window, true); /* */ window_stack_push(window, true); /* */ srand(time(NULL)); /* */ window_set_click_config_provider(window, WindowsClickConfigProvider); /* , */ config_text_layer(0, 20, 144, 168, FONT_KEY_GOTHIC_24); /* */ text_layer_set_text(text_layer, "Sex Roulette \n , -->"); /* */ image_layer = bitmap_layer_create(GRect(0 , 0, 144, 144)); /* , */ layer_add_child(window_get_root_layer(window), bitmap_layer_get_layer(image_layer)); /* */ bitmap_layer_set_compositing_mode(image_layer, GCompOpAssignInverted); /* */ app_event_loop(); /* */ text_layer_destroy(text_layer); /* , */ window_destroy(window); /* , */ bitmap_layer_destroy(image_layer); /* , */ if (first_time == false) /* ... */ { gbitmap_destroy(image); /* , , - , .. */ } }
?! .
.
. 7575 :
appinfo.json, , images:
static const uint32_t images[] = {RESOURCE_ID_DICE_1,RESOURCE_ID_DICE_2,RESOURCE_ID_DICE_3,RESOURCE_ID_DICE_4,RESOURCE_ID_DICE_5,RESOURCE_ID_DICE_6,};
:
WindowsClickConfigProvider click . , ! .
:
accel_tap_service_subscribe(accel_int);
, :
void accel_int(AccelAxisType axis, int32_t direction) { if (first_time == true) { text_layer_destroy(text_layer); } timer_call(); }
: ( ) â . â :) .
timer_call . ( , â 144144, ), . â .
rand . 7575 144168. , , , 0...69(144-75) -, 0...93(168-75) y-. :
rand()%(144-75) rand()%(168-75) . :
image_layer = bitmap_layer_create(GRect(rand()%(144-75), rand()%(168-75), 75, 75));
:
if (timer_delay < 300*1000 ) { timer_delay=timer_delay/0.7; app_timer_register(timer_delay/1000, timer_call, NULL); }
100, â 1000. . , , . , â , , â , .
, . : , . . ,
API :
light_enable(bool enable) light_enable_interaction()
ããŸããªãã . : l
ight_enable(true) light_enable(false) , â , ( ). ( , ?), . -
timer_call .
â
main :
text_layer_set_text(text_layer, " ");
:
if (first_time == true) { text_layer_destroy(text_layer); } else { bitmap_layer_destroy(image_layer); gbitmap_destroy(image); } accel_tap_service_unsubscribe();
. â , . â , â , â
accel_int #include "pebble.h" float timer_delay=1; Window *window; TextLayer *text_layer; static BitmapLayer *image_layer; static GBitmap *image; bool first_time=true; static const uint32_t images[] = {RESOURCE_ID_DICE_1,RESOURCE_ID_DICE_2,RESOURCE_ID_DICE_3,RESOURCE_ID_DICE_4,RESOURCE_ID_DICE_5,RESOURCE_ID_DICE_6,}; void timer_call() { if (first_time == false) { bitmap_layer_destroy(image_layer); gbitmap_destroy(image); } first_time = false; image_layer = bitmap_layer_create(GRect(rand()%(144-75), rand()%(168-75), 75, 75)); layer_add_child(window_get_root_layer(window), bitmap_layer_get_layer(image_layer)); image = gbitmap_create_with_resource(images[rand() % 6]); bitmap_layer_set_bitmap(image_layer, image); light_enable_interaction(); if (timer_delay < 300*1000 ) { timer_delay=timer_delay/0.7; app_timer_register(timer_delay/1000, timer_call, NULL); } else { timer_delay=1; } } void accel_int(AccelAxisType axis, int32_t direction) { if (first_time == true) { text_layer_destroy(text_layer); } timer_call(); } int main(void) { window = window_create(); window_set_background_color(window, GColorBlack); window_set_fullscreen(window, true); window_stack_push(window, true); srand(time(NULL)); text_layer = text_layer_create(GRect(0 , 30, 144, 168)); text_layer_set_text_color(text_layer, GColorWhite); text_layer_set_background_color(text_layer, GColorClear); text_layer_set_font(text_layer, fonts_get_system_font(FONT_KEY_GOTHIC_28)); text_layer_set_text_alignment(text_layer, GTextAlignmentCenter); layer_add_child(window_get_root_layer(window), text_layer_get_layer(text_layer)); text_layer_set_text(text_layer, " "); accel_tap_service_subscribe(accel_int); app_event_loop(); if (first_time == true) { text_layer_destroy(text_layer); } else { bitmap_layer_destroy(image_layer); gbitmap_destroy(image); } accel_tap_service_unsubscribe(); window_destroy(window); }
ããŸãããïŒ
, :
åç
§è³æ
MagicPebble mypebblefaces.com
- mypebblefaces.com
mypebblefaces.com
MagicPebble github.com
- github.com
github.com
, Pebble , . ( « pebble »). , â .

