平成 29 年度卒業研究 初心者のためのゲームプログラミング用 教材の開発 函館工業高等専門学校生産システム工学科情報コース 5 年 25 番細見政央指導教員東海林智也

Similar documents
目次 1 章序論... 1 第 1 節英文アブストラクト... 1 第 2 節研究目的... 1 第 3 節研究背景... 2 第 4 節開発環境 章簡単なサンプルゲームの作成 章プログラミング言語開発環境の開発... 4 第 1 節開発方法... 4 第 2 節オブジェ

Prog2_12th

,,,,., C Java,,.,,.,., ,,.,, i

スライド 1

ICONファイルフォーマット

C#の基本

VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

プログラミング入門1

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

Prog2_9th

データ構造とアルゴリズム論

とても使いやすい Boost の serialization

Microsoft PowerPoint ppt

Prog2_15th

JavaプログラミングⅠ

11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS デザインパターンとは? デザインパターン 過去のソフトウェア設計者が生み出したオブジェクト指向設計に関して, ノウハウを蓄積し 名前をつけ 再利用しやすいようにカタログ化したもの 各デ

Web Web Web Web i

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

メディプロ1 Javaプログラミング補足資料.ppt

Javaの作成の前に

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

24 LED A visual programming environment for art work using a LED matrix

基礎計算機演習 実習課題No6

MMC Unity講座

WikiWeb Wiki Web Wiki 2. Wiki 1 STAR WARS [3] Wiki Wiki Wiki 2 3 Wiki 5W1H Wiki Web 2.2 5W1H 5W1H 5W1H 5W1H 5W1H 5W1H 5W1H 2.3 Wiki 2015 Informa

グラフィックトレーニング 概要.NET のグラフィック描画は どんなことができるのでしょうか? グラフィックオブジェクトやグラフィック環境 概念を理解するためには クラスを使って馴れることが近道です 本 書に記載されているコードをカットアンドペーストして 一つ一つの機能を体験してください 前提 グラ

Visual Studio2008 C# で JAN13 バーコードイメージを作成 xbase 言語をご利用の現場でバーコードの出力が必要なことが多々あります xbase 言語製品によっては 標準でバーコード描画機能が付加されているものもあるようで す C# では バーコードフォントを利用したりバー


教材ドットコムオリジナル教材 0から始めるiアフ リ リファレンス i アプリ簡易リファレンス ver i アプリ Java 独自のメソッド (1)iアプリの命令を使えるようにする import com.nttdocomo.ui.*; (2) 乱数を使う import java.u

スライド 1

プログラミング基礎I(再)

17 Proposal of an Algorithm of Image Extraction and Research on Improvement of a Man-machine Interface of Food Intake Measuring System

25 AR 3 Property of three-dimensional perception in the wearable AR environment

D:\Documents\Visual Studio 2015\Projects\MyHomePage 用サンプル \ExcelAndWord\ExcelAndWord\MainForm.cs 1 /* */ Excel や Word とやりとりする ~9,20 仕様 Excel

オブジェクト脳のつくり方

TestDesign for Web

The 15th Game Programming Workshop 2010 Magic Bitboard Magic Bitboard Bitboard Magic Bitboard Bitboard Magic Bitboard Magic Bitboard Magic Bitbo

MVP for VB が語る C# 入門

PowerPoint Presentation

JavaプログラミングⅠ

fiš„v8.dvi

TOEIC

fiš„v3.dvi

第5部門_05_垣本 徹.indd

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr

IT i

ListViewコントロール

28 Docker Design and Implementation of Program Evaluation System Using Docker Virtualized Environment

Microsoft Word - A05_AndroidプログラミングJUMP_画面800×1280

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

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

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 ゲームプログラミング スプライトの衝突判定 スプライトの衝突判定 スプライトの衝突判定の例として インベーダーゲームのコードを 下記に示す PYTHON3 #coding: utf-8 import pygame from pygame.lo

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

,.,.,,.,. X Y..,,., [1].,,,.,,.. HCI,,,,,,, i

ソフトゼミA 2015 第0回

熊本大学学術リポジトリ Kumamoto University Repositor Title 特別支援を要する児童生徒を対象としたタブレット端末 における操作ボタンの最適寸法 Author(s) 竹財, 大輝 ; 塚本, 光夫 Citation 日本産業技術教育学会九州支部論文集, 23: 61-


ウィンドウ操作 応用

21 e-learning Development of Real-time Learner Detection System for e-learning

fiš„v5.dvi

GUIプログラムⅣ

2 ColorSpace DepthSpace CameraSpace Kinect V2 Kinect V2 BOdyIndex 3. NtKinect Kinect V2 C++ NtKinect [4] NtKinect = Kinect SDK + + STL(C++) + OpenCV +

子どもの自尊感情の変容と教師との関係性

kantan_C_1_iro3.indd

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

バスケットボール

Web Web Web Web Web, i

IronPython による柔軟なゲーム開発 筑波大学 AmusementCreators

JavaプログラミングⅠ

生研ニュースNo.132


PowerPoint プレゼンテーション

JavaプログラミングⅠ

kut-paper-template.dvi

基礎プログラミング2015

A, K, Q, J, 10, 9, 8, 7, 6, 5, 4, 3,

WPF アプリケーションの 多言語切替

GEC-Java


JAVA入門

Java知識テスト問題


HCI プログラミング 5 回目ウィンドウに画像を表示してみよう 今日の講義で学ぶ内容 画像の表示 画像のエフェクト 画像のビューポート指定 画像の表示 1 画像を表示してみましょう 画像の表示はクラス ImageView により管理されます ソースファイル名 :Sample5_1.java //

17 The Analysis of Hand-Writing datas for pen-input character boxes

プロセス間通信

VB.NET解説

SNS ( ) SNS(Social Networking Service) SNS SNS i

23 The Study of support narrowing down goods on electronic commerce sites


Microsoft PowerPoint - diip ppt

Abstract Kinect for Windows RGB Kinect for Windows v Kinect for Windows v2

Wi-Fi Wi-Fi Wi-Fi Wi-Fi SAS SAS-2 Wi-Fi i

プロシード

ファイル操作

IT プロジェクト

Abstract The purpose of this study is to reveal an effective video effects in Projection Mapping event. So, I made a Projection Mapping event in Old P

26 Development of Learning Support System for Fixation of Basketball Shoot Form

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

16_.....E...._.I.v2006

Transcription:

平成 29 年度卒業研究 初心者のためのゲームプログラミング用 教材の開発 函館工業高等専門学校生産システム工学科情報コース 5 年 25 番細見政央指導教員東海林智也

目次 第 1 章英文アブストラクト第 2 章研究目的第 3 章研究背景第 4 章開発環境第 5 章開発した 2D ゲーム制作ライブラリの概要第 6 章ライブラリの使用方法第 7 章まとめと今後の課題参考文献 1

第 1 章英文アブストラクト The purpose of this research is to develop a library that can create a simple 2D game as a teaching material for game programming for beginners. There are many competing libraries such as Greenfoot [1] and Unity[2], but it is difficult for beginners to deal with them. Therefore, we have developed a simple library using C# with that beginners can study game programming easily. Key words : C#, game programming, teaching material 2

第 2 章研究目的 本研究の目的はオブジェクト指向プログラミングの知識をある程度持っている中級者から初心者までを対象としたゲームプログラミング教育用の教材として 2D ゲーム制作ライブラリの開発をすることである 3

第 3 章研究背景 現在 数多くの競合ライブラリ [1][2] が存在するが 機能が多く複 雑なため扱いが困難であるなど学習者にとって教材として向かない ものが多かった 4

第 4 章開発環境 使用 OS: Windows10 home 使用 PC のスペック :Intel Core i7-3687u RAM 8.00GB 使用ソフト Microsoft Visual Studio 2017 使用言語 C# [3] 5

第 5 章開発した 2D ゲーム制作ライブラリの概要 本研究では学習者が 2D ゲームを制作するために必要なクラスを ライブラリとして実装した 実装したクラスとその機能は以下のとおりである Player クラス ゲーム制作に必要不可欠な自キャラの以下の機能を実装したクラス である ( ソース 1) 自キャラのスーパークラス 自キャラ座標 高さ 幅などの情報を保持 自キャラの描画処理 自キャラの描画処理内容はサブクラスである MyPlayer の MyDraw メソッドに記述する 6

using System.Drawing; namespace stg abstract public class Player public int x; public int y; private Bitmap Img; public int w,h; public Player(int x1,int y1, string a ) Img = new Bitmap(a); x =x1; y =y1; w = Img.Width; h = Img.Height; abstract public void MyDraw(Graphics g); abstract public void Hittest(Enemy enemy); public void Draw(Graphics g) MyDraw(g); g.drawimage(img, x, y, Img.Width, Img.Height);// 自機描画 Img.MakeTransparent(Color.White);// 透過職指定 ソース 1 Player 7

MyPlayer クラス Player のサブクラスであり学習者が制作したいゲームに合わせ 自キャラの以下の機能を拡張するクラスである ( ソース 2) 自キャラ画像の参照 自キャラの十字キーによる上下左右の操作 当たり判定時の処理として自キャラと当たった敵キャラを非表示 にする public class MyPlayer : Player public MyPlayer(int x1, int y1) : base(x1,y1, "playera.png") public override void MyDraw(Graphics g) if ((Keyboard.GetKeyStates(Key.Right) & KeyStates.Down) > 0) x+=14; if ((Keyboard.GetKeyStates(Key.Left) & KeyStates.Down) > 0) x-=14; if ((Keyboard.GetKeyStates(Key.Up) & KeyStates.Down) > 0) y-=14; if ((Keyboard.GetKeyStates(Key.Down) & KeyStates.Down) > 0) y+=14; public override void Hittest(Enemy enemy) enemy.show = false; ソース 2 MyPlayer サンプル 8

Enemy クラス ゲーム制作に必要不可欠な敵キャラの以下の機能を実装したクラ スである ( ソース 3) 敵キャラのスーパークラス 敵キャラの座標 高さ 幅などの情報を保持 敵キャラの描画処理 敵キャラの描画処理内容はサブクラスである Enemy1 の MyDraw メ ソッドに記述する 9

using System.Drawing; namespace stg public abstract class Enemy public bool show; public int x; public int y; public int w, h; private Bitmap Img; public Enemy(int x1, int y1, string a) Img = new Bitmap(a); x = x1; y = y1; w = Img.Width; h = Img.Height; show = true; abstract public void MyDraw(Graphics g); public void Draw(Graphics g) if (show == false) return; MyDraw(g); g.drawimage(img, x, y, Img.Width, Img.Height); ソース 3 Enemy 10

Enemy1,Enemy2 クラス Enemy のサブクラスであり 学習者が制作したいゲームに合わせ 敵キャラの以下の機能を拡張していくクラスである ( ソース 4) 敵キャラ画像の参照 敵キャラの移動処理 public class Enemy1 : Enemy private bool f = true; public Enemy1(int x1, int y1) : base(x1, y1, "enemya.png") public override void MyDraw(Graphics g) if (x == 300) f = true; if (x == 0) f = false; if (f == false) x += 10; if (f == true) x -= 10; ソース 4 Enemy1 サンプル 11

Form1 クラス 各クラスのインスタンス化と以下の機能を実装したクラスである ( ソース 5, 6) 背景画像の描画処理 ゲームクリアの判定処理 キャラクターの当たり判定処理 private Player player; private Enemy[] enemy = new Enemy[2]; public Form1() InitializeComponent(); player = new MyPlayer(380, 200); enemy[0]= new Enemy1(0, 100); enemy[1]= new Enemy2(200, 300); ソース 5 インスタンス化 12

for (int i = 0; i < 2; i++) enemy[i].draw(g); if (enemy[i].show == true) f_clear = false; if (enemy[i].x < player.x + player.w && enemy[i].x + enemy[i].w > player.x && enemy[i].y < player.y + player.h && enemy[i].y + enemy[i].h > player.y) player.hittest(enemy[i]); ソース 6 当たり判定処理 13

第 6 章ライブラリの使用方法 学習者は主に Form1 MyPlayer Enemy1 Enemy2 の 4 つのクラスを使用する Form1 では背景の差し替え メッセージ表示 敵キャラのインタスタンスの追加が可能である Myplayer では学習者が自キャラの操作や当たり判定処理のプログラムを組んでいく 同様に Enemy1 Enemy2 では学習者が敵の動きのプログラムを組んでいく 14

第 7 章まとめと今後の課題 ゲームプログラミング用教材として簡易的な 2D ゲーム制作ライ ブラリを開発した しかし 以下のような課題が残る 今後はこれ らの課題の解決を目指す 未実装の機能 自キャラや敵キャラが発射する弾のクラスを実装し 制作できる ゲームの幅を広げる サンプルゲームの制作 動作確認程度のプログラムしか組んでいないため完成度の高いサ ンプルゲームを制作する 学習者からの評価実際に学習者に使用してもらい アンケート形式でゲームプログラミングを学習する教材として適切かどうか 評価してもらう必要がある 15

参考文献 [1] Greenfoot https://www.greenfoot.org/door [2]Unity https://unity3d.com [3] C# 解説 https://dobon.net/ 16