コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

僕も本格的なゲームとかつくるのを夢見たいんだ

エディタ起動して2秒で挫折した

ゲーム制作ってライブラリやプラグインが充実していて、ドキュメントやサンプルが豊富で、コミュニティが活発な言語で書いたほうが良いんだろうなっていうのは頭ではわかるんだ。つまりは、わからなくなったら聞ける人がいるかどうかなんだと思う。だけど、僕はコミュ障なんだ。いくらどんなプログラミング言語が盛んだろうがそんなものは関係ないんだ。そう、すべてが無だ。

とにかく手を動かすという方針で何かをつくることにした

簡単に物理エンジンを組み込めるし、追加で準備する必要がないということなのでHSPでゲームをつくっていこうと思った。これを使って何ができそうか試しながらゲームを作っていこうと思う。

今の段階だと、弾除けゲームとかクイックスみたいなゲームかなあ。デフォルトの見た目の印象で決めてるから物理エンジンが入り込む余地がないのがあれだけど...
f:id:andron:20160814143330p:plain
物理エンジンOBAQのデフォルトの見た目。
枠内にオブジェクトを入れてその物理挙動を楽しむツール。デフォルト設定だと下に重力が働く。

とりあえず物理エンジンOBAQについてのマニュアル
物理エンジンOBAQマニュアル

マニュアル読んでもパラメータいじることでどこまでを変化させることできるのかさっぱりわからない。qaddpolyとか第11パラメータまであるとかどこぞに書いてある。


とりあえずいじるしかなかったので試しに動かしてみた。
f:id:andron:20160814143924p:plain
キー入力で顔(プレイヤー)を上下左右に動かせるようにしたもの。

ソースコードは以下

#include "obaq.as"
    screen 0,320,240:title "OBAQ_Test00"	

;OBAQ初期設定
		qreset					;OBAQの初期化
	;操作キャラ設定
		mx=40					; X座標
		my=30					; Y座標
		msp=1					; スピード	
	;OBAQの物理挙動を楽しむためのオブジェクト生成
		qaddpoly face, 36, mx, my, 0, 3, 3 ;
		celload "face.png":player=stat	   ; 元画像のIDを保存
		qinertia player,,0
		qdamper player,0
		qmat player, mat_spr, player

;;; メインループ ;;;
*main
;オブジェクト操作
	qpos player,mx,my,0
	qspeed player,,,,1
	
;描画時前処理
	redraw 0					; 描画始め
	color:boxf					; 背景を消す
	gmode 2						; 透明色ありの指定

;OBAQ描画処理
	qexec						;オブジェクトの更新
	qdraw 						;オブジェクトの描画

;描画時後処理
	redraw 1					; 描画終わり
	await 20
	
;キー入力
	stick key,15
	;左方向
	if (key&1){
		mx=mx-msp
	}
	;右方向
	if (key&4){
		mx=mx+msp
	}
	;上方向
	if (key&2){
		my=my-msp
	}
	;下方向
	if (key&8 ){
		my=my+msp
	}
	goto *main

キーで動かすようにすると壁に接触した時の挙動がきもくなる。これどうやって解消すればいいんだろう。あと書いてて思ったけれど、おまじない的な部分が多くて覚えることだらけだ。