[過去ログ] 【初心者】課題をクリアしていくスレ【講習会】 (787レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
286(2): 4 ◆3VUXqvbfSY [] 04/07/08 19:00 ID:xmAVGw0W(1) AAS
なんか…確かに素数ばっかりに見えますが…違うんですよ。
素数で詰まってる人が多いってだけで…
あとですね…ボールが跳ね返るシミュレーション、ジャンプに使いますかねぇ?
マリオが勝手に地面で跳ね返ったら、俺は切れますがw
…ああ、何時になったらインベーダーが…本来なら、そろそろ、赤い四角に弾でも撃って貰おうと思ってたんですが…
わかりました。二つ出します
メイン課題 前の、赤い四角に弾を撃って貰います。さらに前課題の降ってくる物体と相殺させて下さい。
弾丸は横2ドット、縦16ドットで黄緑色
動きは Y座標(初期値は赤い四角のY座標+16)その後Y--; X座標(初期値は赤い四角のX座標÷2)その後固定;
当たった時点もしくは、画面外にでたら再発射が可能となる。
基本一発。ただし、複数発実装できるならしても良い。
課題外伝 ボールの跳ね返りシミュ
ボールを(0,0)から水平投射する。(速度は自由)
床の反発係数は0.8
壁は1.0
重力加速度は10m/s^2
288: 名前は開発中のものです。 [sage] 04/07/08 21:00 ID:gJH4XEvh(2/2) AAS
名古屋撃ちのために、実装しない方向で行こう。。。
>>286
こんな感じでOK?
#include "hspext.as"
screen 2, 300, 100, 4: title "Config"
pos 5, 8: mes "初速:": pos 50, 5: input speed, 215, 25: pos 270, 8: mes "m/s"
pos 5, 38: mes "角度:": pos 50, 35: input angle, 210, 25: pos 265, 38: mes "/255"
pos 5, 70: objsize 290, 25: button "Start", *start
gsel 0: stop
*start
cls
emsin sin, angle: emcos cos, angle
mx = speed * sin / 255: my = speed * cos / 255
x = 320000: y = 240000: pos x/1000, y/1000
repeat
x += mx: y -= my: my -= 10
if x<0: x=0: mx = -mx
if x>640000: x=640000: mx = -mx
if y>480000: y=480000: my = -my * 8 / 10: if my<80: my = 0: stop
line x / 1000, y / 1000
wait 1
loop
stop
291: C / HSPの生徒 orz [sage] 04/07/09 10:25 ID:nlM8j7wC(1) AAS
>>286の課題作ってみたが、ゲーム性を考えて数値をアレンジしています。
#define RED_SIZE 32
#define ENEMY_SIZE 32
#define MOVE_TIME 32
#define OBJ_SX 2
#define OBJ_SY 16
#define OBJ_SPEED 16
randomize
width 640, 480
red_x = 640 - RED_SIZE / 2:red_y = 480 - RED_SIZE
repeat
redraw 2:color 255, 255, 255:boxf
if enemy_stat = 0:enemy_y = -ENEMY_SIZE:enemy_stat = 1:title "C / HSPの生徒 orz 撃破数: "+obj_cnt
enemy_timer++:if enemy_timer > MOVE_TIME:enemy_timer = 0
if enemy_timer = 0:rnd enemy_x, 640 - ENEMY_SIZE
stick key, 15:if key & 1{red_x-4}if key & 4{red_x+4}
stick key, 16:if key = 16 & (obj_stat = 0){
obj_stat = 1:obj_x = RED_SIZE / 2 - (OBJ_SX / 2) + red_x:obj_y = red_y - 16}
if (enemy_x < obj_x) & (obj_x + OBJ_SX < (enemy_x + ENEMY_SIZE)) {
if (enemy_y < obj_y) & (obj_y + OBJ_SY < (enemy_y + ENEMY_SIZE)) {
obj_cnt++:obj_stat = 0:enemy_stat = 0:color 255, 0, 0:boxf} }if obj_y + OBJ_SY < 0:obj_stat = 0
if enemy_stat:color 100, 100, 200:boxf enemy_x, enemy_y, enemy_x + ENEMY_SIZE, enemy_y + ENEMY_SIZE
color 200, 100, 100:boxf red_x, red_y, red_x + RED_SIZE, red_y + RED_SIZE
if obj_stat:color 100, 200, 100:boxf obj_x, obj_y, obj_x + OBJ_SX, obj_y + OBJ_SY:obj_y-OBJ_SPEED
enemy_y++:if enemy_y > 480{enemy_stat = 0}await 20:redraw 1
loop
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.036s