約 557,771 件
https://w.atwiki.jp/gojirou/pages/5.html
イメージ 星図を使って自由に星を結んでもらい星座を作る。 その星座を関連付けて、神話を作ってもらう。 方法 ①星図を配る。(白黒反転したものだと夜空を思わせてよいかも。) ②ペンで星を結び星座を作る。 ③その星座の物語を作る。
https://w.atwiki.jp/mycampaign/pages/82.html
「ある王女の運命」や「未知からの侵略」などのように、前後編やそれ以上のストーリーを含むキャンペーンを作成するには _main.cfg ファイルに [campaign] を複数記述します。
https://w.atwiki.jp/s-ryouri/pages/152.html
67 名前:名無しのやる夫さん[sage] 投稿日:09/06/30(火) 03 34 43 ID uie7z1P8 こんな夜中だというのに、腹が減って眠れなかったので牛乳ラーメンを作る。 というか、人の居ない夜中こそレシピ投下のチャンスだ。 材料:牛乳、玉ねぎ、ネギ、キャベツ、鮭(切り身、1きれ)、ラーメン(1袋) 1:牛乳を鍋に適当に入れ、鮭、玉ねぎ、キャベツを放り込む。なお、鮭は鱗を取っておくのが好ましい。 2:火をつけ、弱火~中火で材料を煮る。焦げ付きやすいので、かき混ぜながら煮る事をお勧めする。 3:10分ほどして各材料が煮えたら、袋からラーメンを取り出し、ラーメンを茹でる(煮る?)。 4:茹で上がったら、丼にスープの素を入れ、汁を先に丼に入れた後、具とラーメンを入れる。 5:仕上げにネギを添えて完成。
https://w.atwiki.jp/abwiki/pages/263.html
前回やった、草原マップ、主人公キャラの描画に引き続き、今回はキー操作に反応し、キャラが自由に歩き回れるようにするプログラムを作成していきます。 今回作成するプログラムのサンプルファイルを置いておきますので、参考にしたい方はどうぞ☆ Fantasy2.zip(プロジェクトに必要なファイルがすべて入っています) 今回も、First Seed Materialで公開されているRPG用素材を利用させていただきます。 前回作成したプログラムがある方は、MainWnd.sub のプログラムを変更するだけで実現できます。このページのプログラムリストは、前回からの変更点を太字で示してあるので、それを参考に改良してみて下さい。 新規にプログラムを作成する方は、まずはプロジェクトを作成しておきましょう。新規作成→プロジェクトで、"Fantasy" などという名前のプロジェクトを作成し、MainWnd.sbpを開いて、以下の示すプログラムを入力していって下さい。 ---------------------------------------------------------------------------- イベント プロシージャ ---------------------------------------------------------------------------- このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。 ウィンドウ ハンドル hMainWnd メモ - 以下の領域を、変数、構造体、定数、関数を宣言するための、 グローバル領域として利用することができます。 ----------------------------------ここから---------------------------------- 画面の大きさ X*Y Const MAX_MAPX=25 Const MAX_MAPY=20 マップチップ画像 Const FileName_Road="road.bmp" Const MAPCHIP_PIXEL=16 マップチップのピクセル数 Dim hRoadTipsDC As DWord Dim hRoadTipsBmp As DWord キャラクタチップ画像 Const FileName_Char="char.bmp" Const CHAR_PIXEL_X=24 キャラクタチップの幅(単位はピクセル) Const CHAR_PIXEL_Y=32 キャラクタチップの高さ(単位はピクセル) Dim hCharTipsDC As DWord Dim hCharTipsBmp As DWord マップ画像 Dim hMapDC As DWord Dim hMapBmp As DWord 画面表示用の画像 Dim hMemDC As DWord Dim hMemBmp As DWord 描画位置 Dim CharPos As POINTAPI CharPos.x=12 初期位置X CharPos.y=10 初期位置Y 歩行スピード Const WalkingSpeed = 120 ミリ秒 歩行時のウェイトタイムを追加しています。だいたい、120ミリ秒が自然な感じだと思いますが、ここは任意の間隔で結構です。60とかにすると、ダッシュっぽくなったりします(^^; Sub DrawMap() Dim x As Long, y As Long マップを描画 For y=0 To MAX_MAPY-1 For x=0 To MAX_MAPX-1 BitBlt(hMapDC,x*MAPCHIP_PIXEL,y*MAPCHIP_PIXEL,MAPCHIP_PIXEL,MAPCHIP_PIXEL, hRoadTipsDC,0,128,SRCCOPY) Next Next End Sub 草原マップ描画のプロシージャに変更点はありません。 Sub DrawCharacter(CharTipX As Long, CharTipY As Long, MiddleOffsetX As Double, MiddleOffsetY As Double) Dim hMaskDC As DWord Dim hMaskBmp As DWord Dim hTempDC As DWord Dim hTempBmp As DWord Dim x As Long, y As Long マップデータをコピー BitBlt(hMemDC,0,0,MAX_MAPX*MAPCHIP_PIXEL,MAX_MAPY*MAPCHIP_PIXEL,hMapDC,0,0,SRCCOPY) マスク用画像を作成 hMaskDC=CreateCompatibleDC(hMemDC) hMaskBmp=CreateBitmap(CHAR_PIXEL_X,CHAR_PIXEL_Y,1,1,0) SelectObject(hMaskDC,hMaskBmp) BitBlt(hMaskDC,0,0,CHAR_PIXEL_X,CHAR_PIXEL_Y, _ hCharTipsDC, CharTipX*CHAR_PIXEL_X, CharTipY*CHAR_PIXEL_Y, SRCCOPY) スプライト用のキャラクタ画像を作成 hTempDC=CreateCompatibleDC(hMemDC) hTempBmp=CreateCompatibleBitmap(hMemDC,CHAR_PIXEL_X,CHAR_PIXEL_Y) SelectObject(hTempDC,hTempBmp) BitBlt(hTempDC,0,0,CHAR_PIXEL_X,CHAR_PIXEL_Y,hMaskDC,0,0,NOTSRCCOPY) BitBlt(hTempDC,0,0,CHAR_PIXEL_X,CHAR_PIXEL_Y, _ hCharTipsDC, CharTipX*CHAR_PIXEL_X, CharTipY*CHAR_PIXEL_Y,SRCAND) x=CharPos.x*MAPCHIP_PIXEL-((CHAR_PIXEL_X-MAPCHIP_PIXEL)/2)+MAPCHIP_PIXEL*MiddleOffsetX y=CharPos.y*MAPCHIP_PIXEL-((CHAR_PIXEL_Y-MAPCHIP_PIXEL)/2)+MAPCHIP_PIXEL*MiddleOffsetY マスク画像をAND転送 BitBlt(hMemDC, x, y, CHAR_PIXEL_X, CHAR_PIXEL_Y, _ hMaskDC, 0, 0, SRCAND) キャラクタ画像をOR転送 BitBlt(hMemDC, x, y, CHAR_PIXEL_X, CHAR_PIXEL_Y, _ hTempDC,0,0,SRCPAINT) マスク用画像をメモリから解放 DeleteDC(hMaskDC) DeleteObject(hMaskBmp) キャラクタの一時画像をメモリから解放 DeleteDC(hTempDC) DeleteObject(hTempBmp) End Sub 歩行時の描画に、3つのタイプの画像を必要とし、この関数は少し複雑になります。CharTipX、CharTipY変数を通して、マップ上のキャラクタの位置が指定され、その位置に描画を行います。MiddleOffsetX、MiddleOffsetY変数などを利用することで、滑らかな歩行が実現できます。 スプライト処理については、前回と同様です。 Function MainOperation(dwDummy As DWord) While 1 If GetAsyncKeyState(VK_UP) and H8000 Then 上へ移動 CharPos.y=CharPos.y-1 歩きの途中を描画(足を交互に動かす) If CharPos.y mod 2 Then DrawCharacter(0, 0, 0, 0.5) Else DrawCharacter(2, 0, 0, 0.5) End If 再描画とウェイト処理 InvalidateRect(hMainWnd,ByVal 0,0) Sleep(WalkingSpeed) 移動が完了したときのキャラクタを描画 DrawCharacter(1, 0, 0, 0) 再描画とウェイト処理 InvalidateRect(hMainWnd,ByVal 0,0) Sleep(WalkingSpeed) ElseIf GetAsyncKeyState(VK_DOWN) and H8000 Then 下へ移動 CharPos.y=CharPos.y+1 歩きの途中を描画(足を交互に動かす) If CharPos.y mod 2 Then DrawCharacter(0, 2, 0, -0.5) Else DrawCharacter(2, 2, 0, -0.5) End If 再描画とウェイト処理 InvalidateRect(hMainWnd,ByVal 0,0) Sleep(WalkingSpeed) 移動が完了したときのキャラクタを描画 DrawCharacter(1, 2, 0, 0) 再描画とウェイト処理 InvalidateRect(hMainWnd,ByVal 0,0) Sleep(WalkingSpeed) ElseIf GetAsyncKeyState(VK_LEFT) and H8000 Then 左へ移動 CharPos.x=CharPos.x-1 歩きの途中を描画(足を交互に動かす) If CharPos.x mod 2 Then DrawCharacter(0, 3, 0.5, 0) Else DrawCharacter(2, 3, 0.5, 0) End If 再描画とウェイト処理 InvalidateRect(hMainWnd,ByVal 0,0) Sleep(WalkingSpeed) 移動が完了したときのキャラクタを描画 DrawCharacter(1, 3, 0, 0) 再描画とウェイト処理 InvalidateRect(hMainWnd,ByVal 0,0) Sleep(WalkingSpeed) ElseIf GetAsyncKeyState(VK_RIGHT) and H8000 Then 右へ移動 CharPos.x=CharPos.x+1 歩きの途中を描画(足を交互に動かす) If CharPos.x mod 2 Then DrawCharacter(0, 1, -0.5, 0) Else DrawCharacter(2, 1, -0.5, 0) End If 再描画とウェイト処理 InvalidateRect(hMainWnd,ByVal 0,0) Sleep(WalkingSpeed) 移動が完了したときのキャラクタを描画 DrawCharacter(1, 1, 0, 0) 再描画とウェイト処理 InvalidateRect(hMainWnd,ByVal 0,0) Sleep(WalkingSpeed) End If Sleep(1) Wend End Function ----------------------------------ここまで---------------------------------- このMainOperation関数は、ユーザーからのキー操作を受け付ける機能を持ちます。GetAsyncKeyState関数を利用して矢印キーが押されるのを察知し、キャラクタの移動描画を行います。 こんなGetAsyncKeyState関数を使わなくても、WM_KEYDOWNとかでもいいでしょ? それが、実験してみるとわかりますが、駄目なんですよ。キーの長押しなどを行うとわかりますが、カクカク動作になってとてもRPGのマップ移動の動作は再現できません。このMainOperation関数では、1ミリ秒ごとにキーの状態を調べているので、非常にスムーズな対応ができます。ゲームなどの入力プログラムにおいては重要な点になるで、覚えておくと良いかもしれません。 Sub MainWnd_Destroy() DeleteDC(hRoadTipsDC) DeleteObject(hRoadTipsBmp) DeleteDC(hCharTipsDC) DeleteObject(hCharTipsBmp) DeleteDC(hMapDC) DeleteObject(hMapBmp) DeleteDC(hMemDC) DeleteObject(hMemBmp) Fantasy_DestroyObjects() PostQuitMessage(0) End Sub Destroyイベントに変更点はありません。 Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT) Dim hDC As DWord マップチップ画像の読み込み hRoadTipsBmp=LoadImage(GetModuleHandle(0), FileName_Road,IMAGE_BITMAP,0,0,LR_LOADFROMFILE or LR_DEFAULTSIZE) If hRoadTipsBmp=0 Then MessageBox(hMainWnd,Ex"\qroad.bmp\qの読み込みに失敗","Error",MB_OK or MB_ICONEXCLAMATION) PostQuitMessage(0) End If キャラクタチップ画像の読み込み hCharTipsBmp=LoadImage(GetModuleHandle(0), FileName_Char,IMAGE_BITMAP,0,0,LR_LOADFROMFILE or LR_DEFAULTSIZE) If hCharTipsBmp=0 Then MessageBox(hMainWnd,Ex"\qchar.bmp\qの読み込みに失敗","Error",MB_OK or MB_ICONEXCLAMATION) PostQuitMessage(0) End If hDC=GetDC(hMainWnd) 各画像のデバイスコンテキストを作成 hRoadTipsDC=CreateCompatibleDC(hDC) hCharTipsDC=CreateCompatibleDC(hDC) hMapDC=CreateCompatibleDC(hDC) hMemDC=CreateCompatibleDC(hDC) 各デバイスコンテキストにビットマップを選択 SelectObject(hRoadTipsDC,hRoadTipsBmp) SelectObject(hCharTipsDC,hCharTipsBmp) hMapBmp=CreateCompatibleBitmap(hDC,MAX_MAPX*MAPCHIP_PIXEL,MAX_MAPY*MAPCHIP_PIXEL) SelectObject(hMapDC,hMapBmp) hMemBmp=CreateCompatibleBitmap(hDC,MAX_MAPX*MAPCHIP_PIXEL,MAX_MAPY*MAPCHIP_PIXEL) SelectObject(hMemDC,hMemBmp) 透明色を設定 SetBkColor(hCharTipsDC,RGB(0,117,117)) ReleaseDC(hMainWnd,hDC) hMapDCにマップ描画 DrawMap() 初期描画 DrawCharacter(1,2,0,0) Dim dwDummy As DWord CreateThread(ByVal 0,0,AddressOf(MainOperation),0,0,VarPtr(dwDummy)) End Sub MainOperation関数を新規スレッドとして実行します。これで、通常のウィンドウメッセージとは別にユーザーからのキー操作を受け付けることが可能になります。 Sub MainWnd_Paint(hDC As Long) ウィンドウにhMemDCの内容を描画 BitBlt(hDC,0,0,MAX_MAPX*MAPCHIP_PIXEL,MAX_MAPY*MAPCHIP_PIXEL,hMemDC,0,0,SRCCOPY) End Sub Paintイベントに変更点はありません。 これで作業は完了です。コンパイル、実行をしてみましょう。どうですか?主人公キャラは自由に動けるようになったでしょうか?以外にスムーズに動くので、作った私もビックリしてますが…。
https://w.atwiki.jp/wiki6_yae/pages/897.html
#blognavi 本日は朝から一日中シトシトと降り続きました。雨の中桜祭り用のちょうちんが並木沿いに吊るされて夕方から火が入り桜祭りの雰囲気が出てきました。雨で木の枝切りは出来ませんでしたので、再度黒糖作りに挑戦しました。インターネットで調べた所、農業用の消石灰でも水に溶かして沸騰させてアクを取り沈殿させて上澄みを使うと言う方法があることがわかり、その通りやってみました。一回目は、飴状態まで固まり黒糖の味は出ていますが、それ以上は固まらず失敗です。それでも見通しがついたのでやる気がでてきました。固まらない原因は石灰の量が足りなかった所為かと思い、2回目は石灰を多めに入れてやりましたが矢張り飴状態まででした。試行錯誤しながら尚且つ分量や時間などアバウトにやっているので完成まで後何回か繰り返しが必要かとおもっています。石灰水のPH値や水分の蒸発程度、石灰水の入れるタイミングなども考える必要があると思われます。とりあえずPHを測定するリトマス試験紙を調達しなくてはいけませんが、何処で売っているか見当もつかないので、明日はそれから始める予定です。 カテゴリ [日記] - trackback- 2007年01月19日 00 28 22 #blognavi
https://w.atwiki.jp/abwiki/pages/229.html
公式のものは4.24でもコンパイル可能であるが、メモリが4GBとかだと値がおかしくなるし、新しいOSにも対応していないので 次のように修正が必要。 ' ----------------------------------------------------------------------------' イベント プロシージャ' ----------------------------------------------------------------------------' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。' ウィンドウ ハンドル hMainWnd' メモ - 以下の領域を、変数、構造体、定数、関数を宣言するための、' グローバル領域として利用することができます。' ----------------------------------ここから----------------------------------Dim RenewalTiming As Long '更新間隔RenewalTiming=500 'ミリ秒Dim GlobalMemoryStatusEx As *Function(ByRef LPMEMORYSTATUSEX As MEMORYSTATUSEX) As LongDim hDLL As HANDLEType MEMORYSTATUSEX dwLength As DWord dwMemoryLoad As DWord uulTotalPhys As QWord uulAvailPhys As QWord uulTotalPageFile As QWord uulAvailPageFile As QWord uulTotalVirtual As QWord uulAvailVirtual As QWord ullAvailExtendedVirtual As QwordEnd Type' ----------------------------------ここまで----------------------------------Sub MainWnd_Destroy() If hDLL Then FreeLibrary(hDLL) 'タイマーを終了する KillTimer(hMainWnd,0) SystemWatcher_DestroyObjects() PostQuitMessage(0)End SubSub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT) Dim buf As String Dim hProgBar As Long '-------------------------- ' OSのバージョン情報を取得 '-------------------------- Dim OsVerInfo As OSVERSIONINFO Dim BuildNum As Long OsVerInfo.dwOSVersionInfoSize=Len(OsVerInfo) GetVersionEx(OsVerInfo) If OsVerInfo.dwPlatformId=VER_PLATFORM_WIN32_WINDOWS Then 'Windows 9x系OS(メジャーバージョンは常に4) Select Case OsVerInfo.dwMinorVersion Case 0 buf="Windows 95" Case 10 buf="Windows 98" Case 90 buf="Windows Me" End Select BuildNum=LOWORD(OsVerInfo.dwBuildNumber) ElseIf OsVerInfo.dwPlatformId=VER_PLATFORM_WIN32_NT Then 'Windows NT系OS If OsVerInfo.dwMajorVersion=4 Then buf="Windows NT" ElseIf OsVerInfo.dwMajorVersion=5 Then If OsVerInfo.dwMinorVersion=0 Then buf="Windows 2000" ElseIf OsVerInfo.dwMinorVersion=1 Then buf="Windows XP" End If ElseIf OsVerInfo.dwMajorVersion=6 Then If OsVerInfo.dwMinorVersion=0 Then buf="Windows Vista" ElseIf OsVerInfo.dwMinorVersion=1 Then buf="Windows 7" End If End If BuildNum=OsVerInfo.dwBuildNumber End If 'OS情報をウィンドウに表示する SetWindowText(GetDlgItem(hMainWnd,Static_OSName),buf) SetWindowText(GetDlgItem(hMainWnd,Static_OSBuildNum),Str$(BuildNum)) SetWindowText(GetDlgItem(hMainWnd,Static_OSNote),OsVerInfo.szCSDVersion) '------------------ ' メモリ情報を取得 '------------------ Dim MemStatus As MEMORYSTATUS Dim MemStatusex As MEMORYSTATUSEX Dim rate_Physical As Long, rate_Virtual As LongIf OsVerInfo.dwMajorVersion = 4 Then MemStatus.dwLength=Len(MemStatus) GlobalMemoryStatus(MemStatus) '物理メモリに関する情報を表示する rate_Physical=MemStatus.dwMemoryLoad SetWindowText(GetDlgItem(hMainWnd,Static_RatePhysical),Str$(rate_Physical)+"%") SetWindowText(GetDlgItem(hMainWnd,Static_TotalPhysical),Str$(Int(MemStatus.dwTotalPhys/1024))+"KB") SetWindowText(GetDlgItem(hMainWnd,Static_UsedPhysical),Str$(Int((MemStatus.dwTotalPhys-MemStatus.dwAvailPhys)/1024))+"KB") '仮想メモリに関する情報を表示する rate_Virtual=Int(CDbl(MemStatus.dwTotalPageFile-MemStatus.dwAvailPageFile)/CDbl(MemStatus.dwTotalPageFile)*100) SetWindowText(GetDlgItem(hMainWnd,Static_RateVirtual),Str$(rate_Virtual)+"%") SetWindowText(GetDlgItem(hMainWnd,Static_TotalVirtual),Str$(Int(MemStatus.dwTotalPageFile/1024))+"KB") SetWindowText(GetDlgItem(hMainWnd,Static_UsedVirtual),Str$(Int((MemStatus.dwTotalPageFile-MemStatus.dwAvailPageFile)/1024))+"KB")Else If OsVerInfo.dwMajorVersion 4 Then hDLL = LoadLibrary("kernel32") GlobalMemoryStatusEx = GetProcAddress(hDLL, "GlobalMemoryStatusEx") MemStatusex.dwLength=Len(MemStatusex) GlobalMemoryStatusEx(MemStatusex) rate_Physical=MemStatusex.dwMemoryLoad SetWindowText(GetDlgItem(hMainWnd,Static_RatePhysical),Str$(rate_Physical)+"%") SetWindowText(GetDlgItem(hMainWnd,Static_TotalPhysical),Str$(Int(MemStatusex.uulTotalPhys/1024))+"KB") SetWindowText(GetDlgItem(hMainWnd,Static_UsedPhysical),Str$(Int((MemStatusex.uulTotalPhys-MemStatusex.uulAvailPhys)/1024))+"KB") '仮想メモリに関する情報を表示する rate_Virtual=Int(CDbl(MemStatusex.uulTotalPageFile-MemStatusex.uulAvailPageFile)/CDbl(MemStatusex.uulTotalPageFile)*100) SetWindowText(GetDlgItem(hMainWnd,Static_RateVirtual),Str$(rate_Virtual)+"%") SetWindowText(GetDlgItem(hMainWnd,Static_TotalVirtual),Str$(Int(MemStatusex.uulTotalPageFile/1024))+"KB") SetWindowText(GetDlgItem(hMainWnd,Static_UsedVirtual),Str$(Int((MemStatusex.uulTotalPageFile-MemStatusex.uulAvailPageFile)/1024))+"KB")End If '物理メモリ使用率のプログレスバーの初期設定 SendMessage(GetDlgItem(hMainWnd,ProgressBar_Physical),PBM_SETRANGE,0,MAKELONG(0,100)) SendMessage(GetDlgItem(hMainWnd,ProgressBar_Physical),PBM_SETPOS,rate_Physical,0) '仮想メモリ使用率のプログレスバーの初期設定 SendMessage(GetDlgItem(hMainWnd,ProgressBar_Virtual),PBM_SETRANGE,0,MAKELONG(0,100)) SendMessage(GetDlgItem(hMainWnd,ProgressBar_Virtual),PBM_SETPOS,rate_Virtual,0) 'メモリ使用率のタイマーを設定(RenewalTiming秒間隔) SetTimer(hMainWnd,OsVerInfo.dwMajorVersion,RenewalTiming,0)End Sub Sub MainWnd_Timer(ByVal TimerID As Long) Dim MemStatus As MEMORYSTATUS Dim rate_Physical As Long, rate_Virtual As Long Dim MemStatusex As MEMORYSTATUSEX '------------------ ' メモリ情報を取得 '------------------If TimerID = 4 Then MemStatus.dwLength=Len(MemStatus) GlobalMemoryStatus(MemStatus) '物理メモリに関する情報を更新する rate_Physical=MemStatus.dwMemoryLoad SetWindowText(GetDlgItem(hMainWnd,Static_RatePhysical),Str$(rate_Physical)+"%") SetWindowText(GetDlgItem(hMainWnd,Static_UsedPhysical),Str$(Int((MemStatus.dwTotalPhys-MemStatus.dwAvailPhys)/1024))+"KB") '仮想メモリに関する情報を更新する rate_Virtual=Int(CDbl(MemStatus.dwTotalPageFile-MemStatus.dwAvailPageFile)/CDbl(MemStatus.dwTotalPageFile)*100) SetWindowText(GetDlgItem(hMainWnd,Static_RateVirtual),Str$(rate_Virtual)+"%") SetWindowText(GetDlgItem(hMainWnd,Static_UsedVirtual),Str$(Int((MemStatus.dwTotalPageFile-MemStatus.dwAvailPageFile)/1024))+"KB")Else If TimerID 4 Then MemStatusex.dwLength=Len(MemStatusex) GlobalMemoryStatusEx(MemStatusex) '物理メモリに関する情報を更新する rate_Physical=MemStatusex.dwMemoryLoad SetWindowText(GetDlgItem(hMainWnd,Static_RatePhysical),Str$(rate_Physical)+"%") SetWindowText(GetDlgItem(hMainWnd,Static_UsedPhysical),Str$(Int((MemStatusex.uulTotalPhys-MemStatusex.uulAvailPhys)/1024))+"KB") '仮想メモリに関する情報を更新する rate_Virtual=Int(CDbl(MemStatusex.uulTotalPageFile-MemStatusex.uulAvailPageFile)/CDbl(MemStatusex.uulTotalPageFile)*100) SetWindowText(GetDlgItem(hMainWnd,Static_RateVirtual),Str$(rate_Virtual)+"%") SetWindowText(GetDlgItem(hMainWnd,Static_UsedVirtual),Str$(Int((MemStatusex.uulTotalPageFile-MemStatusex.uulAvailPageFile)/1024))+"KB")End If 'プログレスバーの位置を設定 SendMessage(GetDlgItem(hMainWnd,ProgressBar_Physical),PBM_SETPOS,rate_Physical,0) SendMessage(GetDlgItem(hMainWnd,ProgressBar_Virtual),PBM_SETPOS,rate_Virtual,0)End Sub
https://w.atwiki.jp/ddwrt_openwrt/pages/120.html
docker を使うと 簡単にOS環境を準備できるので、比較的楽に imagebuilder 環境を作ることができます。 今度は OpenWrt Projectが配布している docker imageを利用する方法を紹介します。 docker の準備 Linux環境であればDocker CEを、Windows(Pro以上)ならDocker Desktop for Windows、macならDocker Desktop for macなど、docker が使える環境を用意してください。 Docker IDの準備 Dockerで作成されたコンテナイメージの集積所として公式のDocker Hubがあります。 Linuxディストリビューションのパッケージリポジトリのようなものです。 作ったものをupload(push)するときなどに必要なので以下URLにてDocker IDを作っておくと良いでしょう。 https //hub.docker.com/signup TAGの確認 Docker Hubには各Version/targetごとのimagebuilder Docker Imageが置いてあり、それぞれTAG付けされて管理されています。 このDocker image には最初からimagebuilder自身がインストールされています。加えて動作に必要なLibraly、pkgなど(Linux Kernel以外)が含まれています。 作業を始める前にDocker ImageのTAGを確認します。 以下のURLにアクセスし、tags タブから自分が必要とするTAG名称をメモします。 https //hub.docker.com/r/openwrtorg/imagebuilder 例) ath79 generic Targetの Version 19.07.1 であれば ath79-generic-19.07.1 MT7621 で Version 18.06.7 であれば ramips-mt7621-18.06.7 になります。 docker image ダウンロード(pull) Dockerの用語ではimageのダウンロードのことを pullと呼びます。。 あらかじめ構築されたimagebuilder用Docker imageをdocker hubからpullします。 以下のように実行します。 例)MT7621 で 19.07.1 の場合 docker pull openwrtorg/imagebuilder ramips-mt7621-19.07.1 (TAGを確認したときのページにpull時のコマンドラインも記載されています) pull した imageの確認 以下のコマンドで正常にpullできたかどうかわかります。 docker images コンテナ起動 pullしたDocker imageを「IMAGEBUILDER」というコンテナ名で起動します。 docker run --rm -v "$(pwd)"/bin/ /home/build/openwrt/bin --name IMAGEBUILDER -it openwrtorg/imagebuilder ramips-mt7621-19.07.1 (起動したディレクトリにbinディレクトリが作成され、それがコンテナ内OSの/home/build/openwrt/bin にマッピングされます。 つまり生成物はホストOS側のbinディレクトリ内に作成されます) ※Docker Desktop for Windows では、-v オプションでホストOS側ディレクトリにアクセスさせるためには DockerデスクトップメニューでResources FILE SHARING オプションを設定してください また、$(pwd)の部分はフルパスで記載してください。 プロンプト名が build@xxxxxx ~/openwrt$ などというように変化したら、起動したコンテナイメージ内のbashに移行しています。 OpenWrt image build あとは 通常のimagebuilder と同様に make image でimage作成をしますが、 ホストOS側ディレクトリの関係でpermission Error が表示される場合は sudo make image で実行します。 例) sudo make image PROFILE="wsr-600" PACKAGES="kmod-mt7603 -kmod-rt2800-pci -wpad-mini -iwinfo -kmod-usb-core \ -kmod-usb-ledtrig-usbport -kmod-usb3 -kmod-cfg80211 -hostapd-common -kmod-mac80211 -kmod-mt7603 -wireless-regdb uhttpd luci" 生成が終わったら、exit でshellを終了させると、ホストOS側に戻ります。 生成されたファームウェアはコンテナ内のホストOS側のbinディレクトリ内に残されています。 作業後の後片付け 停止したdocker コンテナの削除 rm オプションを付けてdocker runしているため、exitした時にコンテナは削除されます。 通常は不要ですが、万が一異常終了して、コンテナが残っている場合には、以下のようにして停止・削除してください。 docker ps -a docker stop IMAGEBUILDER docker rm IMAGEBUILDER docker ps -a pullしたDocker imageが不要ならdocker rmi (IMAGEID)または docker rmi (リポジトリ名:TAG名)コマンドで削除してください。 例) docker images docker rmi openwrtorg/imagebuilder ramips-mt7621-19.07.1 docker images
https://w.atwiki.jp/s-ryouri/pages/267.html
960 名前:揚げ ◆hWShz3E48s [sage] 投稿日:09/08/08(土) 21 48 04 ID GRqa89lk さて、久しぶりに揚げ物を作ってみたり。 最近素麺ばかりだったので、楽しかった。 鶏からは、小さいのと大きいのを作って、小さいほうはお弁当のおかず用。 【鶏のから揚げ油林鶏風】 材料 鶏モモ肉500g ・醤油大匙4 ・酒大匙5 すりおろしショウガ(チューブ)大匙1 水1カップ 小麦粉100g ・片栗粉50g 水大匙2 ・ねぎ1/4 ・砂糖大匙1 ・醤油大匙1 酒大匙1 もやし1/4袋 ・塩コショウ適量 1.鶏肉を水で洗ってから、好みの大きさに切る ○2.切ったモモ肉、醤油、酒、ショウガと一緒に袋に入れ、もみ込む 3.30分ほど冷蔵庫に漬け込む。その間に油林鶏ソースを作る。 4.ねぎを微塵切り、水大匙1、酒大匙1、醤油大匙1、砂糖大匙1を小鍋に入れ、火にかけて砂糖が溶けたらおk 5.鶏肉だけパットにとりわけ、余ったタレをボウルに入れ、小麦粉と片栗粉と水をいれ練る 6.鶏肉をボウルにいれ、衣に絡める 7.フライパンを傾けてコンロにおき、油を2~3cmだけいれ、火にかける 8.衣を落として、底に沈まずに揚がるくらいになったら、鶏肉を投下。ぎっちり並べる 9.揚がったものから、端を油につけて3秒まって取り上げていく 10.適当にスライスし、皿に盛る。ソースをかける 11.もやしを炒め、塩コショウと余ったソースを絡め、付け合せにする 12.食らう。甘酸っぱくてウマー http //nagamochi.info/src/up27681.jpg
https://w.atwiki.jp/12kokuki/pages/88.html
テンプレートエンジン 何とかPHPに慣れてきたため、最初は全部自前で書くつもりだったのを、この際やはりテンプレートエンジンを使おうと考え直しました。 ただ、何せ勉強でやり始めたとあって、そもそも表示ページ用PHPファイルと、インクルードするPHPファイルを同じ場所(ドキュメントルート下)に置いてしまったんですよね。でもこれでテンプレートエンジン(Smartyを使用)用に書き直すともっとごちゃごちゃしてくるし、そもそもセキュリティ的にまずいし――ただでさえセキュリティホールを作りこみやすいPHPなので、インクルードするものはドキュメントルートより上に置くようにしました。ちょっと修正が面倒だったけど。 しかしPHPって、どっか一ヶ所に基準パスを指定しておいて、それを使うようにはできないんですかね。一応汎用で使うPHPファイルに定数としてパスを定義してみたけど、その個々のファイルからそれをインクルードするには、やっぱり相対なり絶対なりのパス指定が必要で、変更したいとなったときは試用箇所全部変えないといけない。PHPではどう書くのがセオリーなんだろ。 もっともHTMLで各種ファイルを指定する際もパスを含めて書くわけだから、PHPも普通にそれなんだろうな。 でもまあ一応ディレクトリ構成をやりなおして動作確認はしたので、これでSmarty導入の前準備は終わり。とりあえず一番簡単な、フレームのヘッダページだけSmarty対応にして表示することはできました。 ――うん、ページのデザインとロジックが切り離されていい感じ。 あとは条件文やループなど、各種制御構文を覚えないと。 新しいディレクトリ構成 さて、見よう見まねでSmarty対応は終わったけど、既にそこそこのページ数を作ってあっただけになかなか煩雑でした。まあ、ビューとロジックがごっちゃになってたしね。 Smarty対応後のディレクトリ構成は以下のとおり。 ドキュメントルートは●ディレクトリという前提。もっともうちの環境ではちょっと理由があってこうしてるだけで、★がドキュメントルートでも支障なし。 ■ │ ├ [search] 十二国記サーチ用各種ディレクトリ │ ├ [dat] データディレクトリ │ ├ [log] ログディレクトリ │ ├ [pg] プログラムディレクトリ │ ├ [smarty] Smarty用データディレクトリ │ │ ├ [cache] ※要読み書き権限 │ │ ├ [configs] 定数ディレクトリ │ │ ├ [templates] テンプレートディレクトリ │ │ └ [templates_c] ※要読み書き権限 │ └ [ssn] セッション情報格納ディレクトリ │ ├ [smarty] Smatryのlibの内容をここに置く │ └ [★] └ [●] ドキュメントルート └ [d] 十二国記サーチメイン ├ [img] 画像ディレクトリ ├ [pg] PHPプログラムディレクトリ ├ [smpl] サンプルサイトディレクトリ └ [styl] スタイルシートディレクトリ ※ドキュメントルート下にさらにdディレクトリを設けているのは、検索避けを考慮したため。 2010/12/13 19 49 38更新
https://w.atwiki.jp/wiki6_yae/pages/1963.html
#blognavi 来様は地元の子供会が黒糖作りの体験学習です、我が家前の空き地でやります。 私が講師です、午後1時半集合でサトウキビの収穫作業から黒糖の完成までの全工程を体験したい、と言う趣旨なので午後1時半からではとても間に合わないので一昨日私が収穫しておいたサトウキビで皆さんが収穫作業を終えて戻る予定の午後3時ごろまでに鍋から下ろす行程近くまで作業を進めて、全工程の後半から先に体験させてから、圧搾作業に掛かることになりました。 お陰で今朝は5時起床です、3ヶ月以上使用してないので道具類、用具類の再点検と洗浄などがあり時間にゆとりがあるかどうかわから名ないので作業しながつまみ食いの朝食でした。 ようやく午前8時半から圧搾作業開始できました。 途中子供会の会長と区長さんがお見えになり進行状況の確認をされて、くれぐれも宜しくと挨拶を受けました。 少し風があるので先に張ってあるブルーシートのテントが子供達に怪我のおそれあるかも知れないので運動会などで使用しているテントを準備していただく事になりました。 午前10時半圧搾完了、石灰を入れPH調整を済ませ点火しました。 午後3時ごろ皆さんが集まる頃に鍋から下ろす前の攪拌作業まで進めることにしましたが何時も通り火の勢いを強くすると早すぎるので弱火で皆さんの到着を待ちます。 予定通り午後3時にサトウキビ収穫体験から戻ってきました。 子供会会長の挨拶の後、私にも挨拶と製造工程の説明が廻ってきました。 一通りの説明と挨拶を済ませ、早速体験学習開始です。 半分ずつに分かれ圧搾作業と煮込んである鍋の攪拌作業の掛かりました。 一回りしたら体験が入れ替わります。 午後4時半頃朝から掛かっていた釜の黒糖が出来上がり、ワー、とかバンザーイ、と言う子供達の歓声が上がりました。 試食しながら美味しいと喜んでいました。 同伴のふけに方々も本当に美味しいと食べておられました。 午後5時圧搾完了、石灰を水に溶きリトマス試験紙でPHの測定を示しました。 5時半に点火しましたが2回目の歓声は10時頃になるので前半後半が逆ながら一通りの体験が出来たので、先に出来上がった黒糖を皆さんでお土産にして、午後6時解散となりました。 途中までの物は女房と2人で仕上げる事にして、明日区長さんが取りに来られることになりました。 2回目の黒糖が10時少し前に完成しました、午後7時ごろからは照明を点けての作業となりましたが 落ち着いた作業でほっとしました。 熱いドラム缶製の釜を残して一通りの後片付けを終わったのが午後10時45分でした。 少し危険な部分もあるので子供達相手の黒糖つくりは正直疲れました。 日記も長くなり文章もかなりラフな感じになったような気がします。 カテゴリ [日記] - trackback- 2008年08月18日 01 21 58 名前 コメント #blognavi