トップページgamedev
981コメント382KB

【2D】ゲーム作成ツールGameMaker part4【マンセー】

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2009/04/23(木) 08:11:08ID:iAS0afeL
無料Windows用2Dゲーム作成ツール"Game Maker"について、色々と語り合うスレッドです。

●本家(英語)
 ttp://www.gamemaker.nl/
●GameMaker Japan - 非公式情報サイト(日本語)
 ttp://gamemaker.main.jp/(現在一時閉鎖中)

前スレ
【2D】ゲーム作成ツールGameMaker part3【マンセー】
ttp://pc11.2ch.net/test/read.cgi/gamedev/1210437707/
0044名前は開発中のものです。2009/05/18(月) 17:49:24ID:a2nKWYl/
>>42
これは配列でも大丈夫なのでしょうか?
あとで確認してみます

>>43
うっ、それだと厳しいかも
自前でセーブデータ作るスキルなんてもちろんありません
0045名前は開発中のものです。2009/05/18(月) 22:50:31ID:+hdy116l
ウイルスバスター使ってると、プレイ時にDLLの不正な変更っていうことで引っかかるのですが
これはもうプレイヤー側でウイルスソフトの設定を変更してもらうしかないのでしょうか?
また、他のウイルスソフトでもなにか不具合が出るようなことはありますか?
0046名前は開発中のものです。2009/05/25(月) 07:29:18ID:MF59dodD
ほす
0047名前は開発中のものです。2009/05/25(月) 22:09:24ID:I99gorNP
設定厨無双
0048名前は開発中のものです。2009/05/25(月) 22:15:03ID:I99gorNP
誤爆
0049初心者2009/05/25(月) 23:46:01ID:lzywA0Ki
いきなりですいません、GameMaker7をvistaで使おうとしてるんですが、
いつもGM7を起動すると
「Failed to set data for」というエラーメッセージが出てしまいます。
どうすればいいでしょうか?
(あとGamrMaker6も起動できない)

0050名前は開発中のものです。2009/05/26(火) 18:44:28ID:ZKMeRAmo
vistaじゃないからしらないけどvistaの互換モード設定とかしてもダメ?
0051名前は開発中のものです。2009/05/27(水) 02:44:40ID:rNo6lgDG
俺は>>50じゃないが補足しとくと、ver6はvista対象外だったような
0052名前は開発中のものです。2009/05/28(木) 00:52:45ID:B8g3x9Vp
GM7 Proだがexecute_stringが動作しない。
きちんとexecute_string(string, arg0, arg1, ...)と呼び出してるんだが、どうもargの部分を読み込んでない。
同じような現象に遭った人いる?
0053名前は開発中のものです。2009/05/28(木) 02:51:25ID:lnwROd2o
具体例がないと何とも言えんね。試しに
execute_string("show_message(string(argument0 + argument1));", 5, 10);
とかやったらちゃんと15って表示されたけど。
0054初心者2009/05/28(木) 12:59:02ID:um1T+wUq
回答してくれた人ども。
GameMaker5なら何にも起きなかったから
これからはこいつを使って生きていきます。
0055名前は開発中のものです。2009/05/28(木) 12:59:06ID:HERKIKRw
もともと変数として登録されている単語の場合反応しないことはあったな
argが何の意味かわしらないけど、そこまでわかってるんならarguとかに変えてみたら?
0056初心者2009/05/30(土) 20:10:27ID:NCREypVm
またまたいけないことが…
今度はGameMaker5.3Aをインストールした後にシャットダウンをして、
パソコンを起動すると、青い画面でエラーのメッセージが出てしまいました。
訳してみるとメーカーに聞けとかなんとか書いてありました。
0057名前は開発中のものです。2009/05/31(日) 00:26:08ID:CuZ8k7Sq
じゃあメーカーに聞けよ。
起動してるんなら問題の切り分けをやってからまたこい
多分原因はGMじゃなさそうだし
0058名前は開発中のものです。2009/05/31(日) 00:56:53ID:honfMFUG
それ今流行のGENOウィルスじゃないか?
感染したら対処法はクリーンインストールのみ
ご愁傷様
0059名前は開発中のものです。2009/05/31(日) 13:17:21ID:HaetKIli
>>56
そのPCぶっ壊れてるよ
0060名前は開発中のものです。2009/06/01(月) 05:41:29ID:YdpX7PIF
>>53
すまん、具体的には

var str; str = "set_status()"; //void set_status(level)はlevelに対応したステータス値を設定する関数
var level; level = 5;

execute_string(str, level);

とやると、levelの部分が0(デフォルト)として実行されてるようだ。
もしかして、>>55に倣って

execute_string("set_status(argument0)", level);

ならうまくいくかも?試してみる。

>>55
argはargumentの意味だった
0061名前は開発中のものです。2009/06/01(月) 19:52:42ID:ql4Eo5UD
それだったら execute_string("set_status(" + string(level) + ")") でもいけるけどね。
いずれにせよ引数は括弧の中に入れないと。
ちなみに、呼び出すスクリプトを条件によって変えたいとかだったら
var scr = set_status; script_execute(scr, level); みたいな方法もあるよ。
0062名前は開発中のものです。2009/06/04(木) 17:24:58ID:TynQfM6F
ゲーム中でマウスで絵を描くようなことはできるでしょうか。
クリック中カーソル位置に1×1のスプライトを常時生成するようにすればいいのかな…
0063名前は開発中のものです。2009/06/05(金) 03:41:40ID:Camx1Ihz
pro版ならsurfaceを使うといい
0064名前は開発中のものです。2009/06/07(日) 10:39:37ID:/Gt4zmXi
補足すると、前回のmouse_x、mouse_yを保存しておいて、
前回の座標から今の座標までの直線をsurfaceに描くといい。
0065初心者2009/06/07(日) 23:47:47ID:xZXdylHw
リカバリしてからインストールしたら何も起きなかった4
みんなありがと。
0066名前は開発中のものです。2009/06/09(火) 07:22:23ID:Mr7H2dJs
>>61
レス遅くなったが、ありがとう。
0067名前は開発中のものです。2009/06/09(火) 23:26:02ID:/A6oscIe
これ使ってゲーム作ってる人ってまだいるのかな?
なんか国内だとユーザが四散しすぎてどこが使ってるのか把握できない。
おかげでモチベ高める要因になる「ヨソの作品」が見れない・・・
まさかどっかのSNSに篭ってたりしないよね。
0068名前は開発中のものです。2009/06/10(水) 13:40:05ID:lkvwDcPJ
ツクールと違ってアプリ名がアプリ名だからね。
Gamemakerでググってもそうピンポイントにヒットはしないだろうし
ポータル的なところも無いので仕方ないのでは。

自己申告か登録制のリンク集でも作るしかないんじゃね?
0069名前は開発中のものです。2009/06/10(水) 17:43:54ID:4GXgyKWn
まぁ、例えばだけど
東方2次創作系とかをGMで作ったとしても
ツール名よか東方という方が先に来るよね。
さらに両方のコミュに公開するのもいいけれど
マルチだ!なんて言われるのも嫌だし。
0070名前は開発中のものです。2009/06/10(水) 23:28:59ID:N2mUYF3L
ルイージみたいに、移動したあと滑るような設定がしたいんですけど???
移動するキーをはなすと滑るような感じにはできたけど、滑りが止まらなくて…
0071名前は開発中のものです。2009/06/10(水) 23:30:30ID:gFnLIDSV
friction使うといいよ。
0072名前は開発中のものです。2009/06/11(木) 02:41:03ID:hM9MlpU0
6月1日以降にGM7買った人は、GM8に無償でうpぐれしてくれるってさ。
GM8の最大の売りは32bitアルファ入りPNGの完全サポートみたいだけど
描画処理速度も改良してるのかな?
0073名前は開発中のものです。2009/06/11(木) 07:42:48ID:0copMWhW
透過PNGなんか今までのアルファマスクで同じことできるから別にいいけど、日本語の描画ができるかどうかのほうが気になるなぁ。
例の日本語描画スクリプトがGM8でも使えるとは限らないし。
0074名前は開発中のものです。2009/06/11(木) 10:04:12ID:yCzxvlpc
ライバル?なMMF2は日本語対応してるっぽいしねぇ。
GMにもがんばって欲しい。
0075名前は開発中のものです。2009/06/11(木) 10:35:30ID:hM9MlpU0
MMF2はスクリプト言語みたいな奴が使えないんだっけか。
なんかどっちもオビに短し襷に長しだな……
0076名前は開発中のものです。2009/06/11(木) 17:50:55ID:AH7mXwUY
MMFはあまりに逸脱したことやろうと思ったらCでプラグイン作ることになる
0077名前は開発中のものです。2009/06/11(木) 20:45:38ID:Xr1c+RM/
そこまでやるんだったら1からCで作ったほうがいいような
0078名前は開発中のものです。2009/06/12(金) 03:45:24ID:VmmOxjFW
一般人が思いつくレベルのプラグインはどこかに転がってる。
0079名前は開発中のものです。2009/06/12(金) 18:32:50ID:E/MTiP9/
主人公の名前などを入力させるときにキーボードを使いたいのですが、入力した文字を処理するようなのはどのようにすればいいのでしょうか。
0080名前は開発中のものです。2009/06/13(土) 22:42:34ID:S3sYVLNc
AIの様な物をくんでいるのですが
主人公のオブジェクトが一定範囲に入ると(たとえば他のオブジェクトからx0〜x100)
その、他のオブジャクトが攻撃をしてる来るようにするにはどうすればいいのですか?
0081名前は開発中のものです。2009/06/14(日) 19:51:08ID:pQ813qxp
距離を求めるには三角関数
0082名前は開発中のものです。2009/06/14(日) 20:22:24ID:qBcpR4mE
そこはdistance_to系でなんとか
0083名前は開発中のものです。2009/06/15(月) 04:07:04ID:Jk+7aDnj
HelpのWithの一番下。
0084名前は開発中のものです。2009/06/15(月) 10:36:27ID:23XdDxQD
会話文というか台詞とかで文字を一文字ずつ表示したいのですが可能でしょうか?
スプライトで一文字ずつとかだと容量と労力的にあれなので…
0085名前は開発中のものです。2009/06/16(火) 03:14:11ID:v54fMc4S
そんなに面倒じゃないんじゃない?
表示したい文は変数にぶちこんでおいて、その内n文字目までをstring_copyで取り出す
そいつをmbtext_drawで描画
あとはstepイベントとかでnを1(全角文字だと2?)ずつ増加させればいい
0086名前は開発中のものです。2009/06/17(水) 00:59:47ID:Sc9d9kYD
最近一文字ずつってはやらないけどな
0087名前は開発中のものです。2009/06/17(水) 06:19:32ID:hhADprYO
一文字ずつ表示させるときの利点は、表示スピードを調整することで台詞に表情をつけられること。
一文字ずつってのも使い方によってはいい表現方法だ。例えば逆転シリーズとか。
流行るとか流行らないとかってのは別として、作りたいものをどう作るかってのを考えるのが重要じゃないか?

取り出す文字数については、ord(str)を使ってアスキーコードが半角文字の範囲内かどうかを見ればいいかと。
0088名前は開発中のものです。2009/06/18(木) 00:58:41ID:wIJB7n7l
FPSを常に画面に表示したいのですが、変数描写でfpsと入力してもfpsと関係ない数字が出てきます(なぜか毎回12)。
クリエイトの瞬間しかfpsを獲得できていないのかな?と思ってステップイベントで「karifps = fps」などやってみましたが
デバッグのローカル変数でチェックしても読み取られている変数は相変わらず12のままぴくりとも動きません。
描写以前にリアルタイムでfpsの値を獲得する方法が知りたいのですかどのようにすればいいでしょうか。
バージョンは5.3Aです。
0089名前は開発中のものです。2009/06/18(木) 01:16:41ID:74/Cyd0p
音割れバグってまだある?
0090名前は開発中のものです。2009/06/18(木) 01:40:17ID:k3jAIdi/
>>88
fpsって名前のリソース(オブジェクトとかスクリプトとか)がいると思われる。
12ってのはそのリソースのインデックスね。
コードエディタでfpsって打ったら紫になってないか? 本来は青になるはず。
あと、fps知りたいだけならデバッグウィンドウの下に表示されてるけど。
0091名前は開発中のものです。2009/06/18(木) 13:11:50ID:wIJB7n7l
すみません、ありがとうございます。
ご指摘の通り以前何かの拍子で作って使われていないオブジェクト「fps」がありました。
削除して設定し直したところ無事表示されるようになりました。

>fpsが知りたいだけなら
音を指定した時にテンポよくならしたいのでなるべく画面上に目安としてfpsを表示しておこうと思いこうしました。
0092名前は開発中のものです。2009/06/20(土) 13:33:29ID:vzgPBlgb
大量のアイテムを用意する場合、やっぱりマップ構造の方が良いのでしょうか?
二次配列との違いはソートが容易なことくらいでしょうか?
0093名前は開発中のものです。2009/06/20(土) 19:53:34ID:1YxSRwAF
すいません、i wanna be the engine ってツールあるんですけど、
茶色いブロックを置くにはどうすればよいでしょうか?
もちろん、このGameMakerを使用したツールですよ。
0094名前は開発中のものです。2009/06/20(土) 19:58:50ID:322qb69N
ツールじゃなくてGameMaker用のデータでしょ?
ツールはGameMakerのほうだろ?
0095名前は開発中のものです。2009/06/20(土) 20:01:46ID:1YxSRwAF
ああそうでした、すいません、すいません。
で、どうやっても茶色いブロックが置けないんです。
それに、白いブロック消すと下から茶色いブロックがでてきて、
それを消すことも出来ません。
どうすればよいでしょうか?
0096名前は開発中のものです。2009/06/20(土) 22:20:05ID:s3/tqk3E
茶色いブロックはオブジェクトではなくタイル。見た目をこれで作る。
白いブロックは、壁オブジェクト。
これはエディタ上で見えて、プレイ上では見えないようになっている。

つまり、見た目と実際の壁を別々にして配置するような仕組みになっている。

何でこんなことをするかというと、
見た目が変わっただけの壁オブジェクトを何種類も作るのは無駄だから。
(オブジェクトの種類が多いとコリジョン判定で時間がかかってしまうことになる)

これは壁の仕組みの基本みたいなんで、覚えておいておくとよいらしい。
0097名前は開発中のものです。2009/06/21(日) 13:30:43ID:7yJhJEni
じゃあそのタイルはどうやって配置すれば?
0098名前は開発中のものです。2009/06/21(日) 14:17:02ID:oL6yW/qB
roomにはタブが5つある。
objects, setting, tiles, backgrounds, views。
そのうちのtilesを使って配置する。
0099名前は開発中のものです。2009/06/21(日) 14:34:01ID:7yJhJEni
objects settings backgrounds
の3つしかないぞ・・・
tilesとviewsがない!
0100名前は開発中のものです。2009/06/21(日) 14:36:53ID:7yJhJEni
あ!アドバンスモード(?)にしたらあった!!
0101名前は開発中のものです。2009/06/21(日) 16:12:40ID:00ja3K+1
これはひどい
0102名前は開発中のものです。2009/06/21(日) 16:37:24ID:TUyB53a6
ひどすぎて噴いた
>>96が悲しむ姿が目に浮かぶわ・・・
すごいわかりやすい説明してたのにね
0103名前は開発中のものです。2009/06/21(日) 17:17:08ID:7yJhJEni
もちろん>>96には感謝してますよ。

ところで、タイトル画面ってどうすれば
0104名前は開発中のものです。2009/06/21(日) 17:19:45ID:oL6yW/qB
これはひどい
質問の内容が成立していない
何を聞きたいのかわかりゃしない
0105名前は開発中のものです。2009/06/21(日) 18:40:49ID:7yJhJEni
タイトル画面は作れるのですか?
作れるとしたら、どうすればよいのでしょうか?
0106名前は開発中のものです。2009/06/21(日) 18:53:43ID:00ja3K+1
http://www.google.co.jp/search?hl=ja&safe=off&q=Game+Maker+%E8%AC%9B%E5%BA%A7&lr=lang_ja
0107名前は開発中のものです。2009/06/21(日) 18:55:33ID:Rr9tcNOb
>>105
普通にroom作れ
0108名前は開発中のものです。2009/06/21(日) 19:11:06ID:oL6yW/qB
どうすればって、作りたいように作ればいいんじゃない?
ゲームを作っているのなら、何かゲームをプレイしたことあるだろ?
全部が全部同じタイトル画面だったか?
マウスで画面をクリックするとゲームが始まるとか、
画面にあるボタンをクリックするとゲームが始まるとか、
キーボードのあるキーを押すとゲームが始まるとかメニューを開くとか、いろいろある。

どうすればって聞く前にどうしたいのかを考えろ。
どう作りたいかもわからんのに何を言えと言うんだ。
何をしたいのかはっきりさせろ。話はそれからだ。
ついでに、○○みたいなタイトル画面、みたいな漠然としたアイデアじゃなくて、
何が起こったときにどうしたいのかを考えると、何をするべきなのかが自然と見つかる。
0109名前は開発中のものです。2009/06/21(日) 20:05:45ID:IeTSzOs/
※注! ID:7yJhJEniはニコニコ動画の生放送で質問するような阿呆です!
0110名前は開発中のものです。2009/06/21(日) 21:04:48ID:5IVlmvDF
※注意! ID:IeTSzOs/はニコニコ動画の生放送なんかを見ている低脳です!
0111名前は開発中のものです。2009/06/21(日) 21:08:45ID:Rr9tcNOb
まあ、おそらくツクール脳なんだろうな
0112名前は開発中のものです。2009/06/21(日) 23:15:50ID:IeTSzOs/
>>110
別にいいじゃん(´・ω・`)
0113名前は開発中のものです。2009/06/22(月) 15:12:41ID:cyzBoAsQ
どう見ても、ニコ生使って質問してるID:7yJhJEniがキチガイだな
0114名前は開発中のものです。2009/06/22(月) 16:13:53ID:gIps/Kzs
>>108 では、具体的に説明します。

背景は黒。
タイトル文字は2列(上段太文字、下段小文字)
「START」と「CONTINUE」の項目が上下にあって、
マウスでクリックして選択。
キャラクターの絵を出す。
ついでに音楽も流れるようにする。
0115名前は開発中のものです。2009/06/22(月) 17:21:32ID:gIps/Kzs
すいません、>114は取り消しでwwwwww。
ところで、ワープってどう設定すればよいのでしょうか?
普通にやっても、エラー画面が出て終わってしまうんです。
どうすれば次の部屋に行くようになりますか?
0116名前は開発中のものです。2009/06/22(月) 23:03:58ID:wUfa0Lvh
>普通にやっても
「普通」ってのは説明になってない。
具体的に何をしたのか書くこと。
>エラー画面が出て
エラー画面には何がエラーを起こしているのかが書かれている。
エラーが出たならエラー内容を書くこと。
0117名前は開発中のものです。2009/06/23(火) 07:31:18ID:u1YEd1nS
せっかく>>90の見事な回答を見ていい気分だったのに、なんだこれは新手の荒らしかw

まず、ID:gIps/Kzsにはマニュアルを読んで試行錯誤するという発想があるのか?
自覚があるのかわからんが、上で聞いていることはGMの中でも初歩中の初歩だ
その程度の内容ならマニュアルにそのまま答えが書いてある
0118名前は開発中のものです。2009/06/23(火) 10:25:53ID:3z1JGY14
こんな感じ
FATAL ERROR in
action number 1
of Collision Event with object player
for object roomChanger:

Unexisting room number: 0
0119名前は開発中のものです。2009/06/23(火) 11:58:10ID:je7ivZKW
存在しないルームに行こうとしてるのが原因と書いてある。
ルームの移動先は正しく指定したのか?
>>116に具体的に何をしたのか書くこととあるだろうが。
何で何度も同じことを言われないとわからんのだ。

ツクールと比べて自由度が高い分、何でも自己責任で作らなければいけない。
マニュアル読めないやつは、いきなり作りたいゲームから作ろうとするな。
まずチュートリアルに沿ってゲームを作るなり、Exampleを見ながらその通りに作ってみるなりしてGMに慣れるのが先だ。
自由に作るのは慣れてからにしろ。
0120名前は開発中のものです。2009/06/23(火) 14:07:16ID:3z1JGY14
worpのオブジェクトを選んでぽんと置いただけですwww。
これだけでは次のルームにワープするわけがないというのですね。
次のルームへ移動するためには、どう設定すれば良いのでしょうか?
0121名前は開発中のものです。2009/06/23(火) 14:29:59ID:kUxvm7WB
>>120
それを自分で学習できないようじゃ
このツールを使うのは向いてないよ
0122名前は開発中のものです。2009/06/23(火) 16:08:41ID:3z1JGY14
自分で学習できないようじゃ、って言われてもね〜。
もう一つ気になってるんだけど、has code ってなに?
0123名前は開発中のものです。2009/06/23(火) 16:13:46ID:Pc2GWQ8q
みんな分かってると思うけど
NGID:3z1JGY14
0124名前は開発中のものです。2009/06/23(火) 22:08:54ID:NBD7UU/C
>>122
has codeだけでは…。その前後に文章は無かったですか?

ttp://kabocha.sakura.ne.jp/uploader/src/up0378.zip
とりあえずルーム移動のサンプルを作りました。簡単なつくりですが、これと照らし合わせながらもう一度試行錯誤してみてください。
※GM6.1で作っています。

ただいろいろな方が言われているとおり、質問される前に一度インターネットで調べるであるとかいろいろ試してみるとかされるのが望ましいかと。
意外とGM利用者も多いみたいですので、「GameMaker 解説」等で検索すると参考サイトも見つかるかと思います。一度お試しください。
01251242009/06/23(火) 22:12:36ID:NBD7UU/C
すいません。一点だけ書き忘れてました。

サンプル内のGame Informationに解説を書いていますので、それをお読みいただくと一層理解が深まると思います。
0126名前は開発中のものです。2009/06/24(水) 00:11:17ID:Q45EUiKY
ルームエディタ内にインスタンス(オブジェクトを実際に配置したものをこう呼ぶと思いねえ)
を置いて、Ctrl押しながら右クリックするとポップアップメニューが出る。
その一番下の「Creation Code」というのを選んでみると、コード編集画面が現れる。
これはCreateイベントのようにオブジェクト単位ではなく、
インスタンスごとに個別に初期化コードを記述できるというすぐれもの。
例えば移動先ごとに別々のオブジェクトを定義しなくても、
Creation Codeで移動先を定義してやればオブジェクト一種類で済ませられる。

さて、再びルームエディタに目を戻そう。インスタンスの上にマウスを移動させるたび
下のステータスバーにIDなど色々な情報が表示されることに気付くはず。
ここで今しがたCreation Codeを定義したインスタンスの上にマウスを置くと、
idの隣に「has code」という文字が表示される。これはCreation Codeが定義済みですよと、
いちいちCtrl+右クリックで開いて確認しなくても済むように表示されているわけだ。

つまり122はこの初期化コードを利用して、一種類のオブジェクトで別々の部屋に移動するような
サンプルをいじりながら話をしていると推察されるわけだが、そんだけの情報でわかるかこんちくしょう
0127名前は開発中のものです。2009/06/24(水) 05:12:50ID:zrT0JE6k
>自分で学習できないようじゃ、って言われてもね〜。
>>119にも何でも自己責任で作らなければいけないとあるだろうが。
自分で調べることを知れ。低脳。
0128名前は開発中のものです。2009/06/24(水) 06:50:48ID:j1ZRO4Kv
>>124-126の大人っぷりに泣いた
>>122は彼らに感謝しろよ、それと小中学校のどっちでもいいから卒業してくれ、頼む
0129名前は開発中のものです。2009/06/24(水) 08:54:08ID:q+ZjUiLQ
>>122
とりあえず同じ質問を2ヵ所でするのはやめてくれ
折角答えてくれる人に失礼だ
0130名前は開発中のものです。2009/06/25(木) 00:05:05ID:XavehMxJ
あのさ、お前ら>>122に、そんなまともな頭があれば、
そもそも、こんな頭の悪いゆとりレスをしてくるわけがないだろ
>>122みたいな白痴は、もうここ読んでないし、
そんなマジメに相手してやる事自体が無意味だよ
0131名前は開発中のものです。2009/06/25(木) 02:21:21ID:fllMyOLZ
っていうか奴は>>124-126読んでも理解できないと思うし、高確率ではなから読む気がない。
(とか書いておくと反抗期の小学生は頑張る)
0132名前は開発中のものです。2009/06/25(木) 18:16:46ID:DXf4kZNS
すいません、数学の話なんですけど、draw_sprite_generalで描画すると四角形の左端を中心に回転しますよね?
縦辺の長さと横辺の長さをh,wとして角度が増えるたびx,yにh,wとθで計算した数値をいれれば、回転する点を変えられると思うのですが、どういう風に計算すればいいでしょうか?
0133名前は開発中のものです。2009/06/25(木) 22:55:29ID:QCl4CUg1
回転の公式でググって、GMだとY座標が下向きだから適当に反転する
dx = w/2; dy = h/2; // 原点から回転の中心までの距離
dx' = lengthdir_x(dx, θ) - lengthdir_y(dy, θ)
dy' = lengthdir_y(dx, θ) + lengthdir_x(dy, θ)
これを中心点に足すなり引くなりすればいいべ
0134名前は開発中のものです。2009/06/25(木) 23:26:38ID:DXf4kZNS
あーなるほど!lengthdirを使えばよかったのですね!
サインコサインをなんとかすんのかなあ…とずっと考えてました。ありがとうございます!
0135名前は開発中のものです。2009/06/26(金) 01:19:08ID:R2VlleOL
俺ならsprite_set_offsetで画像の中心を移動して、あとはsprite_draw_extで回転角をいじるかな
0136名前は開発中のものです。2009/06/26(金) 22:27:11ID:XzTjtQH4
general使ってるってことは、一部分だけ切り出して回転させたいんじゃないの。
draw_sprite_part_extで回転もできればいいんだけど、ないんだよね。
>134 lengthdirも実体はsin・cosだよ。覚えやすいように名前と引数変えてるだけで。
0137名前は開発中のものです。2009/06/27(土) 17:58:45ID:g1C/dppu
>>136 一部分だけ切り出して回転させたいんじゃないの。

まさしくそうなんです。教えてもらって申し訳ないのですがいろいろ試してみたらsurfaceで思い通りのことできました!

surf = surface_create(w,h); //切り取りたいスプライトの幅,高さ
surface_set_target(surf);
draw_sprite(spr,sub,xx*-1,yy*-1); //切り取りたいスプライトのインデックス、サブイメージ,xx,yyの場所から横w縦h文だけ切り取ります
nspr=sprite_create_from_surface(surf,0,0,w,h,false,true,false,true,xo,yo)//各パラメータはお好きに!
surface_free(surf);

http://www.gmlscripts.com/script/sprite_desaturate 

ココ参考にしました!僕以外の役に立つかどうかわかりません!
0138名前は開発中のものです。2009/06/27(土) 22:18:00ID:Vqi57wNd
スプライトを切り出して新たにスプライトリソースを作ってるわけか。
いちいちdraw_sprite_general()で描画に毎回切り出しながらやるよりは、
一度手間をかけてやることにより、後の処理が楽になるね。

で、分かってるかもしれないけど、念のために補足。
その nspr は、使わなくなったらしっかり sprite_delete() しておくこと。
そうでないとメモリを食いつぶすことになるから、注意してください。
0139名前は開発中のものです。2009/06/30(火) 21:48:36ID:JX1m/hgW
GM8の新機能(暫定)が発表されてた
・イメージエディタを一新(アルファチャネルのサポート、フィルタなど)
・コードエディタを一新(コード補完、括弧の対応表示ほか色々)
・コリジョン設定の変更(サブイメージ毎のマスク、円形マスクなど)
・スクリプト以外のリソース(ルームとか)もImport/Export可能に
・スプラッシュスクリーンにWebページやHTMLファイルを表示
・タイムラインの機能強化(一時停止や逆再生など)
・トリガイベント(自分で条件を設定できるユーザイベント?)
・ロード時間の短縮、その他の細かい改善
ルームエディタとかフォント関係はやっぱそのままなのかな
0140名前は開発中のものです。2009/06/30(火) 23:21:27ID:RYkPWQI3
7で作ってるゲームをそのまま移行できるんかな
0141名前は開発中のものです。2009/07/01(水) 03:38:54ID:s7gXk+nj
突然だが、最近経験している問題2つについて誰かアドバイスがあったら教えてほしい

一つ目は、sprite_addとsprite_deleteを1ステップ間隔くらいで頻繁に行うとメモリ使用量が16kから48kほど増えていく問題。
sprite_add中のpreloadはfalseにしてある。

それと、突然iやjといった変数が機能しなくなる問題。
例えばfor(i=0; i<instance_count; i+=1){...}の...の部分で1行ごとにshow_message(string(i))でiの値を確認すると、
ある行で突然変な値になる
使ってるスクリプトの中にiという変数を用いたループを使っていないことも確認した

誰か同じ経験している奴がいるだろうか?
0142名前は開発中のものです。2009/07/01(水) 04:11:05ID:93GVivtH
>sprite_addとsprite_deleteを1ステップ間隔くらいで頻繁に行う
そもそもそのスプライトの作成と削除を毎ステップ行うっていうデザイン自体がよくないんじゃないだろうか。
helpにも、スプライトの作成はメモリを食うってあるし。
何をしているのか知らないけど、別のアプローチはないの?

>i,j
そのスクリプトを呼び出しているインスタンスか何かがそのiとか持ってるんじゃないか?
有効範囲をスクリプト内だけに留めておきたいのならvarを使うといい。
0143名前は開発中のものです。2009/07/01(水) 04:23:22ID:93GVivtH
っと、毎ステップじゃなかったか。
でもどっちにしろ、何か別のアプローチがあると思う。
それと、呼び出し元がiとかの変数を持っていなかったとしても、
varを使えば解消すると思う。
■ このスレッドは過去ログ倉庫に格納されています