Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
1130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150154
次のページ(過去)
返信[1]
親投稿
おちゃめ ochame_nako
プログラムリストを見ただけだと常にfalseになりますが、実際に実行するとスリープから復帰直後は処理落ちするのでMAINCNT-CNTの値は必ず2以上になる(大抵は4~5くらいになる)ためtrueを返します。
2そうだね
プレイ済み
投稿
おちゃめ ochame_nako
本体がスリープしたかどうかを取得するSLEEP関数を作りました。一瞬でもスリープしたらtrueを返します。ループ中のVSYNC 1と置き換えて使ってください。
20そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
じゃんけんゲームはグー、チョキ、パーをキー入力してもいいけど面倒なので各ボタンに対応させると良いです。(個人的にはグーはBボタン、チョキはYボタン、パーはXボタンがオススメで理由はボタンの形とAボタンをシステム用に使うため) じゃんけんゲームの肝になるのは勝敗判定です。 グーを1、チョキを2、パーを3とした場合には自分が1、相手が2ならば自分が勝ちのように9通り(3x3通り)判断すれば良いのですが、引き分けの場合は1、1の時、2、2の時、3、3の時と別々に判定する必要はなく自分と相手が同じ時で判定が可能です。 実は超簡単に判定する方法があるのですがここではあえて書きません。 あと相手の手は完全ランダムではなく戦略性があるような思考ルーチンがあるとゲームとして楽しめるようになります。(戦略性がないと1つのボタンを連打しても考えながら別々のボタンを押しても運だけで勝敗が決まってしまう)
1そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
私はプチコンmkIIでは1画面(29文字x24行)で100m走ゲーム(2重スクロール表示)、じゃんけんゲーム(相手の戦略分析を行う思考ルーチン付き)を作りましたがごくシンプルな形のものの作り方の説明をします。(あえてプログラムリストは書かない) 100m走ゲームは完成されたアクション系ゲームとしては作るのが最も簡単な部類です。 特定のボタンが押された瞬間にキャラを一定量移動させ、タイムを適量加算、キャラがゴールラインに達して無ければメインルーチンを繰り返します。ゴールをしたらタイムを表示します。(タイムはメインループ中に常時表示でもOK) キーは1つではなく2つを交互に押したり、速度のパラメータを用意したり、最高タイム記録機能を付けるなど工夫の余地はたくさんあります。100m走ならば連射の速い人で9秒台くらいのタイムが出るようにバランス調整をすると良いです。
1そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
けいさんへ 時計っぽいものならばSPANIMで可能なんですが、1フレームは正確な1/60秒ではないため時間が経つごとにずれてきます。 まぁINPUTの状態で数時間放置とかしなければ許容範囲内の誤差ですが。 何をどのようなレベルで行いたいのかが分からないとベストな回答は難しいですね。
1そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
ある程度基本的なものを覚えてそのコツが掴めるようになればすでに先人が作ったものと同じようなものを自らの力だけで考え出したり作ったりすることができるようになるでしょう。これを「車輪の再発明」といいます。 車輪の再発明は自分の知識や技術をより深めるためにも有用ですが、初心者が無理に行う必要はありません。 最初は人マネでも何でもいいのです。数多くこなすことで自然に自分自身の力として身につけることができます。
0そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
アルゴリズムというと難しく聞こえますが単なる処理の手順でしかないです。 例えばテストの5教科の平均点を求めたいという場合には「各教科の点数を足して合計点を求める→その合計点を5で割る」というのが処理の手順になります。 実際にプログラムを作る場合には5教科の点数を足すという処理も「点数の入力を行う→合計を示す変数にその点数を加算する→これを5教科分繰り返す」のように細分化されます。 平均値を求めるためには「合計値を要素数で割る」というのは誰でも分かることですが、これは知らない状態では難しいでしょう。 つまり、アルゴリズムは「ポピュラーなものは先人が考えたものを覚える」のがベターということです。「覚える」というと面倒臭そうですが、他人が作ったプログラムを入力したり改造したりして構造を理解していけばいいだけです。
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
ゲームというのはプレイして面白いと感じることが最も重要なのでゲームバランスは重要ですね。 そのためにはテストプレイを十分行うことが必要不可欠です。 操作性(快適な操作でプレイできるか)、攻略性(続きをプレイしたいと思わせるか)、達成感(クリアしてうれしいと感じられるか)、爽快感(プレイしていて気分が良いか)などが重要です。 爽快感を得るためには当たり判定も重要で「ミスをしたときにその理由が納得できるものになっているか」ということが求められてきます。 私は1画面プログラムといった小さなものでもこの辺の配慮は怠らないように気を付けています。
2そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
りょうまさんへ 改造することはより深く理解することに繋がりますからね。 私も昔は雑誌掲載のゲームプログラムを高速化改造して様々なテクニックを身につけました。中には5~9倍くらい速くなったものもあります。 りょうまさんが挙げているそのプログラムを改造するポイントとしてはいくつかありますが、ループやIFで字下げをして対応しているものが分かりやすくするという改造や同じ処理を何度も行っているためサブルーチンやDEFを使ってより短く分かりやすい形にするという改造もあります。
1そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
みほさんへ 作るプログラムは自由であくまで例として挙げたものは選択肢にすぎません。 最小構成でもゲームとして機能するもので最も簡単なレベルのものです。 そのためこれさえ難しいと感じる人だとさらに凝ったゲームを作るのは難しいですね。 簡単に作れるゲームの例としては 非リアルタイムゲームだと数当てゲームの代わりにじゃんけんゲームでもいいです。 リアルタイムゲームだと100m走ゲームの代わりに昔からのBASICの定番ゲームの縦スクロールスキーゲーム(川下りゲーム)でもいいです。
1そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
ツララさんへ 結局のところプログラムというのはコンピュータに分かる形で細かく具体的な手順を書き記したものにすぎないですからね。 最初の内はその手順そのものを自分の力のみで発想するということがなかなかできないのでやはり他人が作ったものを参考にするというのはすごく大事です。 改造(数値を少し変えるだけでもOK)でどのように変化するかを確かめるだけでも十分だと思います。 それでエラーがでても表示が乱れてもプチコン3号そのものが壊れることはなく何度でもチャレンジできますからね。 この試行錯誤が容易にできることこそが現実におけるモノ作りとプログラムの根本的な違いだと思います。
0そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
ピクセル単位でライティング処理を行っているということは点光源+フォンシェーディングを行っているのでしょうか? それだとプチコン3号では重くなっても仕方がないですね。 テクスチャはGPSETでピクセル単位で描画するしかないのですが、ライティング処理は平行光源+フラットシェーディングにすれば大幅に高速化できます。 この場合だとベクトル演算するのが表示している面の数だけになるのでライティングに必要なベクトル演算は1000倍以上高速になります。 高速なリアルタイム処理を行うならばある程度の割り切りは必要だと思います。非リアルタイムでいいのならばレイトレーシングを行うという方法もあります。
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
DEF内で宣言もしくはDEF外で未使用の変数→DEF内でローカル変数として使える DEF外で宣言もしくは使用した変数→DEF内でグローバル変数として使える ローカル変数とグローバル変数を確実に使い分けるためにはちゃんと変数を定義して使うのがベターです。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
「DEFで宣言した命令の中の変数の値を保持したい場合」というのは「DEF内でグローバル変数を使いたい場合」の方が意図が伝わりやすいと思います。 恐らく初心者向けに分かりやすい記述にしたのでしょうが、グローバル変数が分からない人だとローカル変数も分からないと思います。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
本当の超初心者でプログラムなんて全く分からないという人であれば他人が作ったプログラムを入力するだけでも勉強になります。それを改造していくうちにプログラムの仕組みというのがぼんやりと理解できると思います。 そのためにも短くシンプルな改造しやすいプログラムがオススメです。 プログラムを作るためには処理の手順が分からなくてはなりませんが手順というのはある程度は決まった作法があるため全く知識のない状態とそれに関して見たことがあるという状態では理解度が異なってきます。(車輪の再発明もある程度プログラムが作れるようになった後だと大事)
3そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
自分で考えたゲームならば作るのは楽しくなります。 さらにどのようなものかが細かく具体的にイメージできると思います。 AボタンでジャンプさせるためにはAボタンが押されているかを判定し、もし押されているならばジャンプの動作を行う処理を実行する必要があります。 しかし、「ジャンプ」とは何かはプチコン3号は知りません。 そこでより詳しく手順を教えてあげなくてはなりません。 このようにプチコン3号でも理解できるように具体的な手順を記述していけばプログラムが完成します。 頑張ってください!
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
私が知る限りではプチコン3号用プログラムではテクスチャマッピング付きのポリゴンは初だと思います。 プチコンmkIIでは最大で6000テクセル/秒くらいだったので立方体でさえ1fpsに満たないという状況で使い物になりませんでしたが、プチコン3号ではNew3DSで動作時には最大20万テクセル/秒くらいの速度が出ます。 それを考えるとそこそこ高速描画ができてそうですね! Ryu6190さんへ 私はポリゴン表示プログラムはプチコンmkIIで作りましたが、そこにポリゴン表示のやり方を書いています。
1そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
プチコン3号はスリープ中は動作が停止する仕様になっているため歩数計のようなプログラムは作ることができません。(歩数計として機能させるためにはスリープにならないように本体を開けた状態で持ち歩く必要がある) しかし、りゅうまごさんが書いているようにスリープ中の時間の取得はプログラムによって可能になり、私はプチコンmkIIで1フレーム単位のスリープ時間を取得するプログラムを作りました。 スリープ中に動作できないからと言って悲観的になることはなくスリープ時間とジャイロセンサーとモーションセンサーを組み合わせると面白いゲームができそうです。
1そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
残念ながら公式のプチコン3号初心者講座はまだプログラムの作り方については全く触れてないしmkII用の講座では初心者だとプチコン3号への置き換えがうまくできないかもしれませんね。 「プチコン3号入門講座」などのキーワードでネット検索すれば初心者向けの講座は見つかると思います。
1そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
といっても、このような他人のオススメゲームではなく自分が作りたいゲームに挑戦するのが最もオススメです。 プログラムを作るためには処理の手順が分からなくてはなりませんが他人のオススメだとそれがイメージしにくい場合があるためです。 そして、プログラムというものは最初は簡単にはできないけど自分が作りたいものならば考えたり調べたりするのが苦にならないためです。 もちろん、ドラクエのようなゲームを作りたいといっても最初はハードルが高くてとても無理でしょう。 しかし、ドラクエの中の一要素くらいならば初心者でも頑張れば何とかなります。 例えば戦闘シーンだけ作ってみるのも良いでしょう。 ドラクエIのような1対1の戦闘ならばかなり単純化されます。(それでも難しければさらに単純化を行う) どんなゲームであっても単純な要素を寄せ集めたものにすぎません。(ただし、「単純=簡単」ではない)
5そうだね
プレイ済み