RPGMakerID
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Komunitas RPG Maker Indonesia
 
IndeksIndeks  Latest imagesLatest images  PencarianPencarian  PendaftaranPendaftaran  Login  
Per 2016, RMID pindah ke RMID Discord (Invite link dihapus untuk mencegah spambot -Theo @ 2019). Posting sudah tidak bisa dilakukan lagi.
Mohon maaf atas ketidaknyamanannya dan mohon kerjasamanya.

 

 [GML] Projectile Launch Aiming Finder

Go down 
PengirimMessage
bungatepijalan
Moe Princess
bungatepijalan


Level 5
Posts : 1487
Thanked : 30
Engine : Multi-Engine User
Skill : Intermediate
Type : Developer

Trophies
Awards:
[GML] Projectile Launch Aiming Finder Empty
PostSubyek: [GML] Projectile Launch Aiming Finder   [GML] Projectile Launch Aiming Finder Empty2010-10-31, 20:33

Overview:

Script: parabola
Code:
/*
parabola: (x0,y0,x1,y1) -> (theta,v0)

Computes launch speed of the projectile (v0) with randomly given elevation
angle (theta), for known the launcher coordinate (x0,y0) and the target
coordinate (x1,y1); in case of no forces applied but the constant gravity.
*/
x0=argument0
y1=argument1
x1=argument2
y0=argument3
g=XXX //Replace with a reasonable value
theta=pi/2-random(pi/2-arctan((y1-y0)/(x1-x0)))
v0=(x1-x0)/cos(theta)*sqrt(.5*g/((x1-x0)*tan(theta)-(y1-y0)))

Script: parabola2
Code:
/*
parabola2: (x0,y0,x1,y1,ax,ay) -> (theta,v0)

Computes launch speed of the projectile (v0) with randomly given elevation
angle (theta), for known the launcher coordinate (x0,y0), the target
coordinate (x1,y1), and x-component and y-component of wind acceleration;
in case of no another forces applied.
*/
x0=argument0
y1=argument1
x1=argument2
y0=argument3
ax=argument4
ay=argument5
g=XXX //Replace with a reasonable value
do{
    theta=random(pi/2)
    k=((y1-y0)/(x1-x0)-(ay-g)/ax)/(sin(theta)-(ay-g)/ax*cos(theta))
}until(ax*(x1-x0)/(1-k*cos(theta))>=0)
v0=k*sqrt(.5*ax*(x1-x0)/(1-k*cos(theta)))

Fungsi: menghitung laju luncur peluru (v0) dan sudut elevasi (theta) agar peluru dapat mengenai target dengan tepat

Deskripsi script:
- parabola: menghitung laju luncur peluru (v0) dan sudut elevasi (theta), dalam kasus hanya gaya gravitasi yang bekerja pada peluru
- parabola2: menghitung laju luncur peluru (v0) dan sudut elevasi (theta), dengan besar dan arah percepatan angin yang juga bekerja pada peluru, selain gaya gravitasi

Cara pemasangan:
- Buat salah satu script baru: parabola atau parabola2
- Copas bagian code di atas ke masing2 script tersebut
- Implementasikan script tersebut ke action Execute a piece of code pada Event saat peluru akan dibuat (diluncurkan).
- Pada peluru yang diluncurkan, set speed=v0, direction=radtodeg(theta). Set gravity=g, jika menggunakan parabola (kasus tidak ada angin), atau set gravity=point_distance(0,0,ax,ay-g) dan gravity_direction=point_direction(0,0,ax,ay-g).

Created by: Bunga Tepi Jalan

Kembali Ke Atas Go down
http://miyuki-maker.blogspot.co.id/
 
[GML] Projectile Launch Aiming Finder
Kembali Ke Atas 
Halaman 1 dari 1
 Similar topics
-
» [GM8-GML]Number Finder

Permissions in this forum:Anda tidak dapat menjawab topik
RPGMakerID :: Scripts & Event Systems :: Game Maker Scripts-
Navigasi: