トップページgamedev
1001コメント296KB

HSP - Hot Soup Processor [7]

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。04/06/10 04:28ID:cbXY3kVC
前スレ
  HSP - Hot Soup Processor
   http://game.2ch.net/gamedev/kako/1005/10053/1005332663.html
  HSP - Hot Soup Processor [2]
   http://game.2ch.net/test/read.cgi/gamedev/1035428757/
  HSP - Hot Soup Processor [3]
   http://pc2.2ch.net/gamedev/kako/1043/10436/1043609896.html
  HSP - Hot Soup Processor [4]
   http://pc2.2ch.net/test/read.cgi/gamedev/1047082415/
  HSP - Hot Soup Processor [5]
   http://pc2.2ch.net/test/read.cgi/gamedev/1058507713/
  HSP - Hot Soup Processor [6]
   http://pc5.2ch.net/test/read.cgi/gamedev/1078660876/

関連サイト
  ONION software (本家)
   http://www.onionsoft.net/
  HSP CENTER
   http://hspcenter.com/
  HSP ML
   http://garde.esprix.net/hsp-ml/
0387名前は開発中のものです。04/07/10 16:51ID:NDQ8qWEL
> aと256がともに正しければループ抜け出す
まるで翻訳サイトの直訳みたいだね
0388名前は開発中のものです。04/07/10 16:53ID:wCy6cDas
× stick a ;何か押されたらaに1を代入
○ stick b ;押されているキーを2進数を単位に取得する
× a&256:break ;aと256がともに正しければループ抜け出す?
○ a&256:break ;256と同じビットが1なら抜ける

○ #include "llmod.as" ;llmod.asを使えるようにする?
○ pm=prmx,prmy  ;pmにマウスの位置を入れる?

  dllproc "WindowFromPoint",pm,2,1  ;WindowFromPointにマウスの位置を渡す?
説 WindowFromPointにマウスの座標を渡して、カーソルの下にあるウィンドウのハンドルを取得
  mes "hWnd:"+dllret  ;?
説 カーソルの下にあるウィンドウハンドルを表示
  pm=dllret  ;?
説 ウィンドウハンドルをpmに代入
  dllproc "GetDC",pm,1,1  ;?
説 カーソルの下にあるウィンドウのデバイスコンテキストを取得
  mes "hdc:"+dllret  ;?
説 デバイスコンテキストを表示
  hdc=dllret  ;?
説 hdcにデバイスコンテキストを代入
  mref bm,67  ;?
説 HSPが持つBMSCR構造体をbmに割り当てる
  pm=hdc,0,0,100,18,bm.4,0,0,0xCC0020  ;?
説 HSPのウィンドウからカーソルの下にあるウィンドウへコピーするように設定
  dllproc "BitBlt",pm,9,5  ;?
説 ビットブリット(BitBlt)を行う。gcopyと同様の機能。
0389名前は開発中のものです。04/07/10 17:25ID:ghQod0F3
>>388
説明どうも。
でもほとんど分からなかったり・・・汗

F1押しても出てこなかったり説明が変だったりして難しい
0390名前は開発中のものです。04/07/10 17:54ID:ghQod0F3
>>369
マニュアル読んだけど
-2147483647〜2147483647 10進整数
$0〜$FFFFFFFF 16進整数(0xでも可)
%0〜%111111... 2進整数(0bでも可)
'A' 文字コード(1バイト)
+,-,*,/ 加算,減算,乗算,除算
&,|,^ 論理演算(and,or,xor)
\ 割り算の余り
=,<,>,! 条件式(同じ,小さい,大きい,同じでない)
==,<=,>=,!= 条件式2(同じ,以下,以上,同じでない)
<<,>> 左、右方向にビットシフト

しかなかった。これだけですか?
0391名前は開発中のものです。04/07/10 18:21ID:NDQ8qWEL

演算子と関数は チョト チガーウ
039237804/07/10 19:56ID:9WTV9sSx
ネタなのであまり気にしないように
↓他のレスとかぶってるけど解答
stick a  ;aにキーコード取得
if a&256:break  ;※@aに256が含まれていたらループを抜ける
pm=prmx,prmy  ;pm.0にprmx pm.1にprmyを代入
dllproc "WindowFromPoint",pm,2,1  ;WindowFromPoint=pmの座標にあるウィンドウのHWNDを求める
mes "hWnd:"+dllret  ;HWNDを表示。気にしなくてもよい
pm=dllret  ;pmにdllret(返り値)を代入
dllproc "GetDC",pm,1,1  ;HWND(pmに代入された値)からHDCを求める
mes "hdc:"+dllret   ;HDCを表示。気にしなくてもよい
hdc=dllret  ;hdcにdllret(返り値)を代入
mref bm,67  ;bm=ID:0のウィンドウのBMSCRのポインタ
pm=hdc,0,0,100,18,bm.4,0,0,0xCC0020  ;※Apm.0にHDCpm.1に0以下0,100,18,bm.4,0,0,0xcc0020を代入
dllproc "BitBlt",pm,9,5  ;画像をコピー

※@
aを二進数にした場合
左クリックされた(256がaに代入される)→a=10000000
右クリックされた(512がaに代入される)→a=100000000
左&右を同時にクリックされた(256+512がaに代入される)→a=110000000
ifの&条件は8ビット(8桁)目が1だった場合という意味
例)
10000000;実行される  11111111;実行される
00000000;実行されない  01111111;実行されない
※A
pm=hdc,0,0,100,18,bm.4,0,0,0xCC0020は
pm.0=hdc : pm.1=0 : pm.2=0 : pm.3=100 : pm.4=18
pm.5=bm.4 : pm.6=0 : pm.7=0 : pm.8=0xCC0020
と同じ意味で、
pmの内容はBitBltに送るデータ(HSPで言うp1,p2,p3,p4,・・・・と同じ)
0xCC0020は頭に0xがついているので16進数の扱い     0xCC0020 = 13369376
0393名無しさん@そうだ選挙に行こう04/07/11 07:49ID:Rk2V9Rp9
さて去年はいろいろあってコンテスト出せなかったけど
今年もやってくれたから出したい所。
0394 ◆HOTsoUpxjY 04/07/11 10:30ID:DdfpPQJL
>>368 >>390
sinならマクローリン展開とか
平方根ならニュートン法とか何か使って
モジュールを自作すればいいかも
面倒ならそういうDLLを探すとか〜
0395 ◆HOTsoUpxjY 04/07/11 10:46ID:DdfpPQJL
今探したらちょうどHSPWIKIに
「HSPコンテスト:ショートプログラム:数学・物理編:sin/cos」ってあったよ
0396名前は開発中のものです。04/07/11 21:54ID:/JWLGNZC
おいおい!もう応募してる奴いるのかよ。こりゃ最後までにはとんでもない応募数になりそうだな。
0397名前は開発中のものです。04/07/11 23:00ID:ZIs9hoN/
コンテストの作品にリバーシがあるが
14才で作れるなんて大したモンだ。
0398名前は開発中のものです。04/07/11 23:56ID:9DUNAGkh
しかもそのリバーシは強いぞ。油断すると負ける。
今までやったHSP製リバーシの中では最強レベルじゃないかと。
ただ、思考時間がちょっと長いがな・・・。
0399名前は開発中のものです。04/07/12 20:03ID:/j8cWC5m
すげーな。尊敬してしまうわ。俺30過ぎだけど。
0400名前は開発中のものです。04/07/12 20:10ID:gvw1JXEZ
年齢と才覚って別に関係ないよ
0401名前は開発中のものです。04/07/12 20:22ID:MhF3X/Gv
経験の少ない奴でレベルが高い→天性の才能
経験の多い奴でレベルが高い→経験・知識・etc...
(※上には当てはまらなかった人のみ)

前者はいずれかなり上にいくんだろうな・・・飽きなければ
0402名前は開発中のものです。04/07/12 20:25ID:wXVm5haw
399はそういう意味で言ったんじゃない気が…
0403名前は開発中のものです。04/07/12 20:31ID:/j3+rOli
もともとC言語プログラマでHSP歴が短いだけ
0404名前は開発中のものです。04/07/12 20:35ID:MhF3X/Gv
14歳でHSP歴1年なのにか。
0405名前は開発中のものです。04/07/12 21:16ID:gvw1JXEZ
長くやってりゃ技術力が高いってもんなの?
じゃあ、うすa
0406名前は開発中のものです。04/07/12 21:19ID:9bKY8Y1v
378を使ってクリックしたウィンドウで座標を常に表示するんじゃなくてクリックしたウィンドウでそこでクリックしたときの座標を表示するように
したいと思って
改造したんだけどなぜか表示されなくてサブルーチンが深すぎますってわけのわからないエラーが出ます。
サブルーチンなんか使ってないのに
0407名前は開発中のものです。04/07/12 21:19ID:9bKY8Y1v
#include "llmod.as"
mes "対象のウィンドウをクリックしてください"
repeat
wait 1 :stick a :if a&256:break
loop
ginfo :pm=prmx,prmy
dllproc "WindowFromPoint",pm,2,1
mes "hWnd:"+dllret
pm=dllret
dllproc "GetDC",pm,1,1
mes "hdc:"+dllret
hdc=dllret
mref bm,67
*saisyo
repeat
stick a
if a=256:goto *hyouji
wait 5
loop
*hyouji
ginfo
x=prmx
y=prmy
color 255,255,255
boxf
color 0,0,0
pos 0,0
mes "X="+x+"/Y="+y
pm=hdc,0,0,100,18,bm.4,0,0,0xCC0020
dllproc "BitBlt",pm,9,5
wait 5
goto *saisyo
0408名前は開発中のものです。04/07/12 21:21ID:MhF3X/Gv
repeatはbreakで抜けろ〜♪
0409名前は開発中のものです。04/07/12 21:26ID:9bKY8Y1v
サブルーチンエラーなくなりました
0410名前は開発中のものです。04/07/12 21:29ID:9bKY8Y1v
ginfo
pm=prmx,prmy
dllproc "WindowFromPoint",pm,2,1
mes "hWnd:"+dllret
pm=dllret
dllproc "GetDC",pm,1,1
mes "hdc:"+dllret
hdc=dllret
mref bm,67
をコピーして*houjiのところに貼り付けたらなんかできました
0411名前は開発中のものです。04/07/12 21:47ID:d6Lfxib4
>>405
いや、つ〜か年齢的なものが凄いって話じゃないの
αカットとかもしてたらすごいな

14歳の時何してたっけ…
0412名前は開発中のものです。04/07/12 23:15ID:NnchSN47
>>411
チンコばかりいじってたな・・
0413名前は開発中のものです。04/07/12 23:52ID:1XHAxn/e
>>411
Live2ch使いながらRPGツクール2000とHSPして、そしてこのスレの>>413を取ったな・・
0414名前は開発中のものです。04/07/13 00:03ID:0zEjAb+8
ようこそ厨房。がんばれよ。
俺はテグザーやザナドゥで遊んでいた。
0415名前は開発中のものです。04/07/13 01:17ID:CiNvsXsI
14才の頃はBASICでゲーム作ってた・・・
486の33Mhzだった・・・
0416名前は開発中のものです。04/07/13 01:45ID:g6EadT8G
>>411
HSPの速度で、枝狩りしないほうが逆にすごいと思う。
件のゲームは見てないけど
041741404/07/13 03:23ID:0zEjAb+8
10歳くらいのときならMZ-80のS-BASICでゲーム作ってたな…
ゲームといっても数字当てとかそんなんだが。
0418名前は開発中のものです。04/07/13 03:49ID:TK4JM/yp
・・・で、今は2ちゃんねるで引きこもり?
はたちすぎれば・・・ってやつ?
0419名前は開発中のものです。04/07/13 04:46ID:Lz5YzU5q
おまえの2ちゃんねるはヒッキーがデフォかよ
0420名前は開発中のものです。04/07/13 07:39ID:vFIB3iKW
古いなw
042141404/07/13 08:14ID:OJ67xHS1
残念ながら会社員。
只今通勤中。
0422名前は開発中のものです。04/07/13 09:16ID:dh7V/bQH
ここって結構オサーンもいるんだな。リア厨工ばっかだと思ってたけど。
0423名前は開発中のものです。04/07/13 09:44ID:zmOKJOhH
Σ ビクッ

歳など関係ないさ。HSP暦って項目も別にイランと思う。
家内に迷惑かけない、金のかからない、怪我で会社を休む心配のない
そして何より面白い、理想的な趣味さ。
0424名前は開発中のものです。04/07/13 13:30ID:70PMAd5J
HSPでオセロというのはわりとソースも公開されて配布されてたりするし、
HSPは逆コンパイルもできてしまうので、本当にオリジナルソースなのかは
かなり疑問だったりするんだが、こんな風に考えてしまう漏れの心は
汚れきっているんだろうな…

嗚呼、ガキの頃に戻りたい…なんて毛先も思わないけどな藁
0425名前は開発中のものです。04/07/13 14:20ID:RNdlPERl
君ら時間の無駄ですよ
0426名前は開発中のものです。04/07/13 16:46ID:rue16gpO
378をゲーム画面でやろうとするとチカチカ表示されます。
きちんと表示できないですか?
0427名前は開発中のものです。04/07/13 19:01ID:MZbLq6+n
>>426
#include "llmod.as"
mes "対象のウィンドウをクリックしてください"
repeat:redraw 0:wait 1:stick a:if a&256:break
loop:ginfo:pm=prmx,prmy
dllproc "WindowFromPoint",pm,2,1:mes "hWnd:"+dllret
pm=dllret:dllproc "GetDC",pm,1,1:mes "hdc:"+dllret
hdc=dllret:mref bm,67:repeat
ginfo:x=prmx : y=prmy
color 255,255,255:boxf:color 0,0,0:pos 0,0:mes "X="+x+"/Y="+y
pm=hdc,0,0,100,18,bm.4,0,0,0xCC0020:dllproc "BitBlt",pm,9,5
redraw 1:wait 5:loop
0428名前は開発中のものです。04/07/13 20:04ID:TX6McS+x
コンテスト裏評価板開幕

本家では作者に好ましくないコメントや評価はデリられるようでえ¥す
0429名前は開発中のものです。04/07/13 20:49ID:mMShfxAI
* ヲチ、ネタなどはスレ違い
悪口や影口なら別のスレでやって
0430名前は開発中のものです。04/07/13 21:06ID:SBxoQ0CZ
>>428
カエレ!!
0431名前は開発中のものです。04/07/13 21:25ID:BKMGRDcG
>>427
僕もそれためしたけど変わらなかった
どうやら無理のようですね
0432名前は開発中のものです。04/07/13 22:07ID:xIR/daWO
>>431
気づけよ・・・
0433名前は開発中のものです。04/07/14 14:50ID:B/jQfSrz
>>432
何をですか?
0434名前は開発中のものです。04/07/14 20:02ID:HnoZ8VO/
>>433
気づけよ・・・
0435名前は開発中のものです。04/07/14 21:01ID:ZeqkhIM1
>>434
考えても何も気づきません。
たねあかししてくださいm(_)m
0436名前は開発中のものです。04/07/14 21:07ID:+9Ns+GPF
  http://s03.2log.net/home/char/image/2004070601.jpg
  http://s03.2log.net/home/char/image/2004070602.jpg
  http://s03.2log.net/home/char/image/2004070603.jpg

0437名前は開発中のものです。04/07/14 21:40ID:1N5yJlO9
誤爆?
0438 ◆HOTsoUpxjY 04/07/14 21:54ID:kNHBvJ3h
>>436
「種」あかし…
0439名前は開発中のものです。04/07/14 21:56ID:m1Qe+XBt
 _, 、_
(;゚Д゚)・・・・
0440名前は開発中のものです。04/07/14 21:59ID:k1p0G+4L
工エエェェ(´д`)ェェエエ工工
0441名前は開発中のものです。04/07/14 22:06ID:1N5yJlO9
    _, ,_  パーン
 ( ‘д‘)
   ⊂彡☆))Д´)
0442名前は開発中のものです。04/07/14 22:09ID:jXt69r5k
ラクスたんが出ないんなら種2は見ない
0443名前は開発中のものです。04/07/14 22:26ID:4pVci+Gw
Seed2って3月の時点でもう決まってたんだよね。
Zの映画化も。
0444 ◆HOTsoUpxjY 04/07/14 22:32ID:kNHBvJ3h
キラがいないSEEDなんて考えられない
0445 ◆HOTsoUpxjY 04/07/14 22:36ID:kNHBvJ3h
>>426>>435
こんなんでいい?

#include "llmod.as"
mes "対象のウィンドウをクリックしてください"
repeat:wait 1:redraw 1:redraw 2:stick a:if a&256:break
loop:ginfo:pm=prmx,prmy
dllproc "WindowFromPoint",pm,2,1:mes "hWnd:"+dllret
pm=dllret:dllproc "GetDC",pm,1,1:mes "hdc:"+dllret
hdc=dllret:mref bm,67:repeat
ginfo:x=prmx : y=prmy
color 255,255,255:boxf:color 0,0,0:pos 0,0:mes "X="+x+"/Y="+y
pm=hdc,0,0,100,18,bm.4,0,0,0xCC0020:dllproc "BitBlt",pm,9,5
wait 1:redraw 1:redraw 2:loop
0446名前は開発中のものです。04/07/14 23:23ID:RJzW/d25
ガンダムはもうえーよ。そろそろ起動戦士ザクにしようぜ。
0447名前は開発中のものです。04/07/14 23:30ID:1N5yJlO9
安全戦士コンドム
0448名前は開発中のものです。04/07/15 03:22ID:IOD3Sm5H
>>447
南国
0449名前は開発中のものです。04/07/15 03:45ID:lNb54aN9
カードゲームを作りたいのですが、一番重要なカードの管理部分で詰まってしまいました。
配列変数なども使ってやってみたのですが、変数には1つの数値しか入れられないので、
その変数に名前、属性、数値、を持たせる方法がわからないのです。
それぞれの配列変数を作ろうとも思いましたが、それぞれをリンクさせる方法も思いつかないので・・。
ああ・・あとちょっとで思いつきそう!とずっと悩み続けて明け方になってしまいました・・。

説明が意味不明かもしれませんが、どうかよろしくお願いします。
0450名前は開発中のものです。04/07/15 03:54ID:3ULQ3Ryg
まずは国語の勉強しなさい。次に算数な。終わったら聞きに来い。
0451名前は開発中のものです。04/07/15 04:19ID:n9N+kaVJ
>>449
管理方法を変えれ

ex.
魔法1:ファイアボール /攻撃力2 /消費MP5
魔法2:ライトニングボルト /攻撃力3 /消費MP8
魔法3:ブリザード /攻撃力4 /消費MP12

魔法名:ファイアボール /ライトニングボルト /ブリザード
攻撃力:2 /3 /4
消費MP:5 /8 /12
0452名前は開発中のものです。04/07/15 05:22ID:lNb54aN9
>>451
dim magic_data,3
dim attack_data,3
dim mp_data,3

でやると、magic_data.0 = attack_data.0 = mp_data.0
にする方法がわからないんです・・・。すみません。


大変質問しにくいのですが・・・変数に文字を入れるのはどうすれば良いのでしたっけ・・。
一通りマニュアルには目を通したのですが、strくらいしか見つかりませんでした。
str magic_data.0 = fire ? ""で囲んでみたりもしてみたのですが・・。
0453名前は開発中のものです。04/07/15 05:57ID:3ULQ3Ryg
もう一度言う、国語の勉強をして来い
0454名前は開発中のものです。04/07/15 06:00ID:URSz5/iV
sdim magic_data 64, 3
magic_data.0 = "fire"
magic_data.1 = "Lightning"
...
のことか?

あと、
>magic_data.0 = attack_data.0 = mp_data.0
はどうしたいんだ?
配列のインデックスで判断するのはだめなのか?
0455 ◆HOTsoUpxjY 04/07/15 06:40ID:YMJF4DAf
screen 0,160,160
title "0〜2を入力"

sdim 魔法名,16,3
dim 攻撃力,3
dim 消費MP,3
魔法名="ファイア","ブリザド","サンダー"
攻撃力=4,6,8
消費MP=1,2,3
防御力=1

*in
cls
a=0
input a
button "push",*out
stop

*out
color 255,255,255
boxf
color 0
if (a<0)|(a>2) : goto *in
pos 0,60
mes "魔法名"+魔法名.a
mes "攻撃力"+攻撃力.a
mes "消費MP"+消費MP.a
d=攻撃力.a-防御力
mes "ダメージ"+d
stop
0456 ◆HOTsoUpxjY 04/07/15 06:46ID:YMJF4DAf
>>449
配列使うしかないに決まってるでしょ、
一括管理って、添字に変数使えばいいだけ

後々シャッフルする事を考えれば
カードに番号を振っておくといいね

全カード枚数分の要素を持った
配列を宣言しておくという事さ
0457名前は開発中のものです。04/07/15 06:48ID:lNb54aN9
>>454
sdimでしたか。。マニュアル読み直してきます。

>magic_data.0 = attack_data.0 = mp_data.0
すいません、「配列のインデックス」の意味も理解してません○| ̄|_

見捨てないで・・。
0458名前は開発中のものです。04/07/15 06:50ID:lNb54aN9
>>455-456
あ、レス書いてました。
ありがとうございます。とても参考になります。
0459 ◆HOTsoUpxjY 04/07/15 06:56ID:YMJF4DAf
>>457-458

おはよう、清々しい朝です。

カードゲームは配列が分かれば
難易度は高くないジャンルだと思う

カードという明確な「かたち」があるから
コーディングにとどまらず
画面のデザインからルールの設定まで
割りと決めやすいんじゃないかな
0460名前は開発中のものです。04/07/15 07:44ID:bt3SwMn1
>>449
>その変数に名前、属性、数値、を持たせる方法がわからないのです。
>それぞれの配列変数を作ろうとも思いましたが、それぞれをリンクさせる方法も思いつかないので・・。

それぞれの配列変数を作るので正解だ。リンクはアルゴリズムの問題。
例えばトランプの場合、数値は1から13まである。マーク(?)は4種類
ある。クラブを0、スペードを1、ハートを2、ダイヤを3で表すとする。
「0番のカードはハートの8である」ことを表すには、
number.0=8
mark.0=2
で十分だ。
0461 ◆HOTsoUpxjY 04/07/15 08:03ID:YMJF4DAf
>>460
たしかに一意のID番号も必要だろうね
ただcard.0〜52の一次元配列でいいと思う
スートは13で割れば求められるから
0462名前は開発中のものです。04/07/15 08:32ID:dz4jKn0i
>>459-460
おはようございます。

なんかこう・・・もうちょっとで出来そうな頭の中がもやもやしてます。
大きなヒントありがとうございます!(答えを言っているのかもしれませんが(苦笑
0463名前は開発中のものです。04/07/15 09:23ID:dz4jKn0i
>>455に書いてあるスクリプトを真似て、

;///// カードの管理 /////
dim CARD_ID,60;カードの番号
sdim name,16,60;カードの名前
dim attack,60;カードの攻撃
dim element,4;カードの属性

;///// カードの設定 /////
name="フレア","ゴブリン","ワイバーン"
attack=1,2,3
element=0,0,0

のように書き、

mes "カード名"+name.0 や mes ""+name.0+""

等で表示させようとしても、name.0には0が収納されてるようになります。
途中でclsなどを使うと初期化されてしまうのでしょうか・・・。
0464名前は開発中のものです。04/07/15 10:42ID:y0BMcOcB
これでやってみたが、ちゃんと表示されたぞ。
;///// カードの管理 /////
dim CARD_ID,60;カードの番号
sdim name,16,60;カードの名前
dim attack,60;カードの攻撃
dim element,4;カードの属性

;///// カードの設定 /////
name="フレア","ゴブリン","ワイバーン"
attack=1,2,3
element=0,0,0

mes "カード名"+name.0
mes ""+name.0+""
stop

変数名を間違えたりはしてないか?(nameをnemeとか書いてたり)
clsで変数がクリアされる事は無い。同じ変数名で再度dimやsdimしたときだけ
初期化される。
0465名前は開発中のものです。04/07/15 17:58ID:bt3SwMn1
>>463
ちなみに、識別番号0のカードは名前がname.0で、攻撃がattack.0で、属性
がelement.0である(識別番号は0〜59)という意味にしたいんだったら
dim element,60だ。
0466名前は開発中のものです。04/07/15 18:18ID:tN646g0a
今帰宅しました。

>>464
最初から見直したら原因がわかりました!!
ボタンのラベルで変数の設定の部分をジャンプして飛ばしていました・・。
ありがとうございます!

>>465
火、風、森、水
にしたいので、4までで良いと思います。
>>460のトランプからヒントを得ました!
できなかったら dim element,60 も試させてもらいます。
感謝〜。
0467名前は開発中のものです。04/07/15 18:34ID:tN646g0a
>>465
今考えていて思ったのですが、
やはり dim element, 60 じゃないと無理かもしれません。
0〜19=火 のように分ければいいんですよね。
4しかないと、4番目のカードまでしか属性が無い事になりそうでした・・。
0468 ◆HOTsoUpxjY 04/07/15 18:58ID:ez5KYzUa
>>466-467
>火、風、森、水にしたいので、
>4までで良いと思います
ほ、ほすぷっ!
…型とクッキーを別々に管理すればいいの
0469 ◆HOTsoUpxjY 04/07/15 18:59ID:ez5KYzUa
sdim 属性名,8,4
dim カード属性,5
属性名="火","水","風","土"
カード属性=0,1,2,3,0
repeat 5
カード番号=cnt
e=カード属性.カード番号
c=カード番号+1
mes ""+c+"枚目の"+"カード属性="+属性名.e
loop : stop
0470 ◆HOTsoUpxjY 04/07/15 19:04ID:ez5KYzUa
>>455に戻ると
この「手作りクッキー」式では「型」がないので
内容が重複していてもカードが何枚あっても
全部入力しないといけない訳です↓

魔法名="ファイア","ファイア","サンダー"
攻撃力=4,4,8
0471名前は開発中のものです。04/07/15 19:11ID:tN646g0a
>>468-470
ほ・・ほう、すっごい参考になります!
僕の無脳じゃどうやって応用していいか・・(笑
ヘルプ見ながら見直してきます!
0472名前は開発中のものです。04/07/15 19:27ID:ebSu3XoD
『カードの種類』と『山札』は分けて考えれ。
データ変更するときに困るだろ?
0473名前は開発中のものです。04/07/15 19:31ID:ebSu3XoD
つまり>>470のやり方だと、「ファイア」を「ファイヤー」に変えようと思ったとき、
全部のファイアを書き換えなきゃいけなくなるってことな。
(まぁ、それだけならテキストエディタで一括変換すりゃ済む話なんだが、数値の時とか困るだろ?)
0474名前は開発中のものです。04/07/15 20:03ID:29ruKr7h
>>461
カードは一次元配列で管理できるけど、シャッフルを考えると二次元配列にすると楽だよ。
dim card,52,2
card.x.0 に数値
card.x.1 に適当な乱数を入れて
card.x.1 の値でソートすればシャッフルの出来上がり。
乱数での数値に関して重複考えなくていいし。
0475名前は開発中のものです。04/07/15 20:03ID:c9MSwywl
まぁその点は文字列もテーブルとすればいいだろう・・・。
構造体とか、変数名.(式)みたいにできたら便利なんだけどな・・・。
    sdim MagicName, 32, 3
    MagicName = "Tire", "Thunder", "Blizzard"
    sdim ElementName, 32, 5
    ElementName = "炎", "水", "風", "光", "闇"

    dim Card, 5, 3
    Card.0.0 = 0, 0, 2, 1, 2 /* MagicName */
    Card.0.1 = 32, 14, 15, 22, 34 /* Attack */
    Card.0.2 = 0, 2, 3, 1, 4 /* Element */

    mes "Before": gosub *ShowCard
    MagicName.0 = "Fire" /* 間違えた!タイアじゃねえよ!!! */
    mes "\nAfter": gosub *ShowCard
    stop
*ShowCard
    repeat 5
        MagicNameID = Card.cnt.0
        ElementNameID = Card.cnt.2
        mes "Card"+cnt+" - Name:"+MagicName.MagicNameID+" Attack:"+Card.0.1+" Element:"+ElementName.ElementNameID
    loop
    return
0476名前は開発中のものです。04/07/15 20:08ID:Xg5W8bek
http://www.1me.jp/users/files/filedownload.asp?fileid=6328.32979763712
ポト2の風ツールです。
これは風ゲージの長さを計るツールなんですが
HSPでこれに似たものを作りたいんですがどんな感じにすればいいですか?
0477名前は開発中のものです。04/07/15 20:11ID:c9MSwywl
ポト2から情報奪いたいのか?
0478名前は開発中のものです。04/07/15 20:13ID:Xg5W8bek
>>477
?情報を奪う?なんのことですか?
0479名前は開発中のものです。04/07/15 20:15ID:c9MSwywl
(内部で扱っている)風の大きさの情報。
0480名前は開発中のものです。04/07/15 20:17ID:c9MSwywl
変数のデータって言った方が良いか・・・
0481名前は開発中のものです。04/07/15 20:23ID:Xg5W8bek
え?これただ単に長さ測ってるんじゃないんですか?
そんな難しくできていたとは・・・・
0482名前は開発中のものです。04/07/15 20:37ID:J6RCjTgS
>>476
何をしたいのかがイマイチ分からないです。
○○に似たもの、ではなくて具体的に何をしたいのかを…
画面上の一部の長さを測りたい、ということなの?

あ、>>476のリンク先のものは実行してないです。
048344904/07/16 00:31ID:bJ2uajr0
カードをデッキに入れるボタンのジャンプ先のラベルを一つで済ます方法が思いつかなかった・・。
結果、カード枚数を20枚にへらしてラベル20個つくってしまった(汗

button "デッキに入れる",*card_in01

*card_in01
ここでデッキフラグにする変数を1にする。
1だったら「もうすでに入っています」
などの判断。

if CARD_ID.0=0 "カードを持っていません" : if デッキ.0=0 : デッキ.0=1 : if デッキ.0=1 : mes"もうすでに入っています"

のような感じにするとおもう。
同じカードを2枚所持できないシステムにする予定です。(何枚も管理できません笑
嗚呼なんか問題が多すぎて挫折しそう・・質問に答えてくれる皆さんは偉大なプログラマーなんですね・・。
0484 ◆HOTsoUpxjY 04/07/16 00:42ID:aTGoRC96
>>483
>ジャンプ先のラベルを一つで済ます方法
あると思うけど…
>同じカードを2枚所持できないシステム
ほ、ほすぷ!

デッキが組みたいんだ、ソースはちょっとまって

カードゲームといえばカルドセプトとかあるね
何か僕も作りたくなってきた
コンテストに出したいな
「育成カードゲーム」とかどうかな
048544904/07/16 00:53ID:bJ2uajr0
デッキの枚数は10枚で(デッキというか一般で言う手札?)、シャッフル等無し。
相手と同時にカードを一枚ずつ出していって(デッキから直出し)、
数値の高いほうが勝ち、相手が得意属性だったら数値+2
という、運の要素が高いルールにする予定です。

シャッフル等ないので初心者が作るにはちょうどいいと思ったのですが・・。
思わぬ落とし穴がたくさん○| ̄|_
048644904/07/16 00:56ID:bJ2uajr0
勝利条件の追記。

デッキ10枚の中から出すカードは5枚で、
勝ったカードと引き分けのカードが場に残り、
最後に場にカードが多く残っていたほうの勝ち。


こんなルールのカードゲームなのですが、初心者には敷居が高いでしょうか・・。
■ このスレッドは過去ログ倉庫に格納されています