約 285,201 件
https://w.atwiki.jp/mopsprogramming/pages/70.html
格納文字列の廃棄 格納された文字列をもう使わないのであれば、それにメモリを占拠させておくのは無駄です。RELEASE メッセージを送ると、文字列は廃棄され、確保されていたメモリ領域は完全に解放されます。 RELEASE MyString \ RELEASE ( -- ) ただ、細かいことですが、Stringオブジェクトは、文字列データ以外にもサイズやアクティブ部分を示すオフセットの値といったデータ(インスタンス変数)を持っています。RELEASE メソッドは、これら全てを初期化してくれるわけではありません。もっとも、そのままにしておいても、次に内容を格納したときには、全てが適切な値にセットされるようになっています。 付随的なデータも初期化したいときには、CLEAR メソッドがあります。このメソッドは、マスターポインタ自体は保持しますが、随伴するヒープ領域の大きさは0にセットします。これは結果として、残りのデータを全て初期化することになります。 CLEAR MyString \ CLEAR ( -- ) マスターポインタの分(PPC G3,G4では4バイト)はシステムの側が領域を確保してくれます。特に個数が多くないのであれば、このままでも大きなロスではありません。気になる場合は、重ねてRELEASE すればよいことになります。こうすれば、オブジェクトデータ以外の部分は完全に解放されるとともに、Stringオブジェクトのインスタンス変数も完全に初期化されます。 なお、PUT メソッドを用いて文字列オブジェクトの内容を新たに代入すると、それ以前に格納されていた文字列は自動的にRELEASE されます。したがって、新たにPUT する場合には事前に廃棄操作をする必要はありません。 関連項目: 文字列オブジェクト Stringクラスの基本メソッド Stringの諸データとアクティブ部分 文字列を操作する トップページへ 目次へ
https://w.atwiki.jp/perfumeworld/pages/34.html
ダークウィザード スキル初期化を利用した時点で80でジョーカー同様ほぼ完成 初期化した場合 休憩:1 MP回復:8 ヒーリング:8 コールライト:8 マジックバリアー:12 マジカルブースト:8 ソウルクリーナー:8 エレメンタルブースト:20 アークバウンド:20 クリティカルマジ 8(魔法クリティカル率増加) プロズンビュレット:20(水属性の範囲攻撃) ファイアストーム:20(火属性の竜巻攻撃) 80の時点です その後はクリティカルマジ:14 90からは アグネスの沼:8(一定時間敵の移動速度ダウン+毒ダメージ) クリティカルマジ:20 古代の知識:20(知力、精神増加) サイレンス(闇属性攻撃+一定時間スキル使用不可能)は他のスキルが強いので 上げる必要はないです ファイアウォールは他スキルが強いのでカットしてみました スキル初期化しない場合 クリティカルマジ:8 ファイアストーム:6 アグネスの沼:1 ファイアストーム:20 フロズンビュレット:10 アグネスの沼:8 フロズンビュレット:20 威力の高いファイアストームと毒ダメージの沼優先です 転職後は【ソーサラー?】になります 【マジシャン】へもどる
https://w.atwiki.jp/kokeiro/pages/52.html
other.cppについて ここのシートには、どこに入れればいいのかよくわかんなかった関数が詰め込まれています。全部main.cppに移してもいいかもしれませんね。 このシリーズ読まなくてもコメントアウト見れば大体分かるような気がしてきた。 GetKeyInput関数について // キーボードの押下時間を調べる関数 void GetKeyInput( int *KeyBuf ){ char damy[256];// 押下状況を格納する配列 GetHitKeyStateAll( damy ) ;// 押下状況を格納 for( int i=0 ; i 256 ; i++ ){// 全要素 if( damy[i] == 1 )// 押下されていたら KeyBuf[i]++;// インクリメント else KeyBuf[i] = 0;// ゼロにする } if( Key[KEY_INPUT_F] == 1 )//printfDx関数で書かれた文字を消す clsDx(); } これについての詳細はキーボードの押下時間を調べる方法を見てください。なお、関数の最後にあるif文ですが、「Fキーが押されたらprintfDx関数で書かれた文字を消す」ための処理です。printfDx関数は主にデバッグの際に使用します。また、この関数で描画された文字は普通に裏画面をクリアするだけでは消すことが出来ません。そのため、このclsDx関数を呼び出して消してやる必要があります。どこに書こうか迷ったのですが、とりあえずこの関数に書きました。特にFキーである必要はありません。ホームポジションという理由から選びました。 LoadFiles関数について // ファイルを読み込む関数 void LoadFiles(){ Title.Load(); GameMain.Load(); GameClear.Load(); GameOver.Load(); BgmControl.Load(); SeControl.Load(); } それぞれの構造体のロード関数を呼び出しています。私の中で、ロードの仕方には2択ありました。各構造体に必要な画像、音声を読み込ませ、その構造体でそのまま使用する方法と、画像や音声を専門に格納する構造体を用意し、使用するときはその構造体にアクセスするというものです。前者は別の構造体にアクセスする必要が無いので、管理が楽になります。後者は管理が面倒くさい代わりに、構造体間で共通の情報を扱うことが出来ます(前者でも出来ますが、分かりにくい構造になります)。どちらが有効かは場合によります。この基盤では、画像ファイルは各構造体に格納し、音声ファイルは音声専門構造体に格納する方法を取りました。画像はあまり共通して使用する場合がないのですが、音声ファイルは構造体間で共有して使用する場合があります。 たとえば、タイトルのメニュー選択で使用する効果音と、ゲーム中のメニュー選択で使用する効果音を共有したい場合などがあります。 ChangegameState関数について // ゲームの状態を変更する関数 void ChangeGameState( int NewGameState ){ GameState = NewGameState;// ゲームの状態を更新 switch(GameState){// 新しいゲームの状態の初期化を行うための分岐 case GS_TITLE Title.Init(); break; case GS_MAIN GameMain.Init(); break; case GS_CLEAR GameClear.Init(); break; case GS_OVER GameOver.Init(); break; } } これは、引数に指定されたゲームの状態に変更し、指定されたゲームの状態を呼び出すために初期化の関数を呼び出す関数です。つまり、 タイトル画面からゲームに移るとき、ゲームの初期化関数を呼び出します ゲームからゲームクリアに移るとき、ゲームクリアの初期化関数を呼び出します ゲームからゲームオーバーに移るとき、ゲームオーバーの初期化関数が呼び出します このような機能を持っているのです。だからゲームの状態を変えたいときはGameStateに直接代入したりせず、この関数を呼び出してGameStateの値を変更し、初期化関数を呼び出すようにしましょう。ちなみに、BGMの管理もこれに似た構造を持っています。新しいBGMを流せと関数を呼び出すと前に流れていた曲をとめてから再生を開始します。 タイトル画面に変更したいときはこのように呼び出します ChangeGameState( GS_TITLE ); これでタイトル画面の初期化をしてからタイトル画面に移動することが出来ます。
https://w.atwiki.jp/kokeiro/pages/53.html
title.cppについて もうここまで読んだらなんとなく分かってきたかもしれませんが、やってることはびっくりするほど簡単です。正確にはやってることがとても簡単に見えるくらいまで関数を細分化しているのです。関数を分けて書かないで長文を書くと、やってることは同じなのにとても難しく見えます。 にしても驚くほど説明することがない・・・。 まずはヘッダーファイルから見ます。重複インクルード防止のマクロ記述は腸略します。 const int TG_NUM = 8;//TitleGraphicNumberの略 enum eTG_INDEX{ TG_BACK, }; struct STitle{ int Graphic[TG_NUM]; void Process();// この中でループする void Init();// 初期化 void FirstInit();// コンストラクタ void Load();// ロード void Draw();// 描画系をここにまとめる }; 見るべき点は、const指定による配列のサイズを決めいている点と、列挙型?を用いて配列の添え字を決めている点です。この場合、Graphic配列は要素数が8で、TG_BACKは0として扱われることになります。このような配列の添え字には意味が分かりやすいように列挙型を用いましょう。 Prosess関数について // 全体の処理 void STitle Process(){ Draw();// 描画をする if( Key[KEY_INPUT_Z] == 1 )// キー入力で画面チェンジ ChangeGameState( GS_MAIN ); } 現在は、描画する関数とZキーが押されたらゲーム画面に切り替える機能しかありません。ところで、このDraw関数は同じ構造体のDraw関数を呼び出しているわけです。慣れるまでは分かりにくいと思いますが、慣れると記述が簡単で読みやすくなると思います。 Init関数について // タイトル画面の初期化処理 void STitle Init(){ BgmControl.ChangePlay( BGM_TITLE ); } これはタイトル画面が呼び出されるたびに実行される初期化関数です。下の初期化とは別物です。ChangeGameState関数から呼び出されます。ここではBGMを変更する処理のみ書かれています。このBGMを変更する関数は直前まで再生されていたBGMを止めてから新しく指定したBGMを再生する機能を持っています。ちなみに、Initは英語で初期化を意味するinitializeの略です。 FirstInit関数について // 最初の変数の初期化 void STitle FirstInit(){ memset(this,0,sizeof(STitle)); } これはプログラムが起動した直後に実行される、構造体の変数の初期化をする関数です。main.cppのFirstInit関数から呼び出されます。さて、ここにあるmemset(メモリーセット)関数は、構造体や配列を初期化するときに使用されることがある関数です。とりあえず、この記述は自分自身の変数を全て0にしているということのみ覚えてください。 memset関数をアバウトに説明すると、第1引数が初期化したい構造体や配列の先頭アドレス、第2引数がどの値で変数を埋めるか、第3引数が第1引数のアドレスから、第2引数の値で変数を書き換えるバイト数という動作をします。かなり正確な動作とは違うので、詳しい使い方はググってください。 第1引数のthisは、thisポインタといい、構造体の自分自身をしめすポインタです。分かりにくいですね。そもそも、このプロトタイプ宣言は構造体の定義であって、実体を持っていません。そのため、自分自身のポインタは呼び出されるまで確定せず、定数として扱うことが出来ないのです(だいぶ嘘ついてますが、捕らえ方はこんなかんじ)。そのためthieポインタを使用する必要がるのです。 第3引数の書き換えるバイト数にはsizeof関数を用いています。sizeof関数は、引数に渡された変数や構造体の大きさを返します。単位はバイトです。 基本的に使用するのは第2引数で配列や構造体を埋めたいときに使用します。C言語の構造体?や配列?のとこを見てください。あとで書き足します。 Load関数について void STitle Load(){ Graphic[TG_BACK]= LoadGraph("picture/title_back.bmp");// タイトルの背景画像をロード } タイトル画面に表示する画像を読み込んでいます。今回は読み込む画像は1つですが、拡張性を考えて配列にしてあります。読み込む画像を追加したいときはpictureフォルダに画像を追加し、Load関数で読み込ませてください。 Draw関数について // 描画 void STitle Draw(){ DrawGraph(0,0,Graphic[TG_BACK],FALSE); DrawString(100,100,"タイトル画面です。",White); DrawString(100,120,"Zでゲームスタート。",White); } 読み込んだ画像を表示し、さらに文字を描画しています。TG_BACKはヘッダーファイルで定義した列挙定数です。文字のカラーコードWhiteはglobal.hに定義されているグローバル変数です。描画する順番を間違えないようにしましょう。文字を描画してから背景画像を描画すると、文字の描画は画像に隠れてしまい見ることが出来ません。 また、このDraw関数は極力Process関数の[[はじめに]]呼び出しましょう。これはデバッグする際に役に立ちます。2つのサンプルProcess関数を見てみましょう。 先にDraw関数を呼び出した場合 void STitle Process(){ Draw(); DrawString(...);// この関数の文字を見ることが出来る } 後にDraw関数を呼び出した場合 void STitle Process(){ DrawString(...);// この関数の文字は次のDraw関数に上書きされてみることが出来ない Draw(); } コメントのように、先にDraw関数を呼び出すと、デバッグのために呼び出した文字列を見ることが出来ます。デバッグのために変数を表示したりする場面は多いので、覚えておいてください。
https://w.atwiki.jp/versesaver/pages/324.html
二つ名 エージェント パラメータ上昇値 メインスキル 単体初期化攻撃B 名前 ハードガールA HP 6 サブスキル1 - レアリティ ☆2 SP 3 サブスキル2 ☆4で解放 属性 黄 AT 6 継承エフェクト 縦流線(黄) (演出) 世界相 DF 4 - - IN 8 - - スカウト以外の入手法 - 詳細 ひとこと説明 ダーザイン所属の子供VSエージェント。何事にも動じないストイックな少女。 キャラシート ダーザイン所属の子供VSエージェント。何事にも動じないストイックな少女。 出身世界的に独り立ちする年齢のためか、とても大人っぽい。 特徴 ロール:サポーター(デバフ) <不朽系統樹世界>サウレギア出身。 能力値的にはINが8と高く、サポーターとして活躍できる性能。 早めにメインスキルの単体初期化攻撃Bを使えれば、強力な敵スキルを初期化して弱体化させられる。 このメインスキルはクールガイBも持っており、SPが多いあちらの方がスキル自体は使い易い。 その代わりこちらはHPが多く耐久力があるため、どちらを使うかは好みになるだろう。 育成 エンハンサー サブスキル EX コメント 編集できない人などで何かあれば。荒らしは厳禁。 名前
https://w.atwiki.jp/bokuyo/pages/124.html
変数名に困った時の変数名リスト ぼくなりの変数名の条件 コメントアウトで意味を書かずともわかるもの。 なるべく多くの人がソースを書くときに共通して使っていそうなもの。 描画関連変数 変数名 意味 drawingExtent(s) 描画範囲 top, bottom, left, right 上下左右 depth 深度, 奥行き identification IDとか, identとか. 〜range 範囲? basic〜 基本形? 〜size サイズ Opacity 不透明度 Transparency 透明度 Opaque 不透明 Transparent 透明 関数名 関数名 意味 Initialize() 初期化 UnInitialize() 初期化前の状態に戻す処理, 未初期化, 後始末処理 Finalize() 終了処理, 予約語になってる場合が多くてあまり使われてないっぽい.そのためか, UnInitialize()のほうを終了処理として使ってることが多いっぽい. Execute() 実行する. 読みはエクセキュートらしい…. Register() 登録する. erついてるけれど動詞だよ. Append() (末尾に)追加する Send() 送信する. Transmissionだと名詞になるっぽい Receive() 受信する
https://w.atwiki.jp/sunflowerserver/pages/17.html
2012年10月13日 Ver.1.3.2対応 全ワールドの初期化 2012年7月25日 Minecraft Sunflower Server @ Wiki開設 2012年7月14日 セントラル、アイテムワールドの誕生 2012年7月12日 全ワールドの初期化 2012年6月 Sunflower Server運用開始
https://w.atwiki.jp/nika/pages/176.html
初期化によりデータなし ※ BBSに 有志による64期COスレあり http //jbbs.shitaraba.net/game/54868/#1 グーグルキャッシュ(初期化直前のデータではない) 美遊さんのゾロ目。お見事! -- ティム (2017-09-10 23 52 58) 名前 コメント
https://w.atwiki.jp/versesaver/pages/808.html
スプーキーアンガーズ ~万聖節の怒れる被害者~ 構成 世界相 Wave1 狼男:黄×1、狼男:赤×1、スケルトン:黄×1、ゾンビ:青×1、ゾンビ:緑×1 Wave2 テロリスト:赤×1、ゾンビ:青×1、狼男:黄×1、ゾンビ:緑×1、テロリスト:青×1 Wave3 サイバーニンジャ:緑×1、サイバー魔術師:無×1、サイバー特殊部隊兵:緑×1、狼男:赤×1、ゾンビ:青×1 バトルオーダー ゲストキャラなし 一度も戦闘不能にならない 10ターン以下でクリア 敵詳細 W1 敵名 狼男 属性 黄 コマンド パッシブ 先行チャージ 魅了攻撃 備考 敵名 狼男 属性 赤 コマンド 単体スタン攻撃A パッシブ 先行チャージ スタン攻撃 備考 敵名 スケルトン 属性 黄 コマンド 単体睡眠攻撃A パッシブ 先行チャージ 睡眠攻撃 痛打DF低下 備考 敵名 ゾンビ 属性 青 コマンド 単体初期化攻撃A パッシブ 再生(小) 初期化攻撃 備考 敵名 ゾンビ 属性 緑 コマンド パッシブ 先行チャージ 再生(小) 継続D攻撃 備考 W2 敵名 テロリスト 属性 コマンド 単体復活(小) 単体狂撃D パッシブ 護衛 先行チャージ スタン攻撃 備考 HP200万 敵名 テロリスト 属性 コマンド 単体復活(小) 対象誘導(自) パッシブ 単体狂撃D 先行チャージ 沈黙攻撃 備考 HP200万 敵名 ゾンビ 属性 青 コマンド 単体初期化攻撃A パッシブ 再生(小) 初期化攻撃 備考 敵名 狼男 属性 黄 コマンド パッシブ 先行チャージ 魅了攻撃 備考 敵名 ゾンビ 属性 緑 コマンド パッシブ 先行チャージ 再生(小) 継続D攻撃 備考 W3 敵名 サイバーニンジャ 属性 コマンド 全体2連撃 パッシブ 痛打DF低下 痛打チャージ 備考 敵名 サイバー魔術師 属性 コマンド 全体反射(自)(〇) パッシブ 再生(小) 痛打DF低下 痛打チャージ 備考 敵名 サイバー特殊部隊兵 属性 コマンド 全体復活(中)(〇) 単体復活(小) パッシブ 闘魂 先行チャージ 再行動 備考 HP500万 敵名 狼男 属性 赤 コマンド 単体スタン攻撃A(〇) パッシブ 先行チャージ スタン攻撃 備考 敵名 ゾンビ 属性 青 コマンド 単体初期化攻撃A パッシブ 再生(小) 初期化攻撃 備考 攻略(ゲストあり) 高AT高INの全体攻撃の連発で終わる。下手をすると敵が行動する前に1ターンずつで終わる。 ATバフや多重行動付与があると楽になる。 ※SPが十分高い場合、世界相が一致しなくてもスキルが打てる。 W2 テロリストはHPが高く、十分な火力がないと1ターン突破はきつい。 W3 全体反射を使うサイバー魔術師さえ倒せればあとは全体攻撃の連打でいい。 ただサイバー特殊部隊兵はかなりタフなため強力な単体攻撃がいるといい。 サイバー特殊部隊兵は復活優先なので全体攻撃連打なら気にしなくていい。 攻略(ゲストなし) 今回は敵がすべてモブだが中身は高性能。 大きく2つのタイプに分かれ、「AT高め、HP低め、状態異常攻撃あり」のタイプAと「HP高め、復活あり」のタイプB。 タイプAを素早く倒せる火力がないと厳しい。 ここに限らないが全体CTチャージはほぼ必須で、悠長にCTを溜めていると先行チャージからスキルを撃たれまくる。 先制チャージの発動率がかなり高く、いきなりCTが溜まって不意にスキルを撃たれる事が多い。 W1 基本的に全員が状態異常の攻撃を持っているので、護衛と状態異常回復でうまくしのぎたい。 狼男:黄が敵専用の魅了攻撃を持っており、通常攻撃でも魅了されることがあるので注意。 優先して倒すべきは魅了攻撃を持つ狼男:黄と初期化攻撃を持つゾンビ:青。 W2 テロリストはHPが高い上にスキルが厄介。 単体狂撃Dは発動されるとほぼやられるのでなるべく撃たせないようしたい。 CTが溜まるのは遅めなので素早く倒すかCT遅延をしまくるのがいい。 W3 サイバー特殊部隊兵はHPが高い上に復活を2種持っている。 闘魂と先行チャージの併用ですぐCTが溜まり、再行動があるため沈黙(2アクション)もほとんど意味がない。 そのため逆に敵は復活されるものと考え、起きて瀕死な敵を全体攻撃でまとめて倒してしまう戦法がお勧め。 サイバー特殊部隊兵はATもそこそこあるので、復活スキルに専念させれば攻撃されないのも大きい。 なおサイバー魔術師は全体反射をいきなり張るので、打消しがあると楽になる。 打消しが無い場合は、幸い護衛は居ないので単体攻撃で優先して倒してしまおう。 サイバーニンジャは全体2連撃持ち。INもかなり早いので痛打チャージなどで発動を許すと危険。 コメント 編集できない人などで何かあれば。荒らしは厳禁。 名前
https://w.atwiki.jp/freememo/pages/98.html
概要 初期化 参照 追加 コメント 概要 動的な配列を使用する場合、利用する。 <インクルードヘッダー> #include vector 以降、std名前空間を使用しているものとする。 using namespace std; ちなみに、使用/未使用で宣言が異なる。 使用しない場合) std vector int v; 使用する場合) vector int v; TOP 初期化 空vector 例) vector int v; サイズ、値を指定 例) vector int v(3, 1); vector int iterator p; for (p = v.begin(); p != v.end(); p++) { TRACE(_T("%d\n"), *p); } 実行結果) 1 1 1 他のvectorで初期化 例) vector int a(3, 2); vector int b(a); vector int iterator p; for (p = b.begin(); p != b.end(); p++) { TRACE(_T("%d\n"), *p); } 実行結果) 2 2 2 他のvectorで初期化(範囲指定) 例) vector int a; a.push_back(1); a.push_back(2); a.push_back(3); vector int b(a.begin()+1, a.end()); vector int iterator p; for (p = b.begin(); p != b.end(); p++) { TRACE(_T("%d\n"), *p); } 実行結果) 2 3 TOP 参照 TOP 追加 push_back()を用いる。 例) vector int v; v.push_back(1); v.push_back(2); v.push_back(3); v.push_back(4); vector int iterator p; for (p = v.begin(); p != v.end(); p++) { TRACE(_T("%d\n"), *p); } 実行結果) 1 2 3 4 TOP コメント 名前 コメント TOP