Skip to Content
Swift游戏开发经典实例
book

Swift游戏开发经典实例

by Jonathon Manning, Paris Buttfield-Addison
January 2020
Intermediate to advanced
356 pages
6h 4m
Chinese
China Electric Power Press Ltd.
Content preview from Swift游戏开发经典实例
物理学
243
讨论
当人们开始思考如何解决这个问题的时候,下意识的会这样以为:“在触摸开始时,
获取当前触摸点的对象。然后在手指移动时,修改它的
position
属性,这不就是
拖动了吗?”
这会导致一些潜在的问题发生。首先,如果你仅仅是在用户拖动时在触摸更新通知
方法中修改这个对象的位置,由于重力的存在,这个物体将不断往向下坠。这回使
物体在移动的时候位置抖动得比较厉害。
其次,如果你直接设置物体的位置,就有可能让物体直接穿过墙或者其他物体,那
可不是你想要的结果。
更好的解决方案是,就像我们在上面的答案中所演示的,创建一个静态的,“隐形”
的物体,然后将它和你真正向拖动的物体相连接。当触摸开始,我们改变静态物体
的位置,而不是修改想拖动的物体的位置,这样,由于连接的存在,物体本身也会
随静态物体而移动。因为我们没有改变物理系统,对象在被拖动的同时并不会违反
物理规则,比如与其他物体贯穿。另外,由于使用
pin
连接,被拖动的物体在移动
时会有轻微晃动,看起来更加真实。
注意
touchesEnded
touchesCancelled
方法,即在触摸结束和取消时,都调用了
一个
stopDragging
方法,在用户拖动的过程中,是可以取消拖动的(比如有恰巧
有一个手势识别器识别了这个触摸)。在这种情况下,我们实际上可以把它看作是
用户已经抬起了手指。
7.19
创建车辆
问题
我们想创建一辆带轮子的车辆。
解决方案
车辆至少由两部分构成:车厢和轮子(
1
个或多个)。在本例中,一辆小车
244
7
(至少是一张
2D
的小车)可以用一个方块和两个轮子组成 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

精通機器學習

精通機器學習

Aurélien Géron
FreeBSD® Unleashed

FreeBSD® Unleashed

Brian Tiemann, Michael C. Urban
深入淺出代數

深入淺出代數

Tracey Pilone, Dan Pilone
Swift学习手册

Swift学习手册

Jon Manning, Paris Buttfield-Addison, Tim Nugent

Publisher Resources

ISBN: 9787519840129