Ported platformer demo
5
3d/platformer/bullet.gd
Normal file
@@ -0,0 +1,5 @@
|
||||
|
||||
extends RigidBody
|
||||
|
||||
# Member variables
|
||||
var disabled = false
|
||||
BIN
3d/platformer/bullet.scn
Normal file
11
3d/platformer/coin.gd
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
extends Area
|
||||
|
||||
# Member variables
|
||||
var taken = false
|
||||
|
||||
|
||||
func _on_coin_body_enter(body):
|
||||
if (not taken and body is preload("res://player.gd")):
|
||||
get_node("anim").play("take")
|
||||
taken = true
|
||||
BIN
3d/platformer/coin.scn
Normal file
BIN
3d/platformer/cutout.png
Normal file
|
After Width: | Height: | Size: 148 KiB |
23
3d/platformer/cutout.png.import
Normal file
@@ -0,0 +1,23 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/cutout.png-8aacc6c936bf12e889c8e11f6c4eb91c.stex"
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=true
|
||||
process/HDR_as_SRGB=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
58
3d/platformer/default_bus_layout.tres
Normal file
@@ -0,0 +1,58 @@
|
||||
[gd_resource type="AudioBusLayout" load_steps=4 format=2]
|
||||
|
||||
[sub_resource type="AudioEffectReverb" id=1]
|
||||
|
||||
resource_name = "Reverb"
|
||||
predelay_msec = 150.0
|
||||
predelay_feedback = 150.0
|
||||
room_size = 0.33
|
||||
damping = 0.32
|
||||
spread = 1.0
|
||||
hipass = 0.9
|
||||
dry = 0.0
|
||||
wet = 1.0
|
||||
|
||||
[sub_resource type="AudioEffectAmplify" id=2]
|
||||
|
||||
resource_name = "Amplify"
|
||||
volume_db = 0.0
|
||||
|
||||
[sub_resource type="AudioEffectReverb" id=3]
|
||||
|
||||
resource_name = "Reverb"
|
||||
predelay_msec = 150.0
|
||||
predelay_feedback = 150.0
|
||||
room_size = 0.89
|
||||
damping = 0.17
|
||||
spread = 1.0
|
||||
hipass = 0.08
|
||||
dry = 0.0
|
||||
wet = 0.36
|
||||
|
||||
[resource]
|
||||
|
||||
bus/0/name = "Master"
|
||||
bus/0/solo = false
|
||||
bus/0/mute = false
|
||||
bus/0/bypass_fx = false
|
||||
bus/0/volume_db = 0.0
|
||||
bus/0/send = ""
|
||||
bus/1/name = "Reverb Small"
|
||||
bus/1/solo = false
|
||||
bus/1/mute = false
|
||||
bus/1/bypass_fx = false
|
||||
bus/1/volume_db = 0.0
|
||||
bus/1/send = "Master"
|
||||
bus/1/effect/0/effect = SubResource( 1 )
|
||||
bus/1/effect/0/enabled = true
|
||||
bus/1/effect/1/effect = SubResource( 2 )
|
||||
bus/1/effect/1/enabled = true
|
||||
bus/2/name = "Reverb Large"
|
||||
bus/2/solo = false
|
||||
bus/2/mute = false
|
||||
bus/2/bypass_fx = false
|
||||
bus/2/volume_db = 0.0
|
||||
bus/2/send = "Master"
|
||||
bus/2/effect/0/effect = SubResource( 3 )
|
||||
bus/2/effect/0/enabled = true
|
||||
|
||||
78
3d/platformer/enemy.gd
Normal file
@@ -0,0 +1,78 @@
|
||||
|
||||
extends RigidBody
|
||||
|
||||
# Member variables
|
||||
const STATE_WALKING = 0
|
||||
const STATE_DYING = 1
|
||||
|
||||
var prev_advance = false
|
||||
var deaccel = 20.0
|
||||
var accel = 5
|
||||
var max_speed = 2
|
||||
var rot_dir = 4
|
||||
var rot_speed = 1
|
||||
|
||||
var dying = false
|
||||
|
||||
|
||||
func _integrate_forces(state):
|
||||
var delta = state.get_step()
|
||||
var lv = state.get_linear_velocity()
|
||||
var g = state.get_total_gravity()
|
||||
|
||||
lv += g*delta # Apply gravity
|
||||
var up = -g.normalized()
|
||||
|
||||
if (dying):
|
||||
state.set_linear_velocity(lv)
|
||||
return
|
||||
|
||||
for i in range(state.get_contact_count()):
|
||||
var cc = state.get_contact_collider_object(i)
|
||||
var dp = state.get_contact_local_normal(i)
|
||||
|
||||
if (cc):
|
||||
if (cc is preload("res://bullet.gd") and not cc.disabled):
|
||||
set_mode(MODE_RIGID)
|
||||
dying = true
|
||||
#lv = s.get_contact_local_normal(i)*400
|
||||
state.set_angular_velocity(-dp.cross(up).normalized()*33.0)
|
||||
get_node("AnimationPlayer").play("impact")
|
||||
get_node("AnimationPlayer").queue("explode")
|
||||
set_friction(1)
|
||||
cc.disabled = true
|
||||
get_node("sound_hit").play()
|
||||
return
|
||||
|
||||
var col_floor = get_node("Armature/ray_floor").is_colliding()
|
||||
var col_wall = get_node("Armature/ray_wall").is_colliding()
|
||||
|
||||
var advance = not col_wall and col_floor
|
||||
|
||||
var dir = get_node("Armature").get_transform().basis[2].normalized()
|
||||
var deaccel_dir = dir
|
||||
|
||||
if (advance):
|
||||
if (dir.dot(lv) < max_speed):
|
||||
lv += dir*accel*delta
|
||||
deaccel_dir = dir.cross(g).normalized()
|
||||
else:
|
||||
if (prev_advance):
|
||||
rot_dir = 1 # randf()*2.0 - 1.0
|
||||
|
||||
dir = Basis(up, rot_dir*rot_speed*delta).xform(dir)
|
||||
get_node("Armature").set_transform(Transform().looking_at(-dir, up))
|
||||
|
||||
var dspeed = deaccel_dir.dot(lv)
|
||||
dspeed -= deaccel*delta
|
||||
if (dspeed < 0):
|
||||
dspeed = 0
|
||||
|
||||
lv = lv - deaccel_dir*deaccel_dir.dot(lv) + deaccel_dir*dspeed
|
||||
|
||||
state.set_linear_velocity(lv)
|
||||
prev_advance = advance
|
||||
|
||||
|
||||
func _die():
|
||||
queue_free()
|
||||
BIN
3d/platformer/enemy.scn
Normal file
221
3d/platformer/export_presets.cfg
Normal file
@@ -0,0 +1,221 @@
|
||||
[preset.0]
|
||||
|
||||
exclude_filter=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
name="Linux/X11"
|
||||
patch_list=PoolStringArray( )
|
||||
platform="Linux/X11"
|
||||
runnable=true
|
||||
|
||||
[preset.0.options]
|
||||
|
||||
binary_format/64_bits=true
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
texture_format/etc=false
|
||||
texture_format/etc2=false
|
||||
texture_format/s3tc=true
|
||||
|
||||
[preset.1]
|
||||
|
||||
exclude_filter=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
name="Android"
|
||||
patch_list=PoolStringArray( )
|
||||
platform="Android"
|
||||
runnable=true
|
||||
|
||||
[preset.1.options]
|
||||
|
||||
apk_expansion/SALT=""
|
||||
apk_expansion/enable=false
|
||||
apk_expansion/public_key=""
|
||||
architecture/arm=true
|
||||
architecture/x86=false
|
||||
command_line/extra_args=""
|
||||
custom_package/debug=""
|
||||
custom_package/release=""
|
||||
keystore/release=""
|
||||
keystore/release_password=""
|
||||
keystore/release_user=""
|
||||
one_click_deploy/clear_previous_install=true
|
||||
package/icon=""
|
||||
package/name=""
|
||||
package/signed=true
|
||||
package/unique_name="org.godotengine.$genname"
|
||||
permissions/access_checkin_properties=false
|
||||
permissions/access_coarse_location=false
|
||||
permissions/access_fine_location=false
|
||||
permissions/access_location_extra_commands=false
|
||||
permissions/access_mock_location=false
|
||||
permissions/access_network_state=false
|
||||
permissions/access_surface_flinger=false
|
||||
permissions/access_wifi_state=false
|
||||
permissions/account_manager=false
|
||||
permissions/add_voicemail=false
|
||||
permissions/authenticate_accounts=false
|
||||
permissions/battery_stats=false
|
||||
permissions/bind_accessibility_service=false
|
||||
permissions/bind_appwidget=false
|
||||
permissions/bind_device_admin=false
|
||||
permissions/bind_input_method=false
|
||||
permissions/bind_nfc_service=false
|
||||
permissions/bind_notification_listener_service=false
|
||||
permissions/bind_print_service=false
|
||||
permissions/bind_remoteviews=false
|
||||
permissions/bind_text_service=false
|
||||
permissions/bind_vpn_service=false
|
||||
permissions/bind_wallpaper=false
|
||||
permissions/bluetooth=false
|
||||
permissions/bluetooth_admin=false
|
||||
permissions/bluetooth_privileged=false
|
||||
permissions/brick=false
|
||||
permissions/broadcast_package_removed=false
|
||||
permissions/broadcast_sms=false
|
||||
permissions/broadcast_sticky=false
|
||||
permissions/broadcast_wap_push=false
|
||||
permissions/call_phone=false
|
||||
permissions/call_privileged=false
|
||||
permissions/camera=false
|
||||
permissions/capture_audio_output=false
|
||||
permissions/capture_secure_video_output=false
|
||||
permissions/capture_video_output=false
|
||||
permissions/change_component_enabled_state=false
|
||||
permissions/change_configuration=false
|
||||
permissions/change_network_state=false
|
||||
permissions/change_wifi_multicast_state=false
|
||||
permissions/change_wifi_state=false
|
||||
permissions/clear_app_cache=false
|
||||
permissions/clear_app_user_data=false
|
||||
permissions/control_location_updates=false
|
||||
permissions/delete_cache_files=false
|
||||
permissions/delete_packages=false
|
||||
permissions/device_power=false
|
||||
permissions/diagnostic=false
|
||||
permissions/disable_keyguard=false
|
||||
permissions/dump=false
|
||||
permissions/expand_status_bar=false
|
||||
permissions/factory_test=false
|
||||
permissions/flashlight=false
|
||||
permissions/force_back=false
|
||||
permissions/get_accounts=false
|
||||
permissions/get_package_size=false
|
||||
permissions/get_tasks=false
|
||||
permissions/get_top_activity_info=false
|
||||
permissions/global_search=false
|
||||
permissions/hardware_test=false
|
||||
permissions/inject_events=false
|
||||
permissions/install_location_provider=false
|
||||
permissions/install_packages=false
|
||||
permissions/install_shortcut=false
|
||||
permissions/internal_system_window=false
|
||||
permissions/internet=false
|
||||
permissions/kill_background_processes=false
|
||||
permissions/location_hardware=false
|
||||
permissions/manage_accounts=false
|
||||
permissions/manage_app_tokens=false
|
||||
permissions/manage_documents=false
|
||||
permissions/master_clear=false
|
||||
permissions/media_content_control=false
|
||||
permissions/modify_audio_settings=false
|
||||
permissions/modify_phone_state=false
|
||||
permissions/mount_format_filesystems=false
|
||||
permissions/mount_unmount_filesystems=false
|
||||
permissions/nfc=false
|
||||
permissions/persistent_activity=false
|
||||
permissions/process_outgoing_calls=false
|
||||
permissions/read_calendar=false
|
||||
permissions/read_call_log=false
|
||||
permissions/read_contacts=false
|
||||
permissions/read_external_storage=false
|
||||
permissions/read_frame_buffer=false
|
||||
permissions/read_history_bookmarks=false
|
||||
permissions/read_input_state=false
|
||||
permissions/read_logs=false
|
||||
permissions/read_phone_state=false
|
||||
permissions/read_profile=false
|
||||
permissions/read_sms=false
|
||||
permissions/read_social_stream=false
|
||||
permissions/read_sync_settings=false
|
||||
permissions/read_sync_stats=false
|
||||
permissions/read_user_dictionary=false
|
||||
permissions/reboot=false
|
||||
permissions/receive_boot_completed=false
|
||||
permissions/receive_mms=false
|
||||
permissions/receive_sms=false
|
||||
permissions/receive_wap_push=false
|
||||
permissions/record_audio=false
|
||||
permissions/reorder_tasks=false
|
||||
permissions/restart_packages=false
|
||||
permissions/send_respond_via_message=false
|
||||
permissions/send_sms=false
|
||||
permissions/set_activity_watcher=false
|
||||
permissions/set_alarm=false
|
||||
permissions/set_always_finish=false
|
||||
permissions/set_animation_scale=false
|
||||
permissions/set_debug_app=false
|
||||
permissions/set_orientation=false
|
||||
permissions/set_pointer_speed=false
|
||||
permissions/set_preferred_applications=false
|
||||
permissions/set_process_limit=false
|
||||
permissions/set_time=false
|
||||
permissions/set_time_zone=false
|
||||
permissions/set_wallpaper=false
|
||||
permissions/set_wallpaper_hints=false
|
||||
permissions/signal_persistent_processes=false
|
||||
permissions/status_bar=false
|
||||
permissions/subscribed_feeds_read=false
|
||||
permissions/subscribed_feeds_write=false
|
||||
permissions/system_alert_window=false
|
||||
permissions/transmit_ir=false
|
||||
permissions/uninstall_shortcut=false
|
||||
permissions/update_device_stats=false
|
||||
permissions/use_credentials=false
|
||||
permissions/use_sip=false
|
||||
permissions/vibrate=false
|
||||
permissions/wake_lock=false
|
||||
permissions/write_apn_settings=false
|
||||
permissions/write_calendar=false
|
||||
permissions/write_call_log=false
|
||||
permissions/write_contacts=false
|
||||
permissions/write_external_storage=false
|
||||
permissions/write_gservices=false
|
||||
permissions/write_history_bookmarks=false
|
||||
permissions/write_profile=false
|
||||
permissions/write_secure_settings=false
|
||||
permissions/write_settings=false
|
||||
permissions/write_sms=false
|
||||
permissions/write_social_stream=false
|
||||
permissions/write_sync_settings=false
|
||||
permissions/write_user_dictionary=false
|
||||
screen/immersive_mode=true
|
||||
screen/orientation=0
|
||||
screen/support_large=true
|
||||
screen/support_normal=true
|
||||
screen/support_small=true
|
||||
screen/support_xlarge=true
|
||||
screen/use_32_bits_view=true
|
||||
user_permissions/0=false
|
||||
user_permissions/1=false
|
||||
user_permissions/10=false
|
||||
user_permissions/11=false
|
||||
user_permissions/12=false
|
||||
user_permissions/13=false
|
||||
user_permissions/14=false
|
||||
user_permissions/15=false
|
||||
user_permissions/16=false
|
||||
user_permissions/17=false
|
||||
user_permissions/18=false
|
||||
user_permissions/19=false
|
||||
user_permissions/2=false
|
||||
user_permissions/3=false
|
||||
user_permissions/4=false
|
||||
user_permissions/5=false
|
||||
user_permissions/6=false
|
||||
user_permissions/7=false
|
||||
user_permissions/8=false
|
||||
user_permissions/9=false
|
||||
version/code=1
|
||||
version/name="1.0"
|
||||
80
3d/platformer/follow_camera.gd
Normal file
@@ -0,0 +1,80 @@
|
||||
|
||||
extends Camera
|
||||
|
||||
# Member variables
|
||||
var collision_exception = []
|
||||
export var min_distance = 0.5
|
||||
export var max_distance = 4.0
|
||||
export var angle_v_adjust = 0.0
|
||||
export var autoturn_ray_aperture = 25
|
||||
export var autoturn_speed = 50
|
||||
var max_height = 2.0
|
||||
var min_height = 0
|
||||
|
||||
func _fixed_process(dt):
|
||||
var target = get_parent().get_global_transform().origin
|
||||
var pos = get_global_transform().origin
|
||||
var up = Vector3(0, 1, 0)
|
||||
|
||||
var delta = pos - target
|
||||
|
||||
# Regular delta follow
|
||||
|
||||
# Check ranges
|
||||
if (delta.length() < min_distance):
|
||||
delta = delta.normalized()*min_distance
|
||||
elif (delta.length() > max_distance):
|
||||
delta = delta.normalized()*max_distance
|
||||
|
||||
# Check upper and lower height
|
||||
if (delta.y > max_height):
|
||||
delta.y = max_height
|
||||
if (delta.y < min_height):
|
||||
delta.y = min_height
|
||||
|
||||
# Check autoturn
|
||||
var ds = PhysicsServer.space_get_direct_state(get_world().get_space())
|
||||
|
||||
var col_left = ds.intersect_ray(target, target + Basis(up, deg2rad(autoturn_ray_aperture)).xform(delta), collision_exception)
|
||||
var col = ds.intersect_ray(target, target + delta, collision_exception)
|
||||
var col_right = ds.intersect_ray(target, target + Basis(up, deg2rad(-autoturn_ray_aperture)).xform(delta), collision_exception)
|
||||
|
||||
if (!col.empty()):
|
||||
# If main ray was occluded, get camera closer, this is the worst case scenario
|
||||
delta = col.position - target
|
||||
elif (!col_left.empty() and col_right.empty()):
|
||||
# If only left ray is occluded, turn the camera around to the right
|
||||
delta = Basis(up, deg2rad(-dt*autoturn_speed)).xform(delta)
|
||||
elif (col_left.empty() and !col_right.empty()):
|
||||
# If only right ray is occluded, turn the camera around to the left
|
||||
delta = Basis(up, deg2rad(dt*autoturn_speed)).xform(delta)
|
||||
else:
|
||||
# Do nothing otherwise, left and right are occluded but center is not, so do not autoturn
|
||||
pass
|
||||
|
||||
# Apply lookat
|
||||
if (delta == Vector3()):
|
||||
delta = (pos - target).normalized()*0.0001
|
||||
|
||||
pos = target + delta
|
||||
|
||||
look_at_from_pos(pos, target, up)
|
||||
|
||||
# Turn a little up or down
|
||||
var t = get_transform()
|
||||
t.basis = Basis(t.basis[0], deg2rad(angle_v_adjust))*t.basis
|
||||
set_transform(t)
|
||||
|
||||
|
||||
func _ready():
|
||||
# Find collision exceptions for ray
|
||||
var node = self
|
||||
while(node):
|
||||
if (node is RigidBody):
|
||||
collision_exception.append(node.get_rid())
|
||||
break
|
||||
else:
|
||||
node = node.get_parent()
|
||||
set_fixed_process(true)
|
||||
# This detaches the camera transform from the parent spatial node
|
||||
set_as_toplevel(true)
|
||||
BIN
3d/platformer/icon.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
23
3d/platformer/icon.png.import
Normal file
@@ -0,0 +1,23 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=true
|
||||
process/HDR_as_SRGB=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
BIN
3d/platformer/osb_down.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
23
3d/platformer/osb_down.png.import
Normal file
@@ -0,0 +1,23 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/osb_down.png-4a1ab934f787719766862b499528d054.stex"
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=true
|
||||
process/HDR_as_SRGB=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
BIN
3d/platformer/osb_fire.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
23
3d/platformer/osb_fire.png.import
Normal file
@@ -0,0 +1,23 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/osb_fire.png-e657a73546eb75918e9d9a3fea15cf70.stex"
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=true
|
||||
process/HDR_as_SRGB=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
BIN
3d/platformer/osb_jump.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
23
3d/platformer/osb_jump.png.import
Normal file
@@ -0,0 +1,23 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/osb_jump.png-dbbef3b47abbb562ce6c81a9701121c6.stex"
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=true
|
||||
process/HDR_as_SRGB=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
BIN
3d/platformer/osb_left.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
23
3d/platformer/osb_left.png.import
Normal file
@@ -0,0 +1,23 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/osb_left.png-fc7230aeb0eec74933ed08f89b893288.stex"
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=true
|
||||
process/HDR_as_SRGB=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
BIN
3d/platformer/osb_right.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
23
3d/platformer/osb_right.png.import
Normal file
@@ -0,0 +1,23 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/osb_right.png-5cf5add2dbc1c8dde17173ac56f3a004.stex"
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=true
|
||||
process/HDR_as_SRGB=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
BIN
3d/platformer/osb_up.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
23
3d/platformer/osb_up.png.import
Normal file
@@ -0,0 +1,23 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/osb_up.png-6a05b6a7bf0ede3756308a5cffdd2b9a.stex"
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=true
|
||||
process/HDR_as_SRGB=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
BIN
3d/platformer/panorama.png
Normal file
|
After Width: | Height: | Size: 415 KiB |
23
3d/platformer/panorama.png.import
Normal file
@@ -0,0 +1,23 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/panorama.png-e05131d3dca9fd5b03101f18fbe08995.stex"
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
186
3d/platformer/player.gd
Normal file
@@ -0,0 +1,186 @@
|
||||
|
||||
extends KinematicBody
|
||||
|
||||
# Member variables
|
||||
const ANIM_FLOOR = 0
|
||||
const ANIM_AIR_UP = 1
|
||||
const ANIM_AIR_DOWN = 2
|
||||
|
||||
const SHOOT_TIME = 1.5
|
||||
const SHOOT_SCALE = 2
|
||||
|
||||
const CHAR_SCALE = Vector3(0.3, 0.3, 0.3)
|
||||
|
||||
var facing_dir = Vector3(1, 0, 0)
|
||||
var movement_dir = Vector3()
|
||||
|
||||
var jumping = false
|
||||
|
||||
var turn_speed = 40
|
||||
var keep_jump_inertia = true
|
||||
var air_idle_deaccel = false
|
||||
var accel = 19.0
|
||||
var deaccel = 14.0
|
||||
var sharp_turn_threshold = 140
|
||||
|
||||
var max_speed = 3.1
|
||||
|
||||
var prev_shoot = false
|
||||
|
||||
var linear_velocity=Vector3()
|
||||
|
||||
var shoot_blend = 0
|
||||
|
||||
func adjust_facing(p_facing, p_target, p_step, p_adjust_rate, current_gn):
|
||||
var n = p_target # Normal
|
||||
var t = n.cross(current_gn).normalized()
|
||||
|
||||
var x = n.dot(p_facing)
|
||||
var y = t.dot(p_facing)
|
||||
|
||||
var ang = atan2(y,x)
|
||||
|
||||
if (abs(ang) < 0.001): # Too small
|
||||
return p_facing
|
||||
|
||||
var s = sign(ang)
|
||||
ang = ang*s
|
||||
var turn = ang*p_adjust_rate*p_step
|
||||
var a
|
||||
if (ang < turn):
|
||||
a = ang
|
||||
else:
|
||||
a = turn
|
||||
ang = (ang - a)*s
|
||||
|
||||
return (n*cos(ang) + t*sin(ang))*p_facing.length()
|
||||
|
||||
|
||||
func _fixed_process(delta):
|
||||
|
||||
var lv = linear_velocity
|
||||
var g = Vector3(0,-9.8,0)
|
||||
|
||||
# var d = 1.0 - delta*state.get_total_density()
|
||||
# if (d < 0):
|
||||
# d = 0
|
||||
lv += g*delta # Apply gravity
|
||||
|
||||
var anim = ANIM_FLOOR
|
||||
|
||||
var up = -g.normalized() # (up is against gravity)
|
||||
var vv = up.dot(lv) # Vertical velocity
|
||||
var hv = lv - up*vv # Horizontal velocity
|
||||
|
||||
var hdir = hv.normalized() # Horizontal direction
|
||||
var hspeed = hv.length() # Horizontal speed
|
||||
|
||||
|
||||
|
||||
var dir = Vector3() # Where does the player intend to walk to
|
||||
var cam_xform = get_node("target/camera").get_global_transform()
|
||||
|
||||
if (Input.is_action_pressed("move_forward")):
|
||||
dir += -cam_xform.basis[2]
|
||||
if (Input.is_action_pressed("move_backwards")):
|
||||
dir += cam_xform.basis[2]
|
||||
if (Input.is_action_pressed("move_left")):
|
||||
dir += -cam_xform.basis[0]
|
||||
if (Input.is_action_pressed("move_right")):
|
||||
dir += cam_xform.basis[0]
|
||||
|
||||
var jump_attempt = Input.is_action_pressed("jump")
|
||||
var shoot_attempt = Input.is_action_pressed("shoot")
|
||||
|
||||
var target_dir = (dir - up*dir.dot(up)).normalized()
|
||||
|
||||
if (is_on_floor()):
|
||||
var sharp_turn = hspeed > 0.1 and rad2deg(acos(target_dir.dot(hdir))) > sharp_turn_threshold
|
||||
|
||||
if (dir.length() > 0.1 and !sharp_turn):
|
||||
if (hspeed > 0.001):
|
||||
#linear_dir = linear_h_velocity/linear_vel
|
||||
#if (linear_vel > brake_velocity_limit and linear_dir.dot(ctarget_dir) < -cos(Math::deg2rad(brake_angular_limit)))
|
||||
# brake = true
|
||||
#else
|
||||
hdir = adjust_facing(hdir, target_dir, delta, 1.0/hspeed*turn_speed, up)
|
||||
facing_dir = hdir
|
||||
else:
|
||||
hdir = target_dir
|
||||
|
||||
if (hspeed < max_speed):
|
||||
hspeed += accel*delta
|
||||
else:
|
||||
hspeed -= deaccel*delta
|
||||
if (hspeed < 0):
|
||||
hspeed = 0
|
||||
|
||||
hv = hdir*hspeed
|
||||
|
||||
var mesh_xform = get_node("Armature").get_transform()
|
||||
var facing_mesh = -mesh_xform.basis[0].normalized()
|
||||
facing_mesh = (facing_mesh - up*facing_mesh.dot(up)).normalized()
|
||||
facing_mesh = adjust_facing(facing_mesh, target_dir, delta, 1.0/hspeed*turn_speed, up)
|
||||
var m3 = Basis(-facing_mesh, up, -facing_mesh.cross(up).normalized()).scaled(CHAR_SCALE)
|
||||
|
||||
get_node("Armature").set_transform(Transform(m3, mesh_xform.origin))
|
||||
|
||||
if (not jumping and jump_attempt):
|
||||
vv = 7.0
|
||||
jumping = true
|
||||
get_node("sound_jump").play()
|
||||
else:
|
||||
if (vv > 0):
|
||||
anim = ANIM_AIR_UP
|
||||
else:
|
||||
anim = ANIM_AIR_DOWN
|
||||
|
||||
var hs
|
||||
if (dir.length() > 0.1):
|
||||
hv += target_dir*(accel*0.2)*delta
|
||||
if (hv.length() > max_speed):
|
||||
hv = hv.normalized()*max_speed
|
||||
else:
|
||||
if (air_idle_deaccel):
|
||||
hspeed = hspeed - (deaccel*0.2)*delta
|
||||
if (hspeed < 0):
|
||||
hspeed = 0
|
||||
|
||||
hv = hdir*hspeed
|
||||
|
||||
if (jumping and vv < 0):
|
||||
jumping = false
|
||||
|
||||
lv = hv + up*vv
|
||||
|
||||
if (is_on_floor()):
|
||||
movement_dir = lv
|
||||
|
||||
linear_velocity = move_and_slide(lv,-g.normalized())
|
||||
|
||||
if (shoot_blend > 0):
|
||||
shoot_blend -= delta*SHOOT_SCALE
|
||||
if (shoot_blend < 0):
|
||||
shoot_blend = 0
|
||||
|
||||
if (shoot_attempt and not prev_shoot):
|
||||
shoot_blend = SHOOT_TIME
|
||||
var bullet = preload("res://bullet.scn").instance()
|
||||
bullet.set_transform(get_node("Armature/bullet").get_global_transform().orthonormalized())
|
||||
get_parent().add_child(bullet)
|
||||
bullet.set_linear_velocity(get_node("Armature/bullet").get_global_transform().basis[2].normalized()*20)
|
||||
bullet.add_collision_exception_with(self) # Add it to bullet
|
||||
get_node("sound_shoot").play()
|
||||
|
||||
prev_shoot = shoot_attempt
|
||||
|
||||
if (is_on_floor()):
|
||||
get_node("AnimationTreePlayer").blend2_node_set_amount("walk", hspeed/max_speed)
|
||||
|
||||
get_node("AnimationTreePlayer").transition_node_set_current("state", anim)
|
||||
get_node("AnimationTreePlayer").blend2_node_set_amount("gun", min(shoot_blend, 1.0))
|
||||
# state.set_angular_velocity(Vector3())
|
||||
|
||||
|
||||
func _ready():
|
||||
get_node("AnimationTreePlayer").set_active(true)
|
||||
BIN
3d/platformer/player.scn
Normal file
59
3d/platformer/project.godot
Normal file
@@ -0,0 +1,59 @@
|
||||
config_version=3
|
||||
[application]
|
||||
|
||||
name="Platformer 3D"
|
||||
main_scene="res://stage.scn"
|
||||
|
||||
[input]
|
||||
|
||||
ui_accept=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777221,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777222,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
ui_select=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":3,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
ui_cancel=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
ui_focus_next=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777218,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
ui_focus_prev=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":true,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777218,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
ui_left=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
ui_right=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
ui_up=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
ui_down=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
ui_page_up=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777235,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
ui_page_down=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777236,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
move_forward=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
move_backwards=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
move_left=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
move_right=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
jump=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
shoot=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":90,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
|
||||
[memory]
|
||||
|
||||
multithread/thread_rid_pool_prealloc=60
|
||||
|
||||
[rendering]
|
||||
|
||||
quality/msaa=2
|
||||
BIN
3d/platformer/robot_walk.wav
Normal file
16
3d/platformer/robot_walk.wav.import
Normal file
@@ -0,0 +1,16 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/robot_walk.wav-4313e7d5f563e62e3923080b14a79c15.sample"
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=true
|
||||
edit/normalize=true
|
||||
edit/loop=true
|
||||
compress/mode=0
|
||||
BIN
3d/platformer/robotrigged.scn
Normal file
7
3d/platformer/sb.cube
Normal file
@@ -0,0 +1,7 @@
|
||||
sb_left.png
|
||||
sb_right.png
|
||||
sb_bottom.png
|
||||
sb_top.png
|
||||
sb_back.png
|
||||
sb_front.png
|
||||
|
||||
BIN
3d/platformer/shine.png
Normal file
|
After Width: | Height: | Size: 319 B |
24
3d/platformer/shine.png.import
Normal file
@@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path.s3tc="res://.import/shine.png-a8253c1d2dc8acbf187823f695c13207.s3tc.stex"
|
||||
path.etc2="res://.import/shine.png-a8253c1d2dc8acbf187823f695c13207.etc2.stex"
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=true
|
||||
flags/filter=true
|
||||
flags/mipmaps=true
|
||||
flags/anisotropic=false
|
||||
flags/srgb=1
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=true
|
||||
process/HDR_as_SRGB=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
BIN
3d/platformer/sound_coin.wav
Normal file
16
3d/platformer/sound_coin.wav.import
Normal file
@@ -0,0 +1,16 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/sound_coin.wav-b4defacd1a1eab95585c7b5095506878.sample"
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=true
|
||||
edit/normalize=true
|
||||
edit/loop=false
|
||||
compress/mode=0
|
||||
BIN
3d/platformer/sound_explode.wav
Normal file
16
3d/platformer/sound_explode.wav.import
Normal file
@@ -0,0 +1,16 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/sound_explode.wav-23e94be75a4346bffb517c7e07035977.sample"
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=true
|
||||
edit/normalize=true
|
||||
edit/loop=false
|
||||
compress/mode=0
|
||||
BIN
3d/platformer/sound_hit.wav
Normal file
16
3d/platformer/sound_hit.wav.import
Normal file
@@ -0,0 +1,16 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/sound_hit.wav-d8455980ada2d4a9a73508948d7317cc.sample"
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=true
|
||||
edit/normalize=true
|
||||
edit/loop=false
|
||||
compress/mode=0
|
||||
BIN
3d/platformer/sound_jump.wav
Normal file
16
3d/platformer/sound_jump.wav.import
Normal file
@@ -0,0 +1,16 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/sound_jump.wav-4966d1f327e26a176b56ab335c03b5e1.sample"
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=true
|
||||
edit/normalize=true
|
||||
edit/loop=false
|
||||
compress/mode=0
|
||||
BIN
3d/platformer/sound_shoot.wav
Normal file
16
3d/platformer/sound_shoot.wav.import
Normal file
@@ -0,0 +1,16 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamSample"
|
||||
path="res://.import/sound_shoot.wav-f0f26619cba21d411b53ad23b8788116.sample"
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=true
|
||||
edit/normalize=true
|
||||
edit/loop=false
|
||||
compress/mode=0
|
||||
BIN
3d/platformer/stage.scn
Normal file
BIN
3d/platformer/texture.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
23
3d/platformer/texture.png.import
Normal file
@@ -0,0 +1,23 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/texture.png-77dc6ecaf884a35cd9dbaf886cacc46d.stex"
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=1
|
||||
flags/filter=true
|
||||
flags/mipmaps=true
|
||||
flags/anisotropic=false
|
||||
flags/srgb=1
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=true
|
||||
process/HDR_as_SRGB=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
BIN
3d/platformer/texturemr.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
24
3d/platformer/texturemr.png.import
Normal file
@@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path.s3tc="res://.import/texturemr.png-0568a8b09834741143da53ce460e36f1.s3tc.stex"
|
||||
path.etc2="res://.import/texturemr.png-0568a8b09834741143da53ce460e36f1.etc2.stex"
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=true
|
||||
flags/filter=true
|
||||
flags/mipmaps=true
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=true
|
||||
process/HDR_as_SRGB=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||