アクション講座 第1回目

Similar documents
C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

スライド 1

C-programming_kouza4(2007)

Microsoft PowerPoint - handout07.ppt [互換モード]

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

<4D F736F F D2091E63589F182628CBE8CEA8D758DC08E9197BF2E646F6378>

Microsoft PowerPoint - 計算機言語 第7回.ppt

メンバ変数とインスタンス

PowerPoint Presentation

ゲームプログラミング講習 第0章 導入

プログラミング入門1

memo

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

#include<math.h> 数学関係の関数群で sin() cos() tan() などの三角関数や累乗の pow() 平方根を求める sqrt() 対数 log() などがあります #include<string.h> 文字列を扱う関数群 コイツもまた後日に 4. 自作関数 実は 関数は自分

プログラミング実習I

Microsoft PowerPoint P演習 第10回 関数.ppt [互換モード]

スライド 1

PowerPoint プレゼンテーション

数はファイル内のどの関数からでも参照できるので便利ではありますが 変数の衝突が起こったり ファイル内のどこで値が書き換えられたかわかりづらくなったりなどの欠点があります 複数の関数で変数を共有する時は出来るだけ引数を使うようにし グローバル変数は プログラムの全体の状態を表すものなど最低限のものに留

問 1 図 1 の図形を作るプログラムを作成せよ 但し ウィンドウの大きさは と し 座標の関係は図 2 に示すものとする 図 1 作成する図形 原点 (0,0) (280,0) (80,0) (180,0) (260,0) (380,0) (0,160) 図 2 座標関係 問 2

PowerPoint プレゼンテーション

C言語講座

Microsoft Word - 3new.doc

C言語講座 ~ファイル入出力編~

1 〇〇クリッカーマニュアル 目次 クリックすると移動します 目次準備 1. VC または VS2013 をインストール 2. DX ライブラリのダウンロードと解凍 3. なんとかクリッカー プロジェクトのダウンロードと解凍 4. なんとかクリッカー プロジェクトを開く編集編集する部分画

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile "data.txt" #define OutFile "surted.txt" #def

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

プログラミング基礎

Microsoft PowerPoint - å®�æ−•è©¦é¨fi3ㆮ対ç�Œ.pptx

また 初期化について 以下のサンプルコードのように指定すれば 定義時に値を代入できます * オマケ配列は同名で複数個の箱を用意出来ます 同名ではありますが それぞれは別々の個体であるわけです また この複数個の変数は メモリ上に連続で確保されます 2. 文字と文字列 C 言語では文字と文字列は異なる

Microsoft PowerPoint - prog03.ppt

cp-7. 配列

Microsoft PowerPoint - lec10.ppt

Microsoft PowerPoint - C4(反復for).ppt

Microsoft PowerPoint - kougi9.ppt

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

Microsoft Word - Training10_プリプロセッサ.docx

AQUOSケータイ3 オンラインマニュアル

前回のあらすじ 物理演算ライブラリ chipmunk を使って チキンが地面に落ちるところまで

(2) 構造体変数の宣言 文法は次のとおり. struct 構造体タグ名構造体変数名 ; (1) と (2) は同時に行える. struct 構造体タグ名 { データ型変数 1; データ型変数 2;... 構造体変数名 ; 例 : struct STUDENT{ stdata; int id; do

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){

C#の基本2 ~プログラムの制御構造~

関数の中で宣言された変数の有効範囲はその関数の中だけです さっきの rectangle _s で宣言されている変数 s は他の関数では使用できません ( 別の関数で同じ名前の変数を宣言することはできますが 全く別の変数として扱われます このように ある関数の中で宣言されている変数のことをその関数の

Microsoft PowerPoint - prog03.ppt

memo

マウス操作だけで本格プログラミングを - 世界のナベアツをコンピュータで - プログラムというと普通は英語みたいな言葉で作ることになりますが 今回はマウスの操作だけで作ってみます Baltie, SGP System 操作説明ビデオなどは 高校 情

<4D F736F F D2089A E838D815B838B B838082C582C D834F F08A7782D42E646F6378>

PowerPoint プレゼンテーション

講習No.12

Microsoft PowerPoint - kougi7.ppt

Microsoft Word - no12.doc

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdio.h> #define InFile "data.txt" #define OutFile "sorted.txt" #def

2.Picasa3 の実行 デスクトップの をダブルククリック 一番最初の起動の時だけ下記画 面が立ち上がります マイドキュメント マイピクチャ デスクトップのみスキャン にチェックを入れ続行 これはパソコン内部の全画像を検索して Picasa で使用する基本データを作成するものですが 完全スキャン

14.event-handling

情報システム設計論II ユーザインタフェース(1)

Microsoft PowerPoint - ca ppt [互換モード]

Microsoft PowerPoint - 説柔5_間勊+C_guide5ï¼›2015ã•’2015æŒ°æŁŽæš’å¯¾å¿œç¢ºèª“æ¸‹ã†¿ã•‚.pptx

Microsoft PowerPoint - prog07.ppt

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 ゲームプログラミング スプライト スプライト Pygame では pygame.sprite を用いる事でスプライトの管理 描画 衝突判定等を簡単に行う事が出来る 此れを利用してキャラクター操作に関する各種機能をスプライトクラスとして 1 個

プログラミングI第10回

JavaプログラミングⅠ

Microsoft Word - Cプログラミング演習(12)

Microsoft PowerPoint - 11.pptx

Microsoft PowerPoint - prog06.ppt

Microsoft Word - no202.docx

PowerPoint プレゼンテーション

ソフトゼミ B 第 2 回画像処理 はじめに第二回ではゲームを作る上で基本となる 画像描写や文字描写を学んでいきます また ゲームの基礎の基礎であるゲームループを作り WaitKey で待つだけでない しっかりとしたゲームの流れを作れるように学んでいきます 画像ファイルの読み込みの準備まずは win

Steinberg 社 - VST3 対応シンセサイザービルド環境テンプレート (Windows 版 ) Quick 説明書 はじめにこの度は Steinberg 社 - VST3 対応シンセサイザービルド環境テンプレートをダウンロードして下さり 誠にありがとうございます 本説明書はビルド環境テンプ

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

3.Cygwin で日本語を使いたい Cygwin で以下のコマンドを実行すると それ以降 メッセージが日本語になります export LANG=ja_JP.UTF-8 これは 文字コードを日本語の UTF-8 に設定することを意味しています UTF-8 は Cygwin で標準の文字コードで, 多

pp2018-pp9base

SuperH RISC engineファミリ用 C/C++コンパイラパッケージ V.7~V.9 ご使用上のお願い

プログラミング入門1

PowerPoint プレゼンテーション

memo

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

PowerPoint プレゼンテーション

Microsoft Word - SKY操作マニュアル.doc

コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol

PowerPoint プレゼンテーション


02: 変数と標準入出力

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

ドライバーを起動する 1 タスクトレイまたは通知領域のアイコンをクリックして 設定画面を開く をクリックします Windows 10 Windows 8.1/8 Windows 7 で通知領域にが表示されている場合は をクリックしてアイコンを右クリックし 設定画面を開く をクリックします 2 ドライ

Microsoft PowerPoint - prog11.ppt

MMO ゲームパッド JC-DUX60BK ドライバー設定ガイド このドライバー設定ガイドは JC-DUX60BK に付属のドライバーを使った 各ボタンやスティックへの機能割り当てや連射の設定などの操作について説明しています ドライバーのインストール方法については JC-DUX60BK に付属のユー

02: 変数と標準入出力

プログラミング入門1

基礎プログラミング2015

ドライバーを起動する 1 タスクトレイまたは通知領域のアイコンをクリックして 設定画面を開く をクリックします Windows 10 Windows 8.1/8 Windows 7 で通知領域にが表示されている場合は をクリックしてアイコンを右クリックし 設定画面を開く をクリックします 2 ドライ

02: 変数と標準入出力

CプログラミングI

ポインタ変数

gengo1-8

コンピュータグラフィックスS 演習資料

ガイダンス

Transcription:

アクション講座第 1 回目 講師 : ウェンディアーサー (WENDY ARTHUR)

講座資料のプロジェクトファイル (zip ファイル ) はソフメ wiki にアップしてますので予めダウンロードしておいてください 講座資料のプロジェクトファイル (zip ファイル ) は解凍してソリューションファイルを開く URL は下記 http://softmedia.sakura.ne.jp/wiki/2017%e5%b9%b4%e5%ba%a6_%e3%82%a2%e3 %82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%B2%E3%83%BC%E3%83 %A0%E8%AC%9B%E5%BA%A7

今日やること (TODAY S TOPIC) ジャンプのプログラムについて 課題 1: ボタンの連続押しを防止させる アニメーションのプログラムについて 課題 2: マップチップの作成 ( おまけ ) 今回使った DX ライブラリの関数について軽 ~ く紹介

その前に (BEFORE THAT) ゲームプログラミング講座の内容覚えてる?( ジト目 ) 今回配布したプログラムは 分割コンパイルや自作関数 それのプロトタイプ宣言 構造体などが容赦なく含まれます 上記の内 わからないまたは忘れたものがあったら 復習しておきましょう ( )

ジャンプのプログラムについて (ABOUT THE PROGRAM OF JUMP)

ジャンプのプログラムについて (ABOUT THE PROGRAM OF JUMP) ジャンプのアルゴリズムは様々ですが 今回は加算 減算のみで出来るものを紹介します ジャンプのプログラムは下記のものでこんな感じ

ジャンプのプログラムについて (ABOUT THE PROGRAM OF JUMP) どういうプログラムか? 1. Jflag が 0 の状態でスペースキーを押す すると Jflag が 1 になる ジャンプ中に追加でジャンプできなくなる 2. 変数 py に Player.Cy を保存 ( 格納 ) する 後に Player.Cy から PLAYER_JUMP を減算 3. Jflag が 1 になったら 変数 ty に Player.Cy を保存 ( 格納 ) し Player.Cy( 現在の Y 座標 ) から py( 前回の Y 座標 ) を減算し 1 加算する 4. 3. を初期位置 400 になるまで繰り返す 5. 400 になったら Jflag を 0 にする

ジャンプのプログラムについて (ABOUT THE PROGRAM OF JUMP) Y 座標 移動量 図. もっとわかりやすい図 時間

ジャンプのプログラムについて (ABOUT THE PROGRAM OF JUMP) まとめ 1. Jflag を上手く使う! 使い方次第で二段ジャンプが出来る かもしれない 2. ジャンプの表現は放物線を描くイメージで! 当たり前 3. ジャンプのアルゴリズムは様々なので 他にも触れてみる これは一例です 他には物理法則を使った方法もあります

課題 1: ボタンの連続押しを防止させる スペースキーを押し続けてもぴょんぴょん跳ばないようにしてみよう スペースキーを一度放して 再び跳べるように改良すること 新たに整数型変数 bflag を宣言し 0 の時はジャンプ可 1 の時は不可 ( ヒント ) さっきの Jflag はどんな役割をしていたのかな?

小休止 (~14:30)

課題 1: ボタンの連続押しを防止させる 答え bflag の宣言 bflag が 0 の時はジャンプ可 1 の時は不可にしたいから

アニメーションのプログラムについて (ABOUT THE PROGRAM OF ANIMATION)

アニメーションのプログラムについて (ABOUT THE PROGRAM OF ANIMATION) 忍者が左右に走っているアニメーションを例に説明します 忍者が走るアニメーションのプログラムは下記のこんな感じ

その前に (BEFORE THAT)

アニメーションのプログラムについて (ABOUT THE PROGRAM OF ANIMATION) まず 下準備として下記の画像をそれぞれLoadDivGraph 関数で分割読み込みをする NinjaL.png NinjaR.png Created by ねこざめ

アニメーションのプログラムについて (ABOUT THE PROGRAM OF ANIMATION) 例として NInjaR.png を LoadDivGraph 関数で読み込みをしてみる LoadDivGraph( picture/ninjar.png,16,4,4,100,100,playergrar) として読み込む 1. 2. 3. 4. 5. 6. 7. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1. 画像ファイルのパス 2. 画像の分割総数 3.X 方向の分割数 4.Y 方向の分割数 5. 分割する X サイズ 6. 分割する Y サイズ 7. 分割した画像の格納をする int 型の配列へのポインタ この画像では分割総数は 16 個 画像の X 方向の分割数 Y 方向の分割数はいずれも 4 分割する画像のサイズは 100 100

アニメーションのプログラムについて (ABOUT THE PROGRAM OF ANIMATION) 7. の PlayerGraR は配列へのポインタなので 配列として扱われる つまり PlayerGraR[0] からPlayerGraR[15] まで下記の画像を分割し 1コマずつ格納される 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

アニメーションのプログラムについて (ABOUT THE PROGRAM OF ANIMATION) もうこの時点でお気づきかと思いますが ( 切 実 ) アニメーションのプログラムは配列の添 え字をひたすら変化させてできるものである ΩΩΩ< な なんだってー!!

アニメーションのプログラムについて (ABOUT THE PROGRAM OF ANIMATION) Player.cpp の void PlayerAnime() を参照 配列 PlayerGraR[] PlayerGraL[] の添え字を frame とし frame の値を変化させることでア ニメーションを作成します 例 ) 忍者を右に向かせ走らせたい時 frame の値をどう変化させるか? 解 )frame の値を 0 1 2 0 永遠と繰り返す frame=(frame+1)%3 0 1 2

アニメーションのプログラムについて (ABOUT THE PROGRAM OF ANIMATION) Player.cpp の void PlayerAnime() を参照 問 ) 忍者を左に向かせ走らせたい時 frame の値をどう変化させるか? 解 )frame の値を 2 3 1 2 永遠と繰り返す frame=((3-frame)+1)%3+1 1 2 3

アニメーションのプログラムについて (ABOUT THE PROGRAM OF ANIMATION) 警告 Player.cpp の void PlayerAnime() を参照 frame の値の変化で間隔を設ける目的で DX ライブラリの関数 WaitTimer (int) を使っていますが 実際のゲームプログラミングでそれを使うのは 絶対にやめてください 他のプログラムが一時的に止まってしまい ゲームの挙動がおかしくなり ます WaitTimer(int) を使わずに済む方法を考えましょう

アニメーションのプログラムについて (ABOUT THE PROGRAM OF ANIMATION) まとめ 1. LoadDivGraph関数を使って画像の分割読み込む 2. 配列の添え字の値を変化させてモーションを付けよう! 3. WaitTimer() 関数はアニメーションで何が何でも使わな い!

課題 2: マップチップの作成 LoadDivGraph 関数を使って 画像を分割読み込みさせてマップチップを作ってみよう ( 当たり判定は抜き ) 新たに Map.cpp を追加し マップチップを初期化する void Map_Init() とマップチップの描画をする void MapDraw() を作成 例 )int MapGra[CHIP_NUM]; LoadDivGraph( picture/mapchip.png,4,2,2,50,50,mapgra); DrawGraph(x*MAP_CHIP_SIZE,y*MAP_CHIP_SIZE,MapGra[Map[y][x]],TRUE); ( ヒント ) 二次元配列 二重ループ

課題 2: マップチップの作成 答え (1/2) Map[][],MapGra[] の宣言 MAP_X,MAP_Y,MAP_CHIP_SIZE, CHIP_NUM のマクロ定義 void Map_Init() と void MapDraw() の作成

課題 2: マップチップの作成 答え (2/2) void Map_Init() と void MapDraw() のプロトタイプ宣言 最後にメイン関数で呼び出し 注 ) 間違っても while 文の中に Map_Init() は書かない事!While 文の中に書いてプログラムを実行すると最悪の場合パソコンが死にます

おわり 次回マップチップの当たり判定スクロール城之内死す

( おまけ ) 今回使った DX ライブラリの関数について軽 ~ く紹介

今回使った DX ライブラリの関数について軽 ~ く紹介 LoadDivGraph(char *filename,int Allnum,int Xnum,int Ynum,int Xsize,int Ysize, int *HandleBuf ) 画像をメモリ上に分割読み込み アニメーションまたはマップチップの作成に役立つ DeleteGraph(int GrHandle) 指定の画像をメモリ上から削除 ( 解放 ) WaitTimer(int time) time[ ミリ秒 ] だけ処理を止める アニメーションの間隔を設ける 目的では使わない!( 念押し )